摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751 题意:有n个人,每个人都认识一些人,要求把他们分成两个集合,使得两个集合中的人都相符两两认识。 如果两个人单向认识或者相互不认识,那么必定在不同的集合,因此建立边,染色就可以了。。 1 //STATUS:C++_AC_31MS_388KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #... 阅读全文
posted @ 2013-09-28 11:10 zhsl 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4750 题意:Q个询问t,求在一个无向图上有多少对点(i,j)满足 i 到 j 的所有路径上的最长边的最小值大于等于t。 (i,j)所有路径上的最长边的最小值,容易想到就是 i, j之间的瓶颈路,瓶颈路也就是最小生成树上的边了。注意到每条边的权值都是不相等的,那么MST就是确定的。假设当前MST的边的权值是f[i],Kruskal的并查集中维护一个cnt[i],表示以节点 i 为根的集合的节点个数,那么两个集合x和y合并,点对数就增加cnt[fa[x]]*cnt[fa[y]]*2,sum为点... 阅读全文
posted @ 2013-09-28 11:07 zhsl 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4749 题意:给两个串S和P,求S串中存在多少个与P串的大小关系一样的串。 因为数字的范围是1 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 ... 阅读全文
posted @ 2013-09-28 10:49 zhsl 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4747 题意:求一个数列中,所有mex(L,R)的和。 注意到mex是单调不降的,那么首先预处理出mex(1,j)的值,复杂度O(n),因为mex最大为n。同时预处理出每个数a[i]的右边第一次出现a[i]的位置,用next[i]表示。然后依次从1开始枚举起点 i,则就是求 i 到n的所有mex的和了。i从i+1变化,j>next[i]的mex值都不会变化,因为还是存在a[i]。那么只要考虑i+1到next[i]-1这个区间了,这个区间中,mex第一次大于a[i]的位置k,[k,next[i. 阅读全文
posted @ 2013-09-28 01:06 zhsl 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4742 题意:求3维的LIS。。 用分治算法搞得,参考了cxlove的题解。。 首先按照x排序,然后每个三元组一个编号1-n。接下来只要考虑y和z的值,假设[l,mid]区间已经求好,那么我们对[l,r]区间按照y排序,更新[mid+1,r]区间的最优值时,只要考虑z值了,用树状数组维护z的最长LIS,遇到[mid+1,r]区间的就更新。 1 //STATUS:C++_AC_1750MS_5348KB 2 #include 3 #include 4 #include 5 /... 阅读全文
posted @ 2013-09-28 00:39 zhsl 阅读(609) 评论(1) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:在有重边的无向图中,求权值最小的桥。 注意trick就好了,ans为0时输出1,总要有一个人去丢炸弹吧。。。 1 //STATUS:C++_AC_62MS_8144KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #includ... 阅读全文
posted @ 2013-09-28 00:18 zhsl 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4737 题意:给一个数列a0, a1... , an-1,令f(i, j) = ai|ai+1|ai+2| ... | aj,求数列中有多少对f(i,j)满足f(i,j) 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 #i... 阅读全文
posted @ 2013-09-28 00:12 zhsl 阅读(306) 评论(0) 推荐(0) 编辑