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的就有两种情 ...
随机推荐
- laravel5.5种的Eloquent ORM的使用:
控制器方法: //Eloquent ORM的使用: public function orm1() { //all() /*$students=Student::all(); dd($students) ...
- SQL基础整理(事务)
事务==流程控制 确保流程只能成功或者失败,若出现错误会自动回到原点 具体的实现代码如下: begin tran insert into student values(') goto tranroll ...
- js Worker 线程
在平时的运行的javascript脚本都在主线程中执行,如果当前脚本包含复杂的.耗时的代码.那么JavaScript脚本的执行将会被阻塞,甚至整个刘看齐都是提示失去响应. 例子: 假设程序需要计算.收 ...
- iOS TableView常见问题
Q:表视图只需要部分单元格,怎样删除下方多余的空白单元格? A:viewDidLoad中添加 self.tableView.tableFooterView=[[UIView alloc] init]; ...
- 做网站用UTF-8还是GB2312?
经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. ● 为什么有这么多编码? ...
- Java多线程编程实战指南(核心篇)读书笔记(五)
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76730459冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...
- 学习三部曲:WHAT、HOW、WHY
一个人学习的过程要经历以下三步,才可以说得上"学会"两字: 第一步:WHAT 所谓的"WHAT",就是搞清楚某个东东是什么?有什么用?有什么语法?有什么功能特性 ...
- 我也说说Emacs吧(4) - 光标的移动
在说基本编辑命令之前,我们先加一个小tip,说说如何将函数和键绑定在一起. (define-key global-map [?\C-l] 'recenter-top-bottom) define-ke ...
- tomcat的localhost-config is missing 错误的解决方法
运行项目时报错,错误信息为: The tomcat server configuration at /sever/tomcat v7.0 localhost-config is missing 解决方 ...
- Buildroot 使用默认配置
/******************************************************************************** * Buildroot 使用默认配置 ...