摘要: 好久没发了CDQ分治,具体做法见XHR的论文… 1 /************************************************************** 2 Problem: 2961 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:5060 ms 7 Memory:41704 kb 8 ****************************************************************/ 9 10... 阅读全文
posted @ 2013-09-10 13:00 zhuohan123 阅读(555) 评论(0) 推荐(0)
摘要: 2-SAT… 1 /************************************************************** 2 Problem: 1823 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:4 ms 7 Memory:1300 kb 8 ****************************************************************/ 9 10 #include 11 #include 12 #inclu... 阅读全文
posted @ 2013-08-27 21:08 zhuohan123 阅读(385) 评论(0) 推荐(0)
摘要: 趁此机会学了一下2-SAT。以前的2-SAT都是用并查集写的,只能应用于极小的一部分情况,这次学了一正式的2-SAT,是用一张有向图来表示其依赖关系。2-SAT的介绍参见刘汝佳《训练指南》。 1 /************************************************************** 2 Problem: 2199 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:140 ms 7 Memory:1388 kb 8 ***********... 阅读全文
posted @ 2013-08-27 16:32 zhuohan123 阅读(338) 评论(0) 推荐(0)
摘要: 这个相当神奇,用容斥原理做背包。首先,我们要先处理出四种钞票都不限的方案数。对于每一个询问,我们利用容斥原理,答案为:得到S所有超过数量限制的方案数-硬币1超过限制的方案数-硬币2超过限制的方案数-硬币3超过限制的方案数-硬币4超过限制的方案数+硬币1、2超过限制的方案数+…+硬币1、2、3、4均超过限制的方案数。而对于每种方案数的求法,也非常简单:假设我们要求的是F[S],则硬币1超过限制(即硬币1取的个数≥d[1]+1,不考虑硬币2、3、4是否超过限制)时的方案数即为F[S-(d[1]+1)×c[1]]。 1 /********************************** 阅读全文
posted @ 2013-08-27 09:53 zhuohan123 阅读(1109) 评论(0) 推荐(0)
摘要: 环缩点+DP下面的代码是有问题的……但是在BZ上能过 1 /************************************************************** 2 Problem: 1023 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:428 ms 7 Memory:30192 kb 8 ****************************************************************/ 9 ... 阅读全文
posted @ 2013-08-26 20:57 zhuohan123 阅读(699) 评论(0) 推荐(0)