10 2014 档案
摘要:zoj月赛的题目,非常不错的一个状压dp。。题目大意是一个一维的2048游戏只要有相邻的相同就会合并,合并之后会有奖励分数,总共n个,每个都可以取或者不取问最终得到的最大值数据范围n#include #include#include#include#includeusing namespace st...
阅读全文
摘要:鞍山热身赛的题,也是去年多校原题题目大意:求n个数的排列中满足相邻两个数互质的排列的数量并取模当时的思路就是状压dp.. dp[i][state] state用二进制记录某个数是否被取走,i 表示当前序列末尾的数字然后gcd状态转移可是n是28,算了一下有几亿个状态。。没法做。。回来之后找了题解发现...
阅读全文
摘要:多重背包的题目很多,最著名的是poj1742楼教主的男人八题之一。poj1742:coins有几种面值的钱币和每种的数量,问能够组成m以内的多少种钱数这个题大家都归为多重背包问题,不过跟实际意义上的背包还是有所差别的因为如果把钱币看作背包中的物品,那么这个物品的价值和重量是相等的。也就是没有“性价比...
阅读全文
摘要:第一个单调队列优化dp写了半天,最后初始化搞错了还一直wa。。题目大意:炒股,总共 t 天,每天可以买入na[i]股,卖出nb[i]股,价钱分别为pa[i]和pb[i],最大同时拥有p股且一次交易后至少要间隔w天才能再次交易,初始有0股,本金无限,求最大收益题解:dp[i][j]表示第 i 天,有 ...
阅读全文
摘要:1.二分优化 (使用二分查找优化查找效率)典型例题:LISdp[i]保存长度为 i 的上升子序列中最小的结尾,可以用二分查找优化到nlogn2.数学优化 (通过数学结论减少状态数)例题1:hdu4623题解:http://www.cnblogs.com/oneshot/p/4064852.html例...
阅读全文
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1588这道题貌似很多中做法,我先是用multiset交了一发,然后又写了一发splay。multiset做法,这个其实就是二分了,只是用set来保持加入一个元素时保持有序 1 #include...
阅读全文
摘要:题目大意:给定长度为n的数组,求出最大的区间和,其中区间长度在[1,k]之间分析:学动态规划的时候我们会遇到一个经典问题最大子段和,这个题跟最大子段和很类似 不同的是区间的长度有限制,无法用原算法解决转换思路区间[i,j]的和就是ans=sum(j)-sum(i-1) ( j - i #includ...
阅读全文
摘要:现场过的第四多的题。。当时没什么想法,回来学了下容斥,又听学长讲了一讲,终于把它过了题目大意:给定n个数,求全部互质或者全部不互质的三元组的个数先说一下同色三角形模型n个点 每两个点连一条边(可以为红色或者黑色),求形成的三条边颜色相同的三角形的个数反面考虑这个问题,只需要c(n,3)减去不同色的三...
阅读全文
摘要:虽然现在只是十月份,但是随着鞍山的打铁,我的ACM2014可以说已经结束了从四月份听说即将到来的校赛开始第一次接触acm,到半年后参加的人生第一场regional,有acm的日子真是挺充实的刚开始真是什么都不会,最简单的模拟都要敲半天,做xdoj照猫画虎写出了第一个dfs,校赛选拔学会了第一个dp(...
阅读全文
摘要:我们作为弱校xdu的七队(大四一支,大三四支,大二俩),本来都没指望今年可以出去,结果运气不错,学校得到几个激动名额,于是我们激动地成功申请到了鞍山站的名额,嗯...可以出去旅游了。 不过我们毕竟太弱,自己感觉显然是打铁节奏= =哦,,刚好鞍山又是著名钢铁厂所在地,于是后来真的打铁了 赛前一起做了几...
阅读全文
摘要:题目大意:有g种不同颜色的小球,b个袋子,每个袋子里面有若干个每种小球两人轮流取袋子,当袋子里面的同色小球有s个时,会合并成一个魔法球,并被此次取袋子的人获得成功获得魔法球的人可以再次取求二者都进行最优策略之后两人所得魔法球个数差分析:博弈,数据很小,自然想到了可以搜索所有状态然后从每一步的子状态中...
阅读全文
摘要:题意:给定 n个数,查询 位置L R内 小于x的数有多少个。对于某一次查询 把所有比x小的数 ”的位置“ 都加入到树状数组中,然后sum(R)-sum(L-1)就是答案,q次查询就要离线操作了,按高度排序。#include #include #include #include #include #i...
阅读全文
摘要:今天学习了一下单调队列这种数据结构,思想不是很难参考资料:http://www.cnblogs.com/Jason-Damon/archive/2012/04/19/2457889.html然后自己写成了类的模板形式,并做了例题poj2823代码如下:#include #include #inclu...
阅读全文
摘要:也算是比较基础的状压dp了,跟做过的第二道比较又稍微复杂了一点需要记录之前两行的状态。。统计结果也稍有不同另外还学习了一个得到一个整数二进制位 1 的个数的位运算方法详见代码:#include #include #include#include#include#includeusing namesp...
阅读全文
摘要:大致题意:add1 u v u到v路径上所有点的权值加上k,add2 u 到v路径上所有边的权值加上k最后输出所有点的权值,边的权值。。树链剖分预处理然后来个线性O(n)的操作。刚开始用线段树tle了. 1 #pragma comment(linker, "/STACK:1024000000,1...
阅读全文
摘要:第二个状压dp做过的第一个也是放牛问题,两头牛不能相邻这个题多了一个限制,就是有些位置不能放牛于是先与处理一下每一行所有不能放牛的状态,处理的过程直接对每一个不能放牛的状态或以下ac代码:#include #include #include#include#include#includeusing ...
阅读全文
摘要:题意:三种操作 ①修改第i条边的权值为val,②把u到v路径上的所有边的权值 去相反数③求u 到v路径上最大的边权线段树的区间更新还是不熟练,,一直搞不对调试了好久还是没对,最后还是看的kuangbin的代码。 1 #include 2 #include 3 #include 4 #i...
阅读全文
摘要:Cat vs. DogTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1602Accepted Submission(s): 606Problem ...
阅读全文
摘要:题意:规定一个合法的号码不能含有4或者是连续的62给定区间[n,m] 问此区间内合法的号码的个数分析:数位dpdp[i][j]代表 最高位为 j 的 i位数有多少个合法的然后按题目规则进行转移即可dp结束后,再统计范围内的总数,最后打表输出代码:#include#include#includeusi...
阅读全文
摘要:题目大意:有一个吸血鬼,初始攻击力为f,每天随机走到n个洞里面,每个洞有一个c[i],如果他的攻击力f>c[i]则可以花费t[i] 的时间逃走,否则则花费一天时间使自己的攻击力增加c[i],求逃走天数的期望分析:这道题求期望,,考虑采用概率dp求解想到的最简单方法就是dp[i][j]表示 第i天,攻...
阅读全文
摘要:题意:有一个随机数生成器 x[i+1]=(a*x[i]+b)%10001已知 x1,x3,x5...求 x2,x4,x6......x的个数为 2n (n#include #include#include#include#includeusing namespace std;#define mod ...
阅读全文
摘要:题意:一个树,a b c 代表a--b边的权值为c。CHANGE x y 把输入的第x条边的权值改为y,QUERY x y 查询x--y路径上边的权值的最大值。第一次写树链剖分,其实树链剖分只能说是一种思想。树链剖分 就是 先选择从根节点到叶子节点的最长的路径的权值对应到线段树上,然后从一个子树的根...
阅读全文
摘要:关键在于找出一定矛盾的条件,设一队的3个人为(a,b,c),a为队长,那么(a不留下,b不留下)矛盾,(a不留下,c不留下)矛盾; 对于每一对队员,(a留下,b留下)矛盾。把模型建好,剩下的就是套模板了。 1 #include 2 #include 3 #include 4 using namesp...
阅读全文
摘要:Two CylindersSpecial JudgeTime Limit:10000/5000MS (Java/Others)Memory Limit:128000/64000KB (Java/Others)SubmitStatisticNext ProblemProblem Description...
阅读全文
摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int maxn = _____; 7 8 struct TwoSAT 9 {10 int n;11 vector G[maxn*2];12 ...
阅读全文
摘要:一道2-SAT问题,每对钥匙需要加一条边,每扇门上的对应的要用的钥匙加一条边。其实求解2-SAT问题,关键在于找到不能同时成立的条件,例如在本题中,每对钥匙不能同时使用,每扇门上的钥匙不能同时不使用。 1 #include 2 #include 3 #include 4 using name...
阅读全文
摘要:题意:给出一个标准2-3树的叶子节点(最底层节点)个数 L,求2-3数的形成方案数并取余分析:如果有L个叶子枚举每个可以使x*2+y*3=L的xy 那么在最底层就有c(x+y,x)种2,3的放法上一层就是有x+y个叶子的子问题这样就可以递推算了枚举时首先注意到 x=L y=-L 是一组特解,因此可以...
阅读全文
摘要:By Recognizing These Guys, We Find Social Networks UsefulTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 125536/65536 K (Java/Others)Total Submiss...
阅读全文
摘要:Nice Patterns Strike BackTime Limit:20000/10000MS (Java/Others)Memory Limit:128000/64000KB (Java/Others)Problem Description You might have noticed th...
阅读全文
摘要:Beautiful PeopleSpecial JudgeTime Limit:10000/5000MS (Java/Others)Memory Limit:128000/64000KB (Java/Others)SubmitStatisticNext ProblemProblem Descript...
阅读全文
摘要:题目大意:给出一个无向图以及Q次询问,每次询问增加一条无向边,要求输出增加这条边后剩余的桥的数目。算法:类似于求割点的方法,先做一次dfs求出所有的桥,并且维护这棵dfs树,当一次询问加入一条边(a,b)之后,会在dfs上形成一个环,在这个环上的桥都变为非桥,这个环肯定经过a和b的LCA,此时我们只...
阅读全文

浙公网安备 33010602011771号