ZOJ 2745 01-K Code(DP)(转)】的更多相关文章

题目传送门 题意:要求任意连续子序列中0和1的数量差不超过k的方案数 分析:想好状态其实不难.dp[i][j][k]表示考虑前i长度,后缀中最大的 sum(0) - sum(1) = j, sum (1) - sum (0) = k的方案数,合并以下可以得到最大的|sum(0) - sum(1)| = j + k,所以j+k <= K,最后考虑当前i放0或1就可以转移状态了. #include <bits/stdc++.h> using namespace std; typedef lo…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1745 题目大意:一个串由N个字符组成,每个字符是‘0’或者是‘1’,在任意一段连续的子序列中,要求0和1的个数的差不超过K,求一共有多少种这样的串,比如N=4,K=3时,除了0000和1111外的其他四个字符的串都符合要求. Sample Input 1 2 4 3 Sample Output 2 14 分析: 这种涉及到任意子区间的性质的问题,如果每个子区间都考虑…
C. Writing Code time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Programmers working on a large project have just received a task to write exactly m lines of code. There are n programmers w…
有n个程序,这n个程序运作产生m行代码,但是每个程序产生的BUG总和不能超过b, 给出每个程序产生的代码,每行会产生ai个BUG,问在总BUG不超过b的情况下, 我们有几种选择方法思路:看懂了题意之后就是一个完全背包题了 定义dp[ i ][ j ][ k ] 表示前 i 个程序员,已经写了 j 行代码, 已经产生了 k 个 bugs . 根据题意,得知第 i 个程序员会写 r 行代码,那么相当于 dp[ i ][ j ][ k ] += dp[i - 1][j - r][k - ra[ i ]…
题意: 一一个21点游戏. 1. 有三个牌堆,分别为1X,2X,3X. 2. 纸牌A的值为1,纸牌2-9的值与牌面面相同,10(T).J.Q.K的值为10,而而joke(F)的值为 任意大大. 3. 一一列牌要按顺序放入入三个牌堆中.当某个牌堆的值超过21点时,不能在放牌;如果某个牌堆的 总值为21点时,这个排队讲会被清空;joke放上后这个牌堆的值立立即变为21点. 4. 成功放上一一张牌得50美元;成功清空一一个牌堆讲得到100*牌堆号美元,即1X得100美元,2X得 200美元,3X得30…
B - Problem Arrangement Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3777 Description The 11th Zhejiang Provincial Collegiate Programming Contest is coming! As a problem setter, Edward is going…
一.前言 红书上面推荐的题目,在138页,提到了关键部分的题解,但是实际上他没提到的还有若干不太好实现的地方.尤其是在这道题是大家都拿网络流玩弄的大背景下,这个代码打不出来就相当的揪心了..最后在牛客找到一个用来参考的代码,经过研究发现他的代码实际上实现的是那个比较简单的实现版本(二维但是使用背包来进行处理).加了若干行注释强行理解之后,对最终复刻的版本做了一下滚动数组优化(之前该大佬在函数内部开105*105的大数组,我开的数字稍微大了一些就直接炸了). 二.题意 首先有一个树,生物学意义上的…
题目:给出1-n连续的方格,从0开始,每一个格子有4个状态,左右脚交替,向右跳,而且每一步的步长必须在给定的区间之内.当跳出n个格子或者没有格子可以跳的时候就结束了,求出游戏的期望步数 0:表示不能到达这个格子 1:表示左脚跳进这个格子 2:表示右脚跳进这个格子 3:随意哪个脚跳进这个格子,而且下一步随意用哪个脚 dp[i][j] :表示走到第 i 个格子在 j 状态的期望. 当j=1时,你可以走到dp[i+k][2],dp[i+k][3], 当j=2时,你可以走到dp[i+k][1],dp[i…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1625 题目大意:将n个数重新排列,使得每个数的前一个数都不能和之前的一样,求一共有多少种排列方法 ample Input: 3 4 Sample Output: 3 11 分析: CrazyAC's 解题报告: 本题一道DP题 仔细想想不难的 首先我们确定状态F[N]表示所产生的新排列的情况数 那么F[N]=f(F[N-1]) 怎么来确定他呢? 由于F[N-1]是排…
E - Domination Time Limit:8000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submit Status Description Edward is the headmaster of Marjar University. He is enthusiastic about chess and often plays chess with his friends. What's more, he…