题目大意:

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. Access Toke调用受保护的API

    ASP.NET Web API与Owin OAuth:使用Access Toke调用受保护的API 在前一篇博文中,我们使用OAuth的Client Credential Grant授权方式,在服务端 ...

  2. js 正则学习小记之匹配字符串

    原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高 ...

  3. crawler_分布式网络爬虫的设计与实现_设计图

    一.集中调度式 二.p2p 三.混合调度式 四.大型集群

  4. JavaBean中DAO设计模式介绍

    一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是client,简单的来说就是浏览器. 2.显示层:JSP/ ...

  5. JavaScript闭包的一些理解

    原文:JavaScript闭包的一些理解 简单一点的说:闭包就是能够读取其他函数内部变量的函数.那如何实现读取其它函数内部变量呢,大家都知道在JavaScript中内部函数可以访问其父函数中的变量,那 ...

  6. javascript系列之核心知识点(一)

    JavaScript. The core. 1.对象 2.原型链 3.构造函数 4.执行上下文堆栈 5.执行上下文 6.变量对象 7.活动对象 8.作用域链 9.闭包 10.this值 11.总结 这 ...

  7. Spark集群搭建简配+它到底有多快?【单挑纯C/CPP/HADOOP】

    最近耳闻Spark风生水起,这两天利用休息时间研究了一下,果然还是给人不少惊喜.可惜,笔者不善JAVA,只有PYTHON和SCALA接口.花了不少时间从零开始认识PYTHON和SCALA,不少时间答了 ...

  8. ECLIPSE实现了界面显示所有类

    按下接口名称CTRL+T实现全面实施的接口类显示 版权声明:本文博客原创文章,博客,未经同意,不得转载.

  9. ASP.NET Web Service中使用Session 及 Session丢失解决方法 续

    原文:ASP.NET Web Service中使用Session 及 Session丢失解决方法 续 1.关于Session丢失问题的说明汇总,参考这里 2.在Web Servcie中使用Sessio ...

  10. NGUI ScrollView动态加入和删除对象。

    动态加入,基本思想是: 1.先把要加入的元素在编辑器中编辑好,制作成一个prefab. 2.在代码中,动态的生成一个新的对象增加到Grid对象的子对象中.这里利用到了Resources对象,这个对象的 ...