题目大意:

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的更多相关文章

  1. Codeforces Round #539 div2

    Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...

  2. 【前行】◇第3站◇ Codeforces Round #512 Div2

    [第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...

  3. 贪心 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 ...

  4. Codeforces Round#320 Div2 解题报告

    Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...

  5. Codeforces Round #564(div2)

    Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...

  6. Codeforces Round #361 div2

    ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...

  7. Codeforces Round #626 Div2 D,E

    比赛链接: Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) D.Present 题意: 给定大 ...

  8. CodeForces Round 192 Div2

    This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...

  9. Codeforces Round #359 div2

    Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...

随机推荐

  1. C# 你不能调用的问题剪贴板线程

    最近在做一个项目,需要使用线程,并使用剪贴板,头发得到较少的数据在剪贴板上后,现在的孩子线程创建一个子线程,我特别困惑,上网查资料.最后,得到最终的.下面的例子现在将概括解: 第一步: public ...

  2. Android物业动画研究(Property Animation)彻底解决具体解释

     前p=1959">Android物业动画研究(Property Animation)全然解析具体解释上已经基本展示了属性动画的核心使用方法: ObjectAnimator实现动画 ...

  3. linux_vim_最佳快捷键

    如何使用vi文本编辑器     vi由比尔·乔伊(Bill Joy)撰写,所有UNIX like均默认安装此文本编辑器.详细简介请点击维基中文. 1.首先复制一个文件到/tmp目录(本例中为复制根目录 ...

  4. WIN2003+IIS6+FastCGI+PHP5.4.30的安装配置

    原文:WIN2003+IIS6+FastCGI+PHP5.4.30的安装配置 说明:PHP5.5已不支持win2003了,Win2003最高能安装PHP5.4.30. 安装好系统:并且安装好IIS6. ...

  5. Beginning Python From Novice to Professional (7) - 类别

    类别 创建一个简单的类: #!/usr/bin/env python __metaclass__ = type class Person: def setName(self,name): self.n ...

  6. Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试

    Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试   需要FQ才能安装,使用时应该不用FQ了,除非使用postman的历史记录功能:   非常棒的C ...

  7. 算法 & 分析 (收集)

    算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通 ...

  8. nginx跳转

    语法规则: location [=|~|~*|^~] /uri/ { - } = 开头表示精确匹配   ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径就可以.nginx不正确url做 ...

  9. iOS_22自定义键盘工具栏

    最后效果图: Main.storyboard KeyboardTool.xib watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ ...

  10. JavaScript随记汇总

    1.<script>标签嵌套,浏览器无法正常解析的问题: 百度知道回答 <script>FTAPI_slotid = 1007894;FTAPI_sync = true< ...