本博客参考自这里

不是我说,我就觉得这题题目贼鸡儿难懂

所以只能看看别的博客如何解释这题题目的意思咯。

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

  1. 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 ...

  2. 完全背包 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][ ...

  3. [CF543A]/[CF544C]Writing Code

    [CF543A]/[CF544C]Writing Code 题目大意: 有\(n\)种物品,每种物品分别要\(c_i\)的代价,每个物品有\(1\)的体积,每个物品可以选多个,代价不能超过\(b\), ...

  4. (完全背包)Writing Code -- Codeforce 544C

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=99951#problem/C  (zznu14) Writing Code  Writin ...

  5. 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 ...

  6. CodeForces 543A - Writing Code DP 完全背包

    有n个程序,这n个程序运作产生m行代码,但是每个程序产生的BUG总和不能超过b, 给出每个程序产生的代码,每行会产生ai个BUG,问在总BUG不超过b的情况下, 我们有几种选择方法思路:看懂了题意之后 ...

  7. Code Forces 543A Writing Code

    题目描述 Programmers working on a large project have just received a task to write exactly mm lines of c ...

  8. CF543A Writing Code

    题目描述 Programmers working on a large project have just received a task to write exactly m m m lines o ...

  9. A. Writing Code 完全背包

    http://codeforces.com/contest/543/problem/A 一开始这题用了多重背包做,结果有后效性. 就是如果6,这样拆分成 1 + 2 + 3的,那么能产生3的就有两种情 ...

随机推荐

  1. laravel中composer镜像服务的方式

    系统全局配置:即将配置信息添加到Composer的全局配置文件config.json中. 单个项目配置:将配置信息添加到某个项目的composer.json文件中. 例1:修改Composer的全局配 ...

  2. 前台cookie的操作

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

  3. 【WebGL】4.光源

    光的类型:所有的光都是从THREE.Light继承,分为环境光THREE.AmbientLight,点光源PointLight,聚光灯THREE.SpotLight和方向光THREE.Directio ...

  4. PHP回调函数call_user_func()和call_user_func_array()的使用

    call_user_func():把第一个参数作为回调函数调用 用法:call_user_func ( callable $callback [, mixed $parameter [, mixed ...

  5. yii2.0 高级版 restful api使用

    1.复制任意个目录(backend)为api 2.打开api下的main.php 修改 id=>app-api,'controllerNamespace' => 'api\controll ...

  6. 初识jQuery(1)

    1.Jquery是对JavaScript对象和函数的封装(JavaScript框架) 2.怎么使用Jquery 第一步:把js文件放入项目中 第二步:在页面引用jquery <script ty ...

  7. js之10天内免登陆

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 【排序】选择排序,C++实现

    # 基本思想 每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止. 排序实例 初始关键字 [49 38 65 97 76 13 27 49] 第一趟排序后 13 [ ...

  9. 【sklearn】网格搜索 from sklearn.model_selection import GridSearchCV

    GridSearchCV用于系统地遍历模型的多种参数组合,通过交叉验证确定最佳参数. 1.GridSearchCV参数    # 不常用的参数 pre_dispatch 没看懂 refit 默认为Tr ...

  10. Python timedelta

    datetime.timedelta对象代表两个时间之间的的时间差,两个date或datetime对象相减时可以返回一个timedelta对象.   构造函数: class datetime.time ...