摘要: **Exercises 1:** All horses are the same color; we can prove this by induction on the number of horses in a given set. Here's how: "If there's just on... 阅读全文
posted @ 2014-12-05 12:57 SDU_Phonism 阅读(179) 评论(0) 推荐(0) 编辑
摘要: | JAVA | C++ || --- | --- || Java is a true and complete object oriented language. | C++ is an extension of C with object oriented b... 阅读全文
posted @ 2014-04-14 17:19 SDU_Phonism 阅读(144) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-05-29 09:58 SDU_Phonism 阅读(2) 评论(0) 推荐(0) 编辑
摘要: A. Point on Spiral傻逼题B. BooksTwo-PointerC. Ladder做法就是标号,详见代码:for (int i = 2; i <= n; i++) { if (a[i] <= a[i - 1]) l[i] = l[i - 1]; else l[i] = i;}for (int i = n - 1; i > 0; i--) { if (a[i] <= a[i + 1]) r[i] = r[i + 1]; else r[i] = i;}然后判断r[left]是否大于l[right]就行了... 阅读全文
posted @ 2013-05-27 17:54 SDU_Phonism 阅读(111) 评论(0) 推荐(0) 编辑
摘要: (嘿嘿,练练LaTex)2012 Multi-University Training Contest 1题目是HDU4300-4309 阅读全文
posted @ 2013-05-18 19:25 SDU_Phonism 阅读(120) 评论(3) 推荐(0) 编辑
摘要: 坑~ 阅读全文
posted @ 2013-04-25 18:25 SDU_Phonism 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 首先说说什么是分块。所谓分块就是将规模为n的问题划分为就是将规模为n问题划分为k块,每块规模为s。那么对块内的操作和整个范围内的操作的复杂度要平均,即令k=s=sqrt(n)通过这个思想可以把O(n)的复杂度降到O(sqrt(n)),达到优化算法的目的。看道例题:BZOJ 1257[CQOI2007]余数之和sum:中文题,题目就是求而可以通过变换得到:转换到这步的时候。注意到对于某些连续的i,[k/i]的值是相同的。我们可以在O(1)的时间求出[k/i]相同的时候i*[k/i]的和。注意一下当i>k的时候k mod i的值是k。所以总的复杂度是O(sqrt(k))。代码君:View C 阅读全文
posted @ 2013-04-22 21:33 SDU_Phonism 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 首先推荐一篇论文:周冬2007年集训队论文:《生成树的计数及其应用》然后写一写我的总结和相关题目吧:相关题目:SPOJ104 Highways(HIGH):题意就是给你n(1<=n<=12)个点,然后告诉你有些点之间可以加边。然后问有多少种加边方案,使得任意俩点之间有且只有一条路径,裸的生成树的计数。由于n很小。dp也行。 也可以直接套用上面的做法。利用Kirchhoff矩阵来求。代码君:View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #inc 阅读全文
posted @ 2013-04-20 15:07 SDU_Phonism 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 首先推荐一个论文:周冬2008年集训队论文《浅析最大最小定理在信息学竞赛中的应用》论文说的很详细,然后再写写我的总结吧。首先先说说什么是平面图,或者说平面图的性质:(欧拉公式)如果一个连通的平面图有n个点,m条边和f个面,那么f = m - n + 2。每个平面图G都有一个与其对偶的平面图G*。G*中的每个点对应G中的一个面对于G中的每条边e,e属于俩个面f1,f2,加入边(f1*, f2*),e只属于一个面,加入回边(f*, f*)然后说说平面图G与其对偶图G*的关系:G的面数等于G*的点数,G*的点数等于G到面数,G与G*边数相等。G*中的环与G中的割一一对应。如下图: s-t平面图... 阅读全文
posted @ 2013-04-19 20:00 SDU_Phonism 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 先来看看2道最小点覆盖的裸题:POJ3041:题意是给出一个N*N的矩阵,有些格子上有障碍,要求每次消除一行或者一列的障碍,最少消除多少次可以全部清除障碍。做法就是把行和列都看做点,然后障碍物(x,y)就可以看作是x点和y点的边。这样问题就转化成选择最少的边(x,y)使得所有的点都被覆盖。在二分图中,最小点覆盖数=最大匹配数。所以可以用匈牙利算法解决。代码君:View Code 1 #include <cstdio> 2 #include <vector> 3 #include <cstring> 4 using namespace std; 5 6 con 阅读全文
posted @ 2013-04-19 18:49 SDU_Phonism 阅读(168) 评论(0) 推荐(0) 编辑