上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 25 下一页
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4415 用贪心来解,开始分为两个集合的方法错了,没有考虑之间的相互影响,正确的姿势应该是这样的,分两种情况考虑: 1.只考虑Bi全为0的集合,排个序,能取多少就取多少。 2.如果Bi不为0的集合中的Ai的最小值low如果大于m,那么就到了 1 的情况。否则两个集合放在一起排个序,Bi不为0的集合中至少选取low,刀的总数为sum,那么除去排序后sum个Ai值大的敌人,然后还剩下m-low个durability。用这m-low去消灭剩下的集合。 1 //STATUS:C++_AC_... 阅读全文
posted @ 2013-07-16 16:08 zhsl 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4414 直接暴力判断即可。 1 //STATUS:C++_AC_15MS_232KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #incl... 阅读全文
posted @ 2013-07-16 15:50 zhsl 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1981 容易想到直接枚举两个点,然后确定一个圆来枚举,算法复杂度O(n^3). 这题还有O(n^2*lg n)的算法。将每个点扩展为单位圆,依次枚举每个单位圆,枚举剩下的单位圆,如果有交点,每个圆产生两个交点,然后对产生的2n个交点极角排序,判断被覆盖最多的弧,被覆盖相当于这个弧上的点为圆心的圆可以覆盖到覆盖它的那些点,所以被覆盖最多的弧就是答案了。O(n^3): 1 //STATUS:C++_AC_4032MS_208KB 2 #include 3 #include 4 #include 5 //#inc... 阅读全文
posted @ 2013-07-15 21:43 zhsl 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2442 问题一:K个有序表合成一个有序表,元素共有n个。用堆优化 问题二:两个序列的前n小的元素。堆优化。 这题就是问题二的扩展,每次处理两个序列,求出两个序列的前n小的元素,然后把前n小的元素看做一个序列,再和下一个序列一起处理,依次类推下去。 1 //STATUS:G++_AC_532MS_768KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10... 阅读全文
posted @ 2013-07-15 11:19 zhsl 阅读(317) 评论(0) 推荐(0) 编辑
摘要: Splay tree入门题,学好代码风格,学习HH大牛的,传送门。。 1 #include 2 #include 3 #include 4 //#include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 2... 阅读全文
posted @ 2013-07-14 21:27 zhsl 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.sina.com.cn/s/blog_7c4c33190100sg9r.htmlSplay Tree(又叫伸展树)本质上也是一棵二叉查找树。它不是严格平衡的,但通过一种伸展(splay)操作可以使它一次操作的时间均摊复杂度为O(logN)。详细时间复杂度证明请参考集训队论文。这里,我只说说伸展树的实际操作。和其他二叉查找树一样,Splay Tree支持查找询问、修改、加入、删除等操作,但又有所不同。对于询问,每次找到目标值后,把目标位置伸展到根。对于修改,与询问类似。对于加入,如果是一个节点加入,则与上列相似。若是插入一个区间(一棵子树),可以把要插入地方的前.. 阅读全文
posted @ 2013-07-14 21:24 zhsl 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 关于入门资料,推荐看,取火柴的那10个定理必须理解。五篇国家集训队论文: 张一飞: 《由感性认识到理性认识——透析一类搏弈游戏的解答过程 》 王晓珂:《 解析一类组合游戏》 方展鹏:《浅谈如何解决不平等博弈问题》 贾志豪:《组合游戏略述——浅谈SG游戏的若干拓展及变形》 曹钦翔:《从“k倍动态减法游戏”出发 探究一类组合游戏问题》 下面是题目总结:1.HDU 1404 预处理,推出所有情况的胜负情况。 1 //STATUS:C++_AC_468MS_4140KB 2 #include 3 #include 4 #include 5 //#include 6 ... 阅读全文
posted @ 2013-07-07 18:07 zhsl 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3648‘ 题意:一对情人举行婚礼,有n对夫妇参加,别人对着坐在一个长桌子的两边,新娘和新郎坐在最后面,新娘只能看见坐在他对面的人。现在,n对夫妇中有两两通奸了,新娘不希望看到这种情况,先给出通奸的人,求是否存在可行的排位方法。 有两种建立2sat模型的方法,第一种是对每个人的坐的方向来建立,0和1分别表示坐在左边和右边。但是可以不考虑坐方向,只考虑他们能不能坐在同一边,需要考虑新郎的一边,因为新娘那边得不出限制条件。 1 //STATUS:C++_AC_16MS_180KB 2 #include 3 #includ... 阅读全文
posted @ 2013-07-07 12:58 zhsl 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2296 二分+2sat,每个点的上下两个方向为2sat的两个状态。 1 //STATUS:C++_AC_16MS_536KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #... 阅读全文
posted @ 2013-07-07 12:15 zhsl 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3207 题意:在一个圆圈上有n个点,现在用线把点两两连接起来,线只能在圈外或者圈内,现给出m个限制,第 i 个点和第 j 个点必须链接在一起,问是否存在可行解。 容易想到圈内和圈外分别表示2sat的两种状态,对每一个限制 i 和 j ,考虑所有其它横跨他们的限制,然后连边就可以了。 1 //STATUS:C++_AC_47MS_6300KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include... 阅读全文
posted @ 2013-07-07 12:02 zhsl 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1814 简单的2sat题。 1 //STATUS:C++_AC_390MS_996KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #inc... 阅读全文
posted @ 2013-07-07 11:46 zhsl 阅读(416) 评论(1) 推荐(1) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3622 题意:一个平面上有很多的炸弹,每个炸弹的爆炸范围是一样的,求最大的爆炸范围使得炸弹之间不相互影响。 二分爆炸范围,然后建立2sat模型,看是否存在解。 1 //STATUS:C++_AC_171MS_972KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #i... 阅读全文
posted @ 2013-07-07 11:35 zhsl 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4115 题意:Alice和Bob玩猜拳游戏,Alice知道Bob每次会出什么,为了游戏公平,Bob对Alice的出法做出了一定限制,限制为Alice的第 i 次和第 j 次的出法相同或者不同。在n轮游戏汇总,如果Alice输了一次,那么Alice是loser。 Alice每次只有两种选择,要么赢,要么平局,建立2sat模型,然后分情况建立边,分Bob第 i 次和第 j 次的拳不相等和相等两种,然后在这两种里面分对Alice的限制为相同和不相同。 1 //STATUS:C++_AC_15MS... 阅读全文
posted @ 2013-07-07 11:02 zhsl 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3678 分别对and,or,xor推出相对应的逻辑关系: 逻辑关系 1 0 A and B A'->A,B'->B A->B',B->A' A or B A'->B',B'->A A->A',B->B' A xor B A'->B,B'->A,A->B',B->A' A->B,A'->B' 1 //STATUS:C++_AC_96 阅读全文
posted @ 2013-07-06 15:40 zhsl 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cppblog.com/MatoNo1/archive/2011/07/13/150766.html【2-SAT问题】现有一个由N个布尔值组成的序列A,给出一些限制关系,比如A[x]AND A[y]=0、A[x]OR A[y]OR A[z]=1等,要确定A[0..N-1]的值,使得其满足所有限制关系。这个称为SAT问题,特别的,若每种限制关系中最多只对两个元素进行限制,则称为2-SAT问题。由于在2-SAT问题中,最多只对两个元素进行限制,所以可能的限制关系共有11种:A[x]NOT A[x]A[x] AND A[y]A[x] AND NOT A[y]A[x] .. 阅读全文
posted @ 2013-06-27 14:22 zhsl 阅读(308) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 25 下一页