CF - A. Writing Code
本博客参考自这里

不是我说,我就觉得这题题目贼鸡儿难懂
所以只能看看别的博客如何解释这题题目的意思咯。
有n个程序,这n个程序运作产生m行代码,但是每个程序产生的BUG总和不能超过b,给出每个程序产生的代码,每行会产生ai个BUG,
问在总BUG不超过b的情况下,我们有几种产生bug的方法。
解释一下例一的几种情况
我用1,2,3代表程序,然后每个都是1个bug就不需要特地其他方法搞一共十种情况
然后对dp进行分析,设立一个dp[j][k],j代表代码数m,k代表bug数b
然后写状态转移方程:dp[j][k] += dp[j-1][k-a[i]]
本行的bug为上一行的第k-a[i]列的和。(其实我觉得这是最难的一步啦,我也是看那位大佬的博客才明白的)
还要注意的是状态转移方程的入口dp[0][0] = 1
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll dp[555][555],a[555];
int main()
{
int n,m,b,mod;
ll sum = 0;
scanf("%d%d%d%d",&n,&m,&b,&mod);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
dp[0][0] = 1;//入口哦
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int k=a[i];k<=b;k++)//是从a[i]开始的
{
dp[j][k] += dp[j-1][k-a[i]];//状态转移方程
dp[j][k] %= mod;
}
}
}
for(int i=0;i<=b;i++)//小于b的bug数
{
sum += dp[m][i];
sum %= mod;
}
printf("%I64d",sum);
return 0;
}
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll dp[][],a[];
int main()
{
int n,m,b,mod;
ll sum = ;
scanf("%d%d%d%d",&n,&m,&b,&mod);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
dp[][] = ;//入口哦
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
for(int k=a[i];k<=b;k++)//是从a[i]开始的
{
dp[j][k] += dp[j-][k-a[i]];//状态转移方程
dp[j][k] %= mod;
}
}
}
for(int i=;i<=b;i++)//小于b的bug数
{
sum += dp[m][i];
sum %= mod;
}
printf("%I64d",sum);
return
CF - A. Writing Code的更多相关文章
- Codeforces Round #302 (Div. 2).C. Writing Code (dp)
C. Writing Code time limit per test 3 seconds memory limit per test 256 megabytes input standard inp ...
- 完全背包 Codeforces Round #302 (Div. 2) C Writing Code
题目传送门 /* 题意:n个程序员,每个人每行写a[i]个bug,现在写m行,最多出现b个bug,问可能的方案有几个 完全背包:dp[i][j][k] 表示i个人,j行,k个bug dp[0][0][ ...
- [CF543A]/[CF544C]Writing Code
[CF543A]/[CF544C]Writing Code 题目大意: 有\(n\)种物品,每种物品分别要\(c_i\)的代价,每个物品有\(1\)的体积,每个物品可以选多个,代价不能超过\(b\), ...
- (完全背包)Writing Code -- Codeforce 544C
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=99951#problem/C (zznu14) Writing Code Writin ...
- Codeforces Round #302 (Div. 2) C. Writing Code 简单dp
C. Writing Code Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/544/prob ...
- CodeForces 543A - Writing Code DP 完全背包
有n个程序,这n个程序运作产生m行代码,但是每个程序产生的BUG总和不能超过b, 给出每个程序产生的代码,每行会产生ai个BUG,问在总BUG不超过b的情况下, 我们有几种选择方法思路:看懂了题意之后 ...
- Code Forces 543A Writing Code
题目描述 Programmers working on a large project have just received a task to write exactly mm lines of c ...
- CF543A Writing Code
题目描述 Programmers working on a large project have just received a task to write exactly m m m lines o ...
- A. Writing Code 完全背包
http://codeforces.com/contest/543/problem/A 一开始这题用了多重背包做,结果有后效性. 就是如果6,这样拆分成 1 + 2 + 3的,那么能产生3的就有两种情 ...
随机推荐
- 由浅入深了解EventBus:(五)
事件分发 EventBus3.0的事件的分发时通过EventBus类中的post(粘性事件为postSticky)方法,post与postSticky的唯一区别就是,在postSticky内部首先会向 ...
- WeChat-JSAPI支付
官方API:打开连接 特别注意----JSAPI只能在微信环境下 测试!2017-04-19 配置:微信公众号中 添加微信支付配置--请认真填写配置并获取下面对应的数据才能正常运行. ======== ...
- 模式窗体中调用父页面js与非模式化调用非父页面的js方法
最近项目中使用模式窗体,遇到以下问题记录一下: 模式窗体:你必须关闭该窗体,才能操作其它窗体:比如说,必须按确定或取消,或者按关闭. 非模式窗体:不必关闭该窗体,就可转换到其它窗体上进行操作. 一:非 ...
- Error:java: Compilation failed: internal java compiler error(转)
set中java complier 设置的问题 ,项目中有人用jdk1.6 有人用jdk1.7 版本不一样 会一起这个错误 进行如下操作: 原文链接:http://blog.csdn.net/ ...
- NorFlash、NandFlash、eMMC比较区别
快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器.这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存 ...
- day4(带)
int is_his_file(char*filename,char *username) { int ret; struct passwd *user_info;// struct stat sta ...
- 安装vmware exsi 6.0(自制虚拟服务器)
安装准备:2枚U盘.每个U盘大于2G.或者1枚光盘外加一枚U盘. exsi是一个虚拟服务容器.是一个专门运行虚拟的服务器系统. 关于服务的要求.由于exsi是专业的虚拟服务容器.所以服务器要求比较苛刻 ...
- test20181223
Written with StackEdit. T1 取石子(stone) Description 有\(n\)堆石子,第\(i\)堆有\(x_i\)个. \(Alice\)和\(Bob\)轮流取石子 ...
- JavaScript 定时任务多事件冲突问题
var iCount = setInterval(ChangeTime, 3500);//3.5秒请求一次函数 function ChangeTime() { $.ajax({ type: " ...
- direct2d封装
图片项目
一共十种情况