codeforces 478D Red-Green Towers dp
来源:互联网 发布:上海锋趣网络 编辑:程序博客网 时间:2024/05/05 08:14
传送门:cf 478d
给定红绿两种砖块,问搭成的塔层数最高的情况下一共有多少种不同的情况,每一层的颜色必须相同。塔自上向下每层块数为1,2,3,4……
dp,首先通过两种砖块的和求出最高的层数。dp[i][j]表示i层用j块红砖的情况数,转移方程
dp[i][j]=(dp[i][j]+dp[k][j-i])(0<=k<=i-1)
需要用到的是所有j+g>=(n层块数)的j
/****************************************************** * File Name: d.cpp * Author: kojimai * Create Time: 2014年10月24日 星期五 15时38分37秒******************************************************/#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>using namespace std;#define FFF 200005#define mod 1000000007int f[FFF];int findn(int x) {int l = 1, r = 1000, mid;while(l <= r) {mid = (l + r) >> 1;if((mid * (mid + 1) / 2)>x)r = mid - 1;else l = mid + 1;}return r;}int main(){int r,g;cin>>r>>g;int n = findn(r + g);//找出最高的层数memset(f,0,sizeof(f));f[0] = 1;for(int i = 1; i <= n; i++) {//加上了第i层之后求红块用了j块一共有多少种情况for(int j = r; j >= i; j--) {f[j] += f[j-i]; //当前层用了j,i-1层需要j-i块if(f[j] >= mod)f[j] -= mod;}}int ans = 0;for(int j = r; j + g >= n*(n+1)/2 && j >= 0; j--) {ans += f[j];ans %= mod;}cout<<ans<<endl;return 0;}
0 0
- Codeforces 478D Red-Green Towers dp
- codeforces 478D Red-Green Towers dp
- codeforces 478D Red-Green Towers (dp)
- Codeforces 478D Red-Green Towers (DP)
- Codeforces 478D Red-Green Towers (DP)
- codeforces 478D D. Red-Green Towers(dp)
- codeforces 478D Red-Green Towers(dp)
- Codeforces 478D Red-Green Towers 构造+DP
- CodeForces 478D-Red-Green Towers
- codeforces D - Red-Green Towers
- 【CODEFORCES】 D. Red-Green Towers
- D - Red-Green Towers dp
- D. Red-Green Towers(Codeforces Round #273)
- CF 478D - Red-Green Towers(DP)
- Codeforcces 478D Red-Green Towers【dp】好题!
- cf#273-D. Red-Green Towers-dp
- Codeforces Round #273 (Div. 2) D. Red-Green Towers
- Codeforces Round #273 (Div. 2) D. Red-Green Towers
- JS获取系统时间,获取项目地址
- Vision引擎中粒子编辑器-物理属性选项
- 大数模板
- PAT (Advanced Level) Practise 1012. The Best Rank (25)
- Autorelease释放相关知识
- codeforces 478D Red-Green Towers dp
- 【翻译】PHP-NG版实现细节
- Linux内核协议栈分析之网卡初始化
- 英文版Windows 8.1下MATLAB中文字符乱码解决方案
- MySQL数据库服务器优化详细
- MySQL(5.6)数据类型
- fileupload上传多个文件
- QUARTZ定时任务---属性文件和JAR
- Android 图标上面添加提醒(一)使用Canvas绘制