Problem Description 娜娜费劲九牛二虎之力终于把糖果吃完了(说好的吃不完呢?骗人,口亨~),于是,缘溪行,忘路之远近.忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷,娜娜甚异之.复前行,欲穷其林.林尽水源,便得一山,山有小口,仿佛若有光.便舍船,从口入.初极狭,才通人.复行数十步,豁然开朗.土地平旷,屋舍俨然,有良田美池桑竹之属.阡陌交通,鸡犬相闻.其中往来种作,男女衣着,悉如外人.黄发垂髫,并怡然自乐.(摘自<桃花源记>) 娜娜与村民交流了好久才发现这里的人们给孩子的…
D - 娜娜梦游仙境系列——村民的怪癖 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 娜娜费劲九牛二虎之力终于把糖果吃完了(说好的吃不完呢?骗人,口亨~),于是,缘溪行,忘路之远近.忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷,娜娜甚异之.复前行,欲穷其林.林尽水源,便得一山,山有小口,仿佛若有光.便…
这个题目的数据应该是比较弱的,赛场上的时候我们暴力也过了,而且我的kmp居然比暴力还要慢-- 这个变形并不难,跳着选数,把漏掉的位置补上就可以了. 代码如下: #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define N 1000005 int a[N],b[N],Ne…
题意:给一个无向图,要从起点s运送一批货物到达终点e,每个点代表城镇/乡村,经过城镇需要留下(num+19)/20的货物,而经过乡村只需要1货物即可.现在如果要让p货物到达e,那么从起点出发最少要准备多少货物?输出答案和路径(多条路径则必须输出字典序最小的).注:终点需要花费,而起点不需要. 思路:这最短路变形的不错.要逆推过来求最短路径,那么就从e出发到s的距离!只是p比较大,而且城镇还得推出前一站到底需要多少货物,既然直接计算那么麻烦,也可以一直p++直到能留下p为止就推出来了:而乡村就容易…
题目链接: http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1581 题目意思:告诉你现在有两个钟,现在两个钟上面都有n个指针,告诉你指针的位置,问你将钟表旋转的话能不能使得两个钟表重合 ps:将钟面的圆分成360000份,告诉你的指针的位置代表正北方向到指针的夹角(顺时针) 分析: 对每个钟的指针,按照与正北方向的夹角(顺时针)(因为题目给的就是顺时针)从小到大排序 然后得到相邻指针间的间距,然后根据KMP跑这些间距,如果能够匹配成功的话…
题意: 在一个序列中找到一个连续的子序列,返回其开始位置. 思路: 每个数字当成1个字符,长的序列是原串,短的序列是模式串,求next数组后进行匹配. #include <iostream> #include <cmath> #include <cstdio> using namespace std; ; int a[N]; ]; ]; int n, m; void get_next() { nextt[]=-; , j=-; while(i<m) { || b[…
Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT. 这道题属于数值处理的题目,对于整数处理的问题,比较重要的注意点在于符号和处理越界的问题.对于这道题目,因为不能用乘除法和取余运算,我们只能使用位运算和加减法.比较直接的方法是用被除数一直减去除数,直到为0.这种方法的迭代次数是结果的大小,即比如结果为n,算法复杂度是O(n).…
One day Silence is interested in revolving the digits of a positive integer. In the revolving operation, he can put several last digits to the front of the integer. Of course, he can put all the digits to the front, so he will get the integer itself.…
Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2456    Accepted Submission(s): 929 Problem Description Homer: Marge, I just figured out a way to discover some of the ta…
kmp板子如下, 失配数组不优化的话, $f_i$就表示子串[0...i]前后缀最大匹配长度 int main() { scanf("%s%s", t, p); int n = strlen(t), m = strlen(p); f[0]=f[1]=0; int j = 0; REP(i,1,m-1) { while (j&&p[i]!=p[j]) j=f[j]; if (p[i]==p[j]) ++j; f[i+1] = j; } j = 0; REP(i,0,n-1…