摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628 数据不大,枚举本质。首先对枚举出回文串,然后用DP或者搜索,这里因为层数不多,用bfs比较好,或者用IDA*。。。 1 //STATUS:C++_AC_140MS_780KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include... 阅读全文
posted @ 2013-08-02 21:13 zhsl 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4627 对n除个2,然后考虑下奇偶。。。 1 //STATUS:C++_AC_15MS_228KB 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 17 #include 18 #in... 阅读全文
posted @ 2013-08-02 21:07 zhsl 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4638 个人认为比较不错的题目。 题意:给一个1-n的排列,询问区间[l,r]的数排序后连续区间的个数。 对于这种题目容易想到对询问离线处理,难点是怎样在logn的时间内求出连续区间的个数。先对询问按右端点y从左到右排序,然后从左到右扫描整个数列,现在考虑加一个数num进去,如果我们前面存在num-1或者num+1,那么数列连续区间的个数是没有增加的,可能还会减少。因此我们可以维护一个数组数组或者线段树,对于每加进去的一个数num[i],对 i 点加1,如果 i 点前存在num[i]-1和... 阅读全文
posted @ 2013-08-02 21:04 zhsl 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4635 题意:给一个简单有向图(无重边,无自环),要你加最多的边,使得图还是简单有向图。。。 先判断图是否强连通。如果不是强连通的,那么缩点。我们的目的是加最多的边,那么最后的图中,肯定两个集合,这两个集合都是强联通的,一个集合到一个集合只有单向边。我们先让图是满图,然后通过删边来求的:有n*(n-1)条边,然后删掉已有的边m,然后还有删掉两个集合的边n1*(n-n1),n1为其中一个集合的顶点个数,因为这里是单向边。那么答案就是ans=n*(n-1)-m-n1*(n-n1),我们要使ans... 阅读全文
posted @ 2013-08-02 01:03 zhsl 阅读(331) 评论(2) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4642 看右下角的状态就行了,因为上面的操作每次都会改变它,而最后的局势是根据它来的。。。 1 //STATUS:C++_AC_15MS_218KB 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 #i... 阅读全文
posted @ 2013-08-02 00:50 zhsl 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4639 简单递推题,呵呵,不多说。。。 1 //STATUS:C++_AC_15MS_272KB 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 17 #include 18 #inc... 阅读全文
posted @ 2013-08-02 00:46 zhsl 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 区间DP,f[i][j]表示[i,j]区间回文字串的个数。f[i][j]=f[i+1][j]+f[i][j-1]-f[i+1][j-1]+s[i]==s[j]?f[i-1]+f[j-1]+1:0 。 1 //STATUS:C++_AC_281MS_4188KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #i... 阅读全文
posted @ 2013-08-02 00:44 zhsl 阅读(162) 评论(0) 推荐(0) 编辑