【noi 2.6_2989】糖果(DP)】的更多相关文章

题意:求取到总和为K的倍数的糖果的最大值. 解法:用模K的余数作为一个维度,f[i][j]表示在前i种糖果中取到总颗数模K余j的最大总颗数. 注意--f[i-1][j]要正常转移,而其他要之前的状态存在才能状态转移. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 using namespace std; 6 7 int a[110],f[11…
openjudge2989糖果 总时间限制:  1000ms 内存限制:  65536kB 描述 由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券.在这一天,Dzx可以从糖果公司的N件产品中任意选择若干件带回家享用.糖果公司的N件产品每件都包含数量不同的糖果.Dzx希望他选择的产品包含的糖果总数是K的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们.当然,在满足这一条件的基础上,糖果总数越多越好.Dzx最多能带走多少糖果呢?注意…
题目传送门:http://noi.ac/problem/31 一道思路好题考虑模拟$Kruskal$的加边方式,然后能够发现非最小生成树边只能在一个已经由边权更小的边连成的连通块中,而树边一定会让两个连通块合为一个,故考虑以连通块为切入点设计$DP$设字符串$s_1s_2s_3...s_i,s_1 \geq s_2 \geq s_3 \geq ... \geq s_i$表示某一个图中各个连通块的大小(可以发现我们只关心连通块有多大,但不关心连通块内具体有哪些点,因为当所有连通块大小一一对应的时候…
2436: [Noi2011]Noi嘉年华 Description NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不同的地点举办.每个嘉年华可能包含很多个活动,而每个活动只能在一个嘉年华中举办. 现在嘉年华活动的组织者小安一共收到了 n个活动的举办申请,其中第 i 个活动的起始时间为 Si,活动的持续时间为Ti.这些活动都可以安排到任意一个嘉年华的会场,也可以不安排. 小安通过广泛的调查发现,如果某个时刻,两个嘉…
题目链接:http://noi.openjudge.cn/ch0206/1944/ 根据第一天吃的个数递推,发现这个递推关系很像斐波那契数列. http://paste.ubuntu.com/23402479/…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2436 题意:有一些活动,起始时间持续时间已知.有两个场地.每个活动最多只能在一个场地举行,且两个场地同一时间不能都举行活动.但是同一场地同一时间可以举行多个活动.要求的是两个场地中活动数目少的场地的活动数目的最大值S.再输出某个活动必须被安排时的S值. 思路:我直接粘贴原思路了. 区间离散化,设A={嘉年华1的活动}, B={嘉年华2的活动},C={未安排的活动}. 设num[i][j…
LINK:游戏 还是过于弱鸡 没看出来是个二项式反演,虽然学过一遍 但印象不深刻. 二项式反演:有两种形式 一种是以恰好和至多的转换 一种是恰好和至少得转换. 设\(f_i\)表示至多的方案数 \(g_i\)表示恰好的方案. 则有 \(f_n=\sum_{i=0}^nC(n,i)\cdot g_i\) 根据二项式反演则有 \(g_n=\sum_{i=0}^n(-1)^{n-i}\cdot C(n,i)\cdot f_i\) 设\(f_i\)表示至少的方案数 \(g_i\)表示恰好的方案. 则有…
还是可以想出来的题目 不过考场上没有想出来 要 引以为戒. 初看觉得有点不可做 10分给到了爆搜. 考虑第一个特殊情况 B排列为1~m. 容易发现A排列中前m个数字 他们之间不能产生交换 且 第k个数字要交换到后面的m+1~n这些数字的时候 k~m的数字都要进行交换才行. 那么直接枚举有多少个数字到后面了 组合数可以解决 考虑剩下的那些空位怎么办. 其实就是要求出 \(f_i\) 其表示满足题目条件的i个数的排列的个数. 考虑递推 容易发现\(f_0=1,f_1=1\) 对于\(f_i\)考虑第…
大致题意: 有v个村庄,每个村庄有各自的位置,且每个位置互不相同.现在要在村庄上设立P个邮局,使每个村庄到最近的邮局的距离之和最小. 分析: 定义状态d[i][j]表示前i个村庄,在这i个村庄中设立j个邮局的最小距离.s[i][j]表示村庄i至村庄j这几个村庄中设立一个邮局的最小距离.如果设立一个邮局,那么邮局设立在(a+b)/2这个位置是最优的.所以可以分解成以下子问题: d[i][j]的最小值为d[k][j-1]的最小值加上s[k+1][i],s[k+1][i]为在k+1至i这几个村庄中设立…
noi 1996 登山 noi 8780 拦截导弹 noi 4977 怪盗基德的滑翔翼 noi 6045 开餐馆 noi 2718 移动路线 noi 2728 摘花生 noi 2985 数字组合 noi 6049 买书 noi 666 放苹果 noi 8787 数的划分 noi 9267 核电站 noi 1944 吃糖果 noi 8462 大盗阿福 noi 4982 踩方格 noi 9271 奶牛散步 noi 9268 酒鬼 noi 9265 取数游戏 noi 4978 宠物小精灵之收服 noi…