这次自己又只能做出4道题来。
A题:Expression
水题。
枚举六种情况求最大值即可。
代码如下:
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64int main(){ LL a, b, c, d[10]; while(scanf("%I64d%I64d%I64d",&a,&b,&c)!=EOF) { d[0]=a*b*c; d[1]=(a+b)*c; d[2]=a+b+c; d[3]=a*(b+c); d[4]=a+b*c; d[5]=a*b+c; sort(d,d+6); printf("%I64d\n",d[5]); } return 0;}
B题: Towers
水题。
每次都是将最多的拿出一个给最少的,直到最大的与最少的相差小于或等于1.
代码如下:
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64struct node{ int x, num;}fei[1000];int cmp(node x, node y){ return x.x
C题: Exams
还是水。。小贪心
小贪心。先按标记日期排个序,然后扫一遍即可,能用小的就优先考虑小的。
代码如下:
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64struct node{ int x, y;}fei[6000];int cmp(node x, node y){ if(x.x==y.x) return x.y =k) { k=fei[i].y; } else { k=fei[i].x; } } printf("%d\n",k); } return 0;}
D题:
还是水。。。。二分。
分别考虑4种情况,x,y,x+y,y-x。然后用二分找差值为这四个数的。
代码如下:
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64int a[110000];int bin_search(int x, int y, int high){ int low=0, mid; while(low >1; if(y-a[mid]==x) return 1; else if(y-a[mid]>x) low=mid+1; else high=mid-1; } return 0;}int main(){ int n, l, x, y, i, j, k, flag1, flag2; while(scanf("%d%d%d%d",&n,&l,&x,&y)!=EOF) { flag1=flag2=0; for(i=0; i =0||a[i]+x =0) { printf("1\n%d\n",a[i]-y); } else if(flag&&a[i]+x
查看更多关于CodeforcesRound#274(Div.2)解题报告_html/css_WEB-ITnose的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did105913