20170906ditoly的信心大赛(╥╯^╰╥)

摘要:
当您的输出与标准输出之间的绝对误差不超过时,则判断为正确。WA50%的原因是输出颠倒,mmp#include#includeusingspacestd;inta[10005],b[10005];longlongc[10005],s;intmain(){intn,m,i,l,r,mid,ans;scanf;forscanf;for{mid=(l+r)/2;forc[i]=i*b[i]*+a[i];sort;fors+=c[i];ifans=mid,l=mid+1;elser=mid-1;}printf;return0;}T3:小能量R在杂货店购买了n块XOR能量石。每个能量石都有一个能量系数ai和一个共振系数bi。能量系数决定了能量石的质量。第二行包含n个整数bi,表示每个能量石的共振系数。2133对于20%的数据,n˂=10;对于50%的数据,n˂=100;对于70%的数据,n˂=1000;对于100%数据,n˂=10000,0˂=bi˂2^31。

T1:切糕(cut)

【问题描述】

小R意外获得了一块切糕,他准备把切糕分给n个小伙伴。切糕的形状是一个底边长为a,高为b的等腰三角形。小R打算横着或竖着切n-1刀把切糕切成面积相等的n块分给小伙伴,请你告诉他要在哪些地方切。

【输入格式】

输入文件cut.in

输入包含四个整数n,a,b,c,表示要切成n块,切糕的三个顶点分别位于(0,0),(a,0),(a/2,b),若c=0,表示要横着切;若c=1,表示要竖着切。

【输出格式】

输出文件cut.out

输出共n-1行,每行一个实数,从小到大输出各切割处的位置,若c=0,每输出一个整数a,表示在直线y=a处切一刀;若c=1,每输出一个整数a,表示在直线x=a处切一刀。当你的输出与标准输出的绝对误差不超过时,判为正确。

【样例输入1】

3 5 2 0

【样例输出1】

0.3670068381

0.8452994616

【样例输入2】

2 5 3 1

【样例输出2】

2.5 

【数据范围】

对于全部数据,2<=n<=1000,1<=a,b<=10^5;

对于50%的数据,c=0;

对于另外50%的数据,c=1。

solution:数学问题,开方完再用a,b关系。注意精度。WA50%的原因是之后输出反了,mmp。

