摘要: 题目说给你一个长串,要你选一个最长子串,不包括任何一个给定串为子串。建立一个自动机,每个点保存的信息为当前这个状态为结尾最长可以有多长?然后。。。。就可以了。。。#include #include #include #include #define maxn 1000100#define inf 99999999using namespace std;char s0[maxn];char s[105];int next[100100][26],fail[100100],tag[100100],N;int n,m,f[maxn],ans;int add(){ N++; for (in... 阅读全文
posted @ 2013-11-20 17:29 092000 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题目的意思为要你求出满足三边范围条件且周长为n的三角形的数目。其实做法是直接枚举最短边,然后就可以知道第二条边的取值范围,同时根据给定的范围缩小范围。同时根据第二条边的范围推出第三条边的范围,再次缩小范围。此时范围里面的数就是此时最短边对应的可行数。#include #include #include #define ll long longusing namespace std;ll n,m,k,x[4],y[4],ans;ll Max(ll X,ll Y) { return X>Y?X:Y; }ll Min(ll X,ll Y) { return Xtepy) continue; . 阅读全文
posted @ 2013-11-20 17:11 092000 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 题目想到了就是一个水题。提示一下,S(x,m)是一个很小的数。(不超过100)这样直接枚举这个数,然后求方程的整数解,并且判断是否满足条件即可。——————(一开始还用Pollard大整数分解+dfs的方法做,,深坑啊)#include #include #include #include #define ll long longusing namespace std;ll n,m,k,t,x,ans;ll count(int X){ ll tot=0; while (X) tot+=X%m,X/=m; return tot;}ll Min(ll A1,ll A2) { re... 阅读全文
posted @ 2013-11-20 17:06 092000 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题目是说给你一个替换串和目标串。把一个长串中的所有的替换串替换为目标串而且不递归地替换。很简单,直接做一次KMP然后直接替换。注意替换后跳到替换串的尾部。注意大小写的问题。#include #include #include #define maxn 50550using namespace std;char s0[111],s1[111],s[maxn];int f[111],L;bool tag[maxn];int n,m;bool equal(char c1,char c2){ if (c1==c2) return true; if (c1>c2) swap(c1,c2); ... 阅读全文
posted @ 2013-11-20 17:03 092000 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 水题。直接解二次方程判断点的高度即可。#include #include #include #include #define g 10using namespace std;double vx,vy,s,h,t1,t2,T;int n,t;int main(){ scanf("%d",&t); while (t--) { scanf("%lf%lf%lf%lf",&s,&h,&vx,&vy); if (vy*vy/(2*g)=t1 && T<=t2) puts("good done! 阅读全文
posted @ 2013-11-20 17:00 092000 阅读(204) 评论(0) 推荐(0) 编辑