08 2013 档案
摘要: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...
阅读全文
摘要:趁此机会学了一下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 ***********...
阅读全文
摘要:这个相当神奇,用容斥原理做背包。首先,我们要先处理出四种钞票都不限的方案数。对于每一个询问,我们利用容斥原理,答案为:得到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 /**********************************
阅读全文
摘要:环缩点+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 ...
阅读全文
摘要:终于是把这题过了。首先,一个赤裸裸的置换在那,显然不是Burnside就是Pólya。这题由于有三种颜色且颜色数是有限的,Pólya是没法用了,上Burnside。Burnside是说,真正意义上不变的染色方案数=Σ(每种置换下不变的染色方案数)/(置换总数)求出每种置换下不变的染色方案数便显得很重要,这里便需要特殊到这道题了。对于每一种置换,我们求出其循环节(超像Pólya!),显然的,每个循环节必须染同样的颜色。接下来,就能够通过一个DP将整个分子求出。而分母,由于是除法,所以需要用到乘法逆元,又因为这里保证p为素数,所以可以直接用快速幂来求逆元。调试小结:
阅读全文
摘要:贪心先按结束时间排序,按次序处理。如果当前的时间加上需要的时间没有超过结束时间,直接进堆,更新答案;(使最终结果变大)而如果超过了,把堆顶取出预制比较,若堆顶所花时间较多,取出堆顶,将当前建筑进堆。(在最终结果不变的情况下,减少总时间) 1 /************************************************************** 2 Problem: 1029 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:396 ms 7 Memor...
阅读全文
摘要:DP… 1 /************************************************************** 2 Problem: 1037 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:448 ms 7 Memory:1792 kb 8 ****************************************************************/ 9 10 #include 11 #include 12 #includ...
阅读全文
摘要:水题之王SP…这题就裸的最小生成树 1 /************************************************************** 2 Problem: 1083 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:32 ms 7 Memory:1404 kb 8 ****************************************************************/ 9 10 #include 11 #inclu...
阅读全文
摘要:题目描述里的非主流配图…这道题做法和田忌赛马差不多,先把自己和对手都排个序,只要按照下面的流程走就行了: 1.尽量用自己最优的干掉对方最优的 ans+=2 2.尽量用自己最矬的干掉对方最矬的 ans+=2 3.用自己最矬的一个干掉对方最优的 ans+=(两者是否相同)? 1:0而自己最坏的情况,只要用对手最优的情况反着来一次。 1 /************************************************************** 2 Problem: 1034 3 User: zhuohan123 4 Language: C++ 5 ...
阅读全文
摘要:这题标解是改一下匈牙利算法,显然,像我这种从不用匈牙利的人,会找个办法用网络流…具体做法是这样,二分最后的答案ans,然后对前ans个问题建图跑网络流,看最大流能不能到ans。 1 /************************************************************** 2 Problem: 1191 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:64 ms 7 Memory:3128 kb 8 ***********...
阅读全文
摘要:规律题,这规律无力吐槽了… 1 /************************************************************** 2 Problem: 1432 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:0 ms 7 Memory:804 kb 8 ****************************************************************/ 9 10 #include 11 using namesp...
阅读全文
摘要:这题乍看很吓人,其实就是一个贪心。每次取最近的两个点所在的块合并,直到只剩下k块,输出答案。 1 /************************************************************** 2 Problem: 1821 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:136 ms 7 Memory:18492 kb 8 ***********************************************************...
阅读全文
摘要:呼~终于是过了这道题了,开始伟大的计算几何!这道题做法不是很难想到吧,输入的三个合金的比例,因为三者之和等于1,所以只需任取两个即可确定第三个(样例还有错我去!)。我们将每种合金的两个参数看做平面上的点,那么两种合金互相混合可以得到的合金的成分必然是在以这两个点为端点的线段上。而三种及以上种合金混合,得到的合金的成分必然是在所有合金所形成的凸包上。那么,这道题目就可抽象成这样:所取的合金集合的凸包要完全“包住”客户所需合金的集合的凸包。又由于n,m都小于等于500,所以我们可以采取暴力的O(n3)的算法:直接枚举从合金i到合金j的向量ij,若所有点均在ij的左边,那么在一张有向图G中由i向j连
阅读全文
摘要:感慨下汉堡的找水题能力… 1 /************************************************************** 2 Problem: 2463 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:0 ms 7 Memory:804 kb 8 ****************************************************************/ 9 10 #include 11 using namespa...
阅读全文
摘要:昨天的考试跪的一塌糊涂:第一题水过,第二题带WA的朴素,最后题忘了特判左端点全跪,分数比起预计得分整整打了个对折啊!步入正题:线性筛(欧拉筛)一般的筛法(PPT里叫埃拉托斯特尼筛法,名字异常高贵)的效率是O(NlglgN)(其实很接近O(n)啊!),对于一些例如N=10000000的残暴数据会跪,于是,线性筛登场了… 1 #include 2 using namespace std; 3 int prime[1100000],primesize,phi[11000000]; 4 bool isprime[11000000]; 5 void getlist(int listsize) 6 { .
阅读全文
摘要:这种水题真是……没一次AC都不好意思见人啊P.S. LINUX无限栈真是爽炸了… 我爱递归 1 /************************************************************** 2 Problem: 2435 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:5320 ms 7 Memory:93192 kb 8 ***********************************************************...
阅读全文
摘要:裸的点分治自从前两天狂敲了一个广搜点分治之后 敲个点分治如鱼得水啊总觉得自己的写法会被奇怪数据卡到O(n2)幸好IOI数据比较仁慈…调试小结: 1. now、po不分 2. dis、deep不分P.S. IOI的数据格式…不想讲了 1 /************************************************************** 2 Problem: 2599 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6 Time:30648 ms 7 ...
阅读全文
摘要:1 #include 2 #include 3 using namespace std;4 int main(int argc, char *argv[])5 {6 cout<<"Hello,world!"<<endl;7 return 0;8 }
阅读全文

浙公网安备 33010602011771号