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的就有两种情 ...
随机推荐
- Qt 元对象系统(Meta-Object System)
(转自:http://blog.csdn.net/aladdina/article/details/5496891) Qt的元对象系统基于如下三件事情: 类:QObject,为所有需要利用原对象系统的 ...
- rsync配置文件的参数详解
rsyncd.conf配置文件常用参数说明: rsyncd.conf参数 参数说明 uid=rsync rsync使用的用户. gid=rsync rsync使用的用户组(用户所在的组) use ch ...
- 记录一个bootstrap因js加载顺序导致的问题(tstrap-table-mobile.min.js:7 Uncaught TypeError: Cannot read property 'defaults' of undefined)
问题描述: 网上找了会没看到答案,然后看了下源码,发现也没有问题,想到js加载的顺序,改了下,发现问题没了. 正确的顺序: 我之前把 <script src="/js/plugins/ ...
- 关于TCP/IP协议
TCP的特点: TCP是面向连接的传输层协议 TCP的传输是可靠传输 TCP是全双工的通信 TCP的连接是点对点的传输 TCP和UDP的区别 tcp是面向连接的,两台主机的通信之前必须通过三次握手建立 ...
- 2018-2019-2 网络对抗技术 20165202 Exp6 信息搜集与漏洞扫描
博客目录 一.实践目标 二.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描:会扫,会看报告,会查漏洞说明,会 ...
- Python中的数据结构 --- 列表(list)
列表(list)是Python中最基本的.最常用的数据结构(相当于C语言中的数组,与C语言不同的是:列表可以存储任意数据类型的数据). 列表中的每一个元素分配一个索引号,且索引的下标是从0开始. ...
- linux下如何启动和关闭weblogic .
在你定义的域中可以找到如下命令: /[youHome]/domains/[yourDomain]/startWebLogic.sh /[youHome]/domains/[yourDomain]/st ...
- vue.js 源代码学习笔记 ----- core lifecycle
/* @flow */ import config from '../config' import Watcher from '../observer/watcher' import { mark, ...
- Lua的清屏快捷方式
1. Lua (Command Line) 这里清屏的方式是: os.execute("cls") 就是执行了DOS中的清屏命令! 2.SciTE中的清屏方式: -----(1)第 ...
- 基于tensorflow的增强学习
可以通过下面的连接查看这个项目工程: https://github.com/reinforceio/tensorforce 通过这遍文章来了这个项目的使用: https://reinforce.io/ ...
一共十种情况