暴力也是一种算法
发现好多事情自己都无法解决,╮(╯-╰)╭
对问题要不求甚解才对啊,
没必要完全弄懂,优化绝大多数之后,暴力掉也可以
譬如:
Codeforce String Reconstruction http://codeforces.com/contest/828/problem/C
题目T在了样例8,发现 样例子段ti 是重复的 ,对于k次更新,每次更新 ti 的长度的值
假如 ti 的长度1e6,1e6次更新,再加上不同的子段的更新,就会超时,但是,对于每次子段的更新,
加一个pre//最后一个更新的位置
对于每次子段的更新最多1e6,相比之前的,去掉了一个1e6,
暴力跑了280ms,其他做法跑了233ms,差不了多少,重点是过了

# include <bits/stdc++.h> using namespace std; const int maxn=1e7+10; int n,m,d; char s[maxn],a[maxn]; int main(){ while(scanf("%d",&n)!=EOF){ int len=0; fill(a,a+maxn,'A'); for(int i=0;i<n;i++){ scanf("%s%d",s,&m); int l=strlen(s); int pre=-1; for(int j=0;j<m;j++){ scanf("%d",&d); len=max(len,d+l-1); for(int k=max(0,pre-d);k<l;k++){ a[d+k]=s[k]; } pre=max(pre,d+l-1); } } for(int i=1;i<=len;i++){ if(a[i]=='A') printf("a"); else printf("%c",a[i]); } printf("\n"); } }