摘要: 题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1989 题意:给出一个字符串,m个操作:1,修改其中一个字符串,2,询问 [a, b] 是不是回文串。数据范围10^5。 如何快速判断字符串是不是回文串,可以用到多项式Hash。假设一个串s,那么字串s[i, j]的Hash值就是H[i, j]=s[i]+s[i+1]*x+s[i+2]*(x^2)+...+s[j]*(x^(i-j))。由于只有小写字母,因此x取27。但是H[i, j]这会很大,我们取模就可了,可以把变量类型设为unsigned long long, 那么自动溢出就相当 阅读全文
posted @ 2013-10-30 00:34 zhsl 阅读(951) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1987 题意:给定n条线段,每两条线段要么满足没有公共部分,要么包含。给出m个询问,求当前点被覆盖的最小长度的线段编号。 由于线段不存在部分相交的情况,因此,直接按照输入顺序覆盖区间就可以了,因为后覆盖的线段更短。 1 //STATUS:C++_AC_187MS_6805KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include ... 阅读全文
posted @ 2013-10-30 00:23 zhsl 阅读(840) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.cnblogs.com/zhsl/p/3395868.html 水题,注意细节。 1 //STATUS:C++_AC_31MS_333KB 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 #include 19 #in... 阅读全文
posted @ 2013-10-30 00:14 zhsl 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1982 题意:无向图,给n个点,n^2条边,每条边有个一权值,其中有k个点有发电站,给出这k个点的编号,选择最小权值的边,求使得剩下的点都能接收到电。 发电站之间显然不能有边,那么把k个点合成一个点,然后在图上就MST就可以了。 1 //STATUS:C++_AC_31MS_401KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #inc... 阅读全文
posted @ 2013-10-30 00:13 zhsl 阅读(704) 评论(0) 推荐(0) 编辑