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个, 如果你现在手里 ...
随机推荐
- SQL Server编程系列(2):SMO常用对象的有关操作
原文:SQL Server编程系列(2):SMO常用对象的有关操作 在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的 ...
- Oracle + EF5 疑难杂症
原文:Oracle + EF5 疑难杂症 PDF 版 http://files.cnblogs.com/xling/Oracle.pdf Oracle 环境准备 ODAC ODAC 全称 Oracle ...
- Hard Parse&Soft Parse
DDL每次运行将必须是难以解决. SQL 解析过程 Oracle对此SQL将进行几个步骤的处理过程: 1.语法检查(syntax check): 检查此sql的拼写是否语法. 2.语义检查(seman ...
- 取一种类型里面的产品销售前3甲的数据Sql
需求:取出每种分类里面的销售前3甲的产品信息 表设计如下图: 数据如下: 两种方法可以实现: 1. SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION ...
- linux_mac_配置itrem2 rz sz_bug处理
0:传输 .jar 等文件有问题 是 添加 sz -bye 以二进制流方式传输 1:安装 homebrew 2: brew install lrzsz 3:搜索 iterm2-recv-zmod ...
- mysql 的load data infile要使用
LOAD DATA INFILE从文本文件中读出的声明以极高的速度到表. 1.基本语法 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'fi ...
- WeakReference and WeakHashMap
弱引用通过WeakReference类实现,弱引用和软引用很像,但弱引用的引用级别更低.对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管系统北村是否足够,总会回收该对象所占用的内存.当然,并不 ...
- MapReduce 编程模型
一.简单介绍 1.MapReduce 应用广泛的原因之中的一个在于它的易用性.它提供了一个因高度抽象化而变得异常简单的编程模型. 2.从MapReduce 自身的命名特点能够看出,MapReduce ...
- Java泛型解析(03):虚拟机运行泛型代码
Java泛型解析(03):虚拟机运行泛型代码 Java虚拟机是不存在泛型类型对象的,全部的对象都属于普通类,甚至在泛型实现的早起版本号中,可以将使用泛型的程序编译为在1.0虚拟机上可以执行的 ...
- Set Matrix Zeroes -- LeetCode
原题链接: http://oj.leetcode.com/problems/set-matrix-zeroes/ 这是一个矩阵操作的题目,目标非常明白,就是假设矩阵假设有元素为0,就把相应的行和列上面 ...