摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4608 直接暴力枚举,没什么好说的。。。。 1 //STATUS:C++_AC_765MS_740KB 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 ... 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 首先考虑找一条最长链长度k,如果mk+1,那么最长链上还有其他分支,来回走一遍,因此答案为2*m-k-1。。。求最长链可以DP,两次BFS或者DFS等。。 1 //STATUS:C++_AC_453MS_3524KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 ... 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4604 因为deque最后的数列是单调不降的,因此,我们可以枚举数列中的某个中间数Ai,如果从中间数Ai开始,如果后面的要和这个中间数形成单调不降的序列,那么后面的数必须是单调不降或者单调不升的序列,才能进入deque中,因此为两者长度的和,这就是一个LIS的DP。然后枚举的时候从后往前枚举,复杂度O( n*log n)。这里要注意一点,存在相同元素,因此需要减去两个里面出现Ai次数的最小值! 1 //STATUS:C++_AC_281MS_3768KB 2 #include 3 #i... 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4602 把n等效为排成一列的n个点,然后就是取出其中连续的k个点。分两种情况,一种是不包含两端,2^( n−k−2 ) ∗ (n−k−1) ,另一种是包含两端:2 ∗ 2^( n – k − 1)。然后特殊情况特判一下。。 1 //STATUS:C++_AC_31MS_248KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include... 阅读全文
摘要:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2365 我没看懂题目。。。这样理解:一个有向图,要给一些边染色,使得所用的颜色最多,且S到T的任意路径的都包含所有颜色。 或者:给定一个无向图,图中有一个起点S和一个终点T。要求选K个集合S1,S2,…,SK,每个集合都含有图中的一些边,任意两个不同的集合的交集为空。并且从图中任意去掉一个集合,S到T都没有通路。要求K尽量大。 容易想到最短距离就是总共的数量tot,然后在图上求一个层次图,只要点的距离标号i 3 #include 4 #includ... 阅读全文
摘要:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2362 裸的匹配问题,直接KM,就算是O(n^4)的KM也不会超。当然注意到题目中左边的点到右点所连的边的权值是一样的,所以完全可以贪心拍个序,然后找增广路。。。 1 //STATUS:C++_AC_250MS_848KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include... 阅读全文
摘要:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3725 n个点排列,给每个点着色,求其中至少有m个红色的点连续的数目。f[i]表示前i个点至少有m个连续红色的个数,则f[i]=f[i-1]*2+2^(i-m-1)-f[i-m-1]。 1 //STATUS:C++_AC_120MS_1784KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #inclu... 阅读全文
摘要:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3720 题意:在一个矩形区域投掷飞镖,每个整点有磁性,每个点的磁性是一样的,因此飞镖只会落在整点上,投到每个点的得分是:Ax+By。矩形区域里面有个多边形,如果飞镖投在多边形里面则得分,求最终的得分期望。 对于每个点,以它为中心的边长为1的正方形范围内,它都可以把飞镖吸引过来,则最后飞镖能得分的面积就是多边形内以及多边形上所有整点的正方形的面积并,然后期望公式E(X)=p*xi。。 1 //STATUS:C++_AC_900MS_188KB 2 #i... 阅读全文
摘要:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3721 容易的贪心题,排个序。。 1 //STATUS:C++_AC_840MS_6272KB 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 #includ... 阅读全文