题目地址:http://codeforces.com/contest/479

这次自己又仅仅能做出4道题来。

A题:Expression

水题。

枚举六种情况求最大值就可以。

代码例如以下:

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <set>
#include <algorithm> using namespace std;
#define LL __int64
int 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 <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <set>
#include <algorithm> using namespace std;
#define LL __int64
struct node
{
int x, num;
}fei[1000];
int cmp(node x, node y)
{
return x.x<y.x;
}
int a[2000], b[2000];
int main()
{
int n, m, i, j, cnt, ans;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&fei[i].x);
fei[i].num=i;
}
cnt=0;
while(m--)
{
sort(fei,fei+n,cmp);
if(fei[n-1].x-fei[0].x<=1) break;
a[cnt]=fei[n-1].num;
b[cnt++]=fei[0].num;
fei[n-1].x--;
fei[0].x++;
}
sort(fei,fei+n,cmp);
printf("%d %d\n",fei[n-1].x-fei[0].x, cnt);
for(i=0;i<cnt;i++)
{
printf("%d %d\n",a[i]+1,b[i]+1);
}
}
return 0;
}

C题:Exams

还是水。。小贪心

小贪心。先按标记日期排个序,然后扫一遍就可以,能用小的就优先考虑小的。

代码例如以下:

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <set>
#include <algorithm> using namespace std;
#define LL __int64
struct node
{
int x, y;
}fei[6000];
int cmp(node x, node y)
{
if(x.x==y.x)
return x.y<y.y;
return x.x<y.x;
}
int main()
{
int n, i, j, ans, k, x1, x2;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d%d",&fei[i].x,&fei[i].y);
}
sort(fei,fei+n,cmp);
k=1;
for(i=0;i<n;i++)
{
if(fei[i].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 <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <set>
#include <algorithm> using namespace std;
#define LL __int64
int a[110000];
int bin_search(int x, int y, int high)
{
int low=0, mid;
while(low<=high)
{
mid=low+high>>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<n; i++)
{
scanf("%d",&a[i]);
if(a[i]==x)
flag1=1;
if(a[i]==y)
flag2=1;
}
if(flag1&&flag2)
{
printf("0\n");
}
else
{
flag1=flag2=0;
for(i=1;i<n;i++)
{
if(bin_search(x,a[i],i-1))
{
flag1=1;
break;
}
}
for(i=1;i<n;i++)
{
if(bin_search(y,a[i],i-1))
{
flag2=1;
}
}
if(flag1&&flag2)
{
printf("0\n");
}
else if(flag1) printf("1\n%d\n",y);
else if(flag2) printf("1\n%d\n",x);
else
{
int flag=0;
for(i=1;i<n;i++)
{
if(bin_search(y+x,a[i],i-1))
{
flag=1;
break;
}
}
if(flag)
{
printf("1\n%d\n",a[i]-x);
}
else
{
flag=0;
for(i=1;i<n;i++)
{
if(bin_search(y-x,a[i],i-1)&&(a[i]-y>=0||a[i]+x<=l))
{
flag=1;
break;
}
}
if(flag&&a[i]-y>=0)
{
printf("1\n%d\n",a[i]-y);
}
else if(flag&&a[i]+x<=l)
{
printf("1\n%d\n",a[i]+x);
}
else
{
printf("2\n%d %d\n",x,y);
}
}
}
}
}
return 0;
}

Codeforces Round #274 (Div. 2) 解题报告的更多相关文章

  1. Codeforces Round #324 (Div. 2)解题报告

    ---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...

  2. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  3. Codeforces Round #380 (Div. 2) 解题报告

    第一次全程参加的CF比赛(虽然过了D题之后就开始干别的去了),人生第一次codeforces上分--(或许之前的比赛如果都参加全程也不会那么惨吧),终于回到了specialist的行列,感动~.虽然最 ...

  4. Codeforces Round #216 (Div. 2)解题报告

    又范低级错误! 只做了两题!一道还被HACK了,囧! A:看了很久!应该是到语文题: 代码:#include<iostream> #include<];    ,m2=;    ;i ...

  5. Codeforces Round #281 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/493 A题 写完后就交了,然后WA了,又读了一遍题,没找出错误后就开始搞B题了,后来回头重做的时候才发现,球员被红牌罚下场后还可 ...

  6. Codeforces Round #277 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/486 A题.Calculating Function 奇偶性判断,简单推导公式. #include<cstdio> ...

  7. Codeforces Round #276 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/485 A题.Factory 模拟.判断是否出现循环,如果出现,肯定不可能. 代码: #include<cstdio> ...

  8. Codeforces Round #350 (Div. 2)解题报告

    codeforces 670A. Holidays 题目链接: http://codeforces.com/contest/670/problem/A 题意: A. Holidays On the p ...

  9. Codeforces Round #479 (Div. 3)解题报告

    题目链接: http://codeforces.com/contest/977 A. Wrong Subtraction 题意 给定一个数x,求n次操作输出.操作规则:10的倍数则除10,否则减1 直 ...

随机推荐

  1. cpu真实占用率检測工具

     windows任务管理器所示CPU占用,一直在不断的变动跳跃 ,并不能反应真实的平均CPU占用率.迅雷下载工具也是一样 ,有时这些知名软件,反倒是没有做的这么人性化,细致.或 许就是不想让人知道 ...

  2. Windows 7 x64环境下JDK8安装过程

    Windows 7 x64环境下JDK8安装过程 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...

  3. Win+X

    Win+X 方便的快捷键,可以快速使用命令行和运行!

  4. IPython Autoreload

    在PyCharm中进行代码调试的时候, 设置修改的模块自动重新载入是非常方便的 In [1]: %load_ext autoreload In [2]: %autoreload 2

  5. c++面向对象程序设计 谭浩强 第一章答案

    c++面向对象程序设计 谭浩强 答案 第一章 目录: c++面向对象程序设计 谭浩强 答案 第一章 c++面向对象程序设计 谭浩强 答案 第二章 c++面向对象程序设计 谭浩强 答案 第三章 c++面 ...

  6. 16.QT鼠标

    头文件 #include <QMouseEvent> #include <QStatusBar> #include <QLabel> protected: //鼠标 ...

  7. mybatis、spring、mysql、maven实现简单增删查改

    之前写过的mybatis博客作为学习mybatis.spring还是不太合适. 现在找到一个不错的例子,首先将这个完整的mybatis增删查改例子在本地上实现出来,然后再进行学习. 项目结构与运行结果 ...

  8. 使用JS&jQuery改善用户体验

    第一章  JavaScript基本语法 一.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&= ...

  9. 【摘录】JAVA内存管理-有关垃圾收集的关键参数

    第八章 有关垃圾收集的关键参数 一些命令行参数可以用来选择垃圾收集器,指定堆或代的大小,修改垃圾收集行为,获取垃圾收集统计数据.本章给出一些最常用的参数.有关各种各样参数更多完整的列表和详细信息可以参 ...

  10. oracle导入导出操作

    1,获取oracle导入导出帮助: imp help=y 2,导出命令 exp 用户名/密码@数据库实例 file=文件路径名 如: exp sys/password@orcl file=d:\dat ...