CODEFORCES ROUND #273 DIV2
题目大意:
A简单的说就是,有五个人,他们刚开始有B元,经过一系列过程后,给你他们现在分别有的钱,让你求出B(> <难得的傻逼题啊...但是要注意B是正整数!特判0)
B有n个人,要分成m组,同组的两个人可为一对,问你形成的最多队和最少队(> <用贪心思想+排列组合乱搞搞就过了...)
C有三种颜色的球,给你他们分别的数量,让你用这三种球装饰一个表?,只要满足三种颜色不完全相同就可以了,问你最多能装饰多少个表?
D给你两种颜色的block,让你搭一个R-G tower(不需要红绿相间),每层都比上一层的block少1,并且每层的block颜色必须相同。问你,最大方案数对10^9+7取模是多少?
E定义波浪数为在十进制表示法下 除了首位两位所有位均小于或大于周围两个数。然后给你N和K,求被N整除的第k小的波浪数 如果这个数<=10^14 输出这个数 否则输出-1
先说一下C题
很明显的贪心,自己写了40行左右的代码...而且是略复杂的思路
然后看了时间最短的人的代码...瞬间有一种佩服得五体投地的感觉!
#include <iostream>
#include <algorithm>
using namespace std; int main() {
long long a[3];
cin>>a[0]>>a[1]>>a[2];
long long x=a[0]+a[1]+a[2];
x=x/3;
sort(a,a+3);
if(2*(a[0]+a[1])<=a[2])x=a[0]+a[1];
cout<<x<<endl;
return 0;
}
D题:DP+滚动数组
><我真的没乱讲...我是真的弱不会写><不要说我卖萌啦
然后在codeforces上请教了zhyfzy(感谢)
有想到f[i][j]=f[i-1][j]+f[i-1][j-i]转移方程
但是看内存不够就以为是自己想错了
><没想到可以用滚动数组(自己弱没有想到...貌似加上没想到很奇怪?
先解释一下转移方程:f[i][j]表示的是前i层,有j个红色的砖块的方案数
f[i][j]=f[i-1][j](i行为绿色)+f[i][j-1](i行为红色)
><看了一下滚动数组,就是当你内存达到最大的时候,回到1...
因为i要开1000,j要开2e5,所以用滚动数组优化,这样i只要开到2就可以了
附上代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<set>
#include<map>
#include<stack>
#include<vector>
#include<queue>
#include<string>
#include<sstream>
#define eps 0.000001
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define MOD 1000000007
using namespace std;
typedef long long LL;
int i,j,k,n,m,x,y,T,ans,big,cas,dp[2][200005],h,a,b,num[900],u,v;
bool flag;
int main()
{
scanf("%d%d",&a,&b);
//h=(int)((sqrt(1+8*(a+b))-1)/2+eps)
for (h=0;(h+1)*(h+2)/2<=a+b;h++);
if (a>0) dp[0][1]=1; else dp[0][1]=0;
if (b>0) dp[0][0]=1; else dp[0][0]=0; for (i=2,num[1]=1;i<=h;i++) num[i]+=num[i-1]+i;
for (i=2;i<=h;i++)
{
u=(i+1)%2;v=u^1;
for (j=max(num[i]-b,0);j<=min(a,num[i]);j++)
{
dp[u][j]=dp[v][j];
if (j>=i) dp[u][j]=(dp[u][j]+dp[v][j-i])%MOD;
}
} ans=0;u=(h+1)%2;
for (i=max(num[h]-b,0);i<=min(a,num[h]);i++)
{
ans=(ans+dp[u][i])%MOD;
}
cout<<ans<<endl;
//cout<<maxj<<endl;
return 0;
}
A.B题太水了><
A注意一下0,其他没有了,考你有没有到普及组水平
B题考你有没有学过数学
E题依旧不可写....QAQorz...
CODEFORCES ROUND #273 DIV2的更多相关文章
- Codeforces Round #539 div2
Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...
- 【前行】◇第3站◇ Codeforces Round #512 Div2
[第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...
- 贪心 Codeforces Round #273 (Div. 2) C. Table Decorations
题目传送门 /* 贪心:排序后,当a[3] > 2 * (a[1] + a[2]), 可以最多的2个,其他的都是1个,ggr,ggb, ggr... ans = a[1] + a[2]; 或先2 ...
- Codeforces Round#320 Div2 解题报告
Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...
- Codeforces Round #564(div2)
Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...
- Codeforces Round #361 div2
ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...
- Codeforces Round #626 Div2 D,E
比赛链接: Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) D.Present 题意: 给定大 ...
- CodeForces Round 192 Div2
This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...
- Codeforces Round #359 div2
Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...
随机推荐
- jquery 元素控制(附加元素/其他内容)引进和应用
一个.在内部元素/外部附加元件 append,prepend:加入到该子元素 before,after:元素加入 html: <div id="content"> 在 ...
- C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例
XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...
- crawler_http关闭连接
1:ps aux|grep Spider4Test.jar 查看端口 2: lsof -p [端口号] 在爬虫运行期间如果看到 大量的 TIME_WAIT WAIT_CLOSE 说明请求关闭阻塞[ ...
- Effective C++ 18-23
18.接口用于完整的类,使最小. 用户接口类是指程序猿这个类可以访问所获得的接口,典型接口具有在存在唯一功能,好的包装类的数据成员. 这意味着一个完整的接口,包括所有 合理的功能操作.最小指功能和特征 ...
- SDUT 1124-飞跃荒野(三维BFS)
飞跃原野 Time Limit: 5000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 勇敢的法里奥出色的完毕了任务之后.正在迅速地向自己的基地撤退.但因为 ...
- Notification(一个)——使用演示样本的基础知识
main.xml如下面: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
- oracle substr功能
substr(string dealstr, int startposition, int sublength) dealstr:截取字符串 startposition:串dealstr,起始位置0 ...
- 【百度地图API】建立全国银行位置查询系统(五)——如何更改百度地图的信息窗口内容?
原文:[百度地图API]建立全国银行位置查询系统(五)--如何更改百度地图的信息窗口内容? 摘要: 酷讯.搜房.去哪儿网等大型房产.旅游酒店网站,用的是百度的数据库,却显示了自定义的信息窗口内容,这是 ...
- 编程算法 - 第一个仅仅出现一次的字符 代码(C)
第一个仅仅出现一次的字符 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 在字符串中找出第一个仅仅出现一次的字符. 字符是char类型, 所以匹 ...
- 设计模式组合模式(Composite)精华
23种子GOF设计模式一般分为三类:创建模式.结构模型.行为模式. 创建模式抽象的实例,他们帮助如何创建一个系统独立.这是一个这些对象和陈述的组合. 创建使用继承类的类架构更改实例.的对象类型模型的建 ...