提醒:不要手写sqrt╮(╯﹏╰)╭。

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
    //freopen("cut.in","r",stdin);
    //freopen("cut.out","w",stdout);
    double s=1;
    int n,a,b,c;
    scanf("%d%d%d%d",&n,&a,&b,&c);
    s/=n;
    if(c==0)
    {
        for(int i=n-1;i>=1;i--)
            printf("%.10f
",b-sqrt(i*s*b*b));

    }
    if(c==1)
    {
        s/=2;
        bool m=n&1?0:1;
        for(int i=1;i<=n/2;i++)
        printf("%.10f
",sqrt(i*s*a*a));
        for(int i=(n-1)/2;i>=1;i--)
        printf("%.10f
",a-sqrt(i*s*a*a));
    }
    return 0;
}

T2:采购(buy)

【问题描述】

小R有一个爱好,他经常去杂货市场上采购一些奇奇怪怪的物品。今天小R来到市场,发现有n个摊位,每个摊位出售不同的货物,第i个摊位出售的货物价格为ai。这些摊位的老板很奇怪,他们不喜欢你购买其他摊位的物品,如果你购买了k件其他摊位的物品,你在购买第i个摊位出售的物品时需要额外支付k*bi的钱,为了防止你买完一个摊位的物品后再去买另一家的物品,他们商量好要求你同时结账,现在小R有m元钱,他想知道自己最多能买多少种不同的物品。

【输入格式】

输入文件buy.in

第一行两个正整数n和m,表示摊位数和小R的钱数。

接下来n行,每行两个非负整数ai,bi,意义同问题描述。

【输出格式】

输出文件buy.out

输出一个非负整数,表示答案。

【样例输入】

3 7

1 3

2 1

3 0

【样例输出】

2

【数据范围】

对于20%的数据,n<=20;

对于40%的数据,n<=1000;

对于另外10%的数据,bi=0;

对于另外20%的数据,所有bi均相等;

对于100%的数据,n,ai,bi<=100,000,m<=10^9。

solution:二分答案,我原来以为是背包,结果数据太强大。。。

#include<cstdio>
#include<algorithm>
using namespace std;
int a[100005],b[100005];
long long c[100005],s;
int main()
{
    int n,m,i,l,r,mid,ans;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;++i)scanf("%d%d",&a[i],&b[i]);
    for(l=0,r=n;l<=r;)
    {
        mid=(l+r)/2;
        for(long long i=1;i<=n;++i)c[i]=i*b[i]*(mid-1)+a[i];
        sort(c+1,c+n+1);
        for(s=0,i=1;i<=mid;++i)s+=c[i];
        if(s<=m)ans=mid,l=mid+1;
        else r=mid-1;
    }
    printf("%d",ans);
    return 0;
}

T3:能量(power)

【问题描述】

小R在某次杂货采购中买到了n个XOR能量石,每个能量石有一个能量系数ai和共鸣系数bi,其中能量系数决定了能量石的好坏。小R想知道这些能量石的品质,但能量系数无法简单观测得到,只有通过能量共鸣仪促使能量石之间发生共鸣,才有办法获知能量系数。能量共鸣仪每次可以使一个区间内的所有能量石发生共鸣,并且获知这些能量石能量系数的异或和,但需要消耗等同于区间内所有能量石共鸣系数异或和的能量。小R已经测量出了各个能量石的共鸣系数,现在他想知道至少需要多少能量才能确定所有能量石的能量系数。

【输入格式】

输入文件power.in

第一行一个正整数n,表示能量石的个数。

第二行n个整数bi,表示各个能量石的共鸣系数。

【输出格式】

输出文件power.out

输出一个整数,表示最小的能量花费。

【样例输入】

2

1 3

【样例输出】

3

【数据范围】

对于20%的数据,n<=10;

对于50%的数据,n<=100;

对于70%的数据,n<=1,000;

对于100%的数据,n<=10,000,0<=bi<2^31。

#include<cstdio>
#include<algorithm>
using namespace std;
inline int read()
{
    int x;char c;
    while((c=getchar())<'0'||c>'9');
    for(x=c-'0';(c=getchar())>='0'&&c<='9';)x=x*10+c-'0';
    return x;
}
#define MN 10000
int a[MN+5],d[MN+5],u[MN+5];
int main()
{
    freopen("power.in","r",stdin);
    freopen("power.out","w",stdout);
    int n=read(),i,j,mn;long long ans=0;
    for(i=1;i<=n;++i)d[i]=a[i]=a[i-1]^read();
    for(i=1;i<=n;++i)
    {
        for(mn=0,j=1;j<=n;++j)if(!u[j]&&(!mn||d[j]<d[mn]))mn=j;
        ans+=d[mn];u[mn]=1;
        for(j=1;j<=n;++j)d[j]=min(d[j],a[j]^a[mn]);
    }
    printf("%lld",ans);
    fclose(stdin);fclose(stdout);return 0;
}

免责声明:文章转载自《20170906ditoly的信心大赛(╥╯^╰╥)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇20170913NOIP模拟赛(数学联赛ヾ(◍°∇°◍)ノ゙)2017.9.10所谓“切题如切菜杯”水题模拟赛(;´д`)ゞ下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

POSIX线程-(四)

使用互斥同步 在多线程程序中同步访问的另一个方法就是使用互斥,其作用允许程序锁住一个对象,从而只有一个线程可以访问他。要控制对临界区代码的访问,在我们进入这段代码之前锁住一个互斥量,并且在我们完成操作时进行解锁。使用互斥所需要基本函数与信号量所需要的函数相似,其声明如下:#include <pthread.h>int pthread_mutex_...

【Cocos2DX 】初窥门径(12)游戏中的对话框

在Cocos2D-X中有个CCMessageBox,可以用来创建对话框。 CCMessageBox("this is content","title"); 这个在win32和Android上都是通用的,底层都是调用当前系统的对话框,win32效果如下图,在android 上就是调用的系统的Dialog。 对话框虽然简单,不过系统的Dialog不怎么好...

HTML 5 来了,不需要 Flash 插件的 Youtube

现在的视频网站标准不一,观看Youtube视频需要安装Flash Player插件,观看苹果网站的视频需要安装Quick Time插件。。。这一切将随着HTML5的到来而成为历史─HTML5的<audio>,<video>等标签让你像现在 用<img>一样方便的在页面内嵌入音频,视频,当然不需要任何插件支持,只需要浏览器...

vi编辑器的学习使用(十)

在我们谈起Vim编辑器似乎只是觉得他只是一个类似于一个命令行方式的文本编辑器。而事实上不是这样的。Vim在窗口环境中也可以完美的完成我们的工作。在窗口环境下,我们不仅可以使用那些在Vim文本方式下的命令来完成工作,而且还有许多的菜单和其他的选项。这些都使得我们可以完美的来完成我们的工作。我们要启动图形界面的Vim可以用下面的命令:gvim file。这样就可...

榨菜肉丝汤的做法

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-p...

VC常用代码之动态加载DLL

根据MSDN: //File:RUNTIME.C //AsimpleprogramthatusesLoadLibraryand //GetProcAddresstoaccessmyPutsfromMYPUTS.DLL. #include<stdio.h> #include<windows.h>...