企业网站的模式,协同软件开发,网站建设 类型,用c 建网站时怎么做导航菜单栏其实马拉车还真是最好理解的算法#xff08;感觉初中的时候好像讲过类似的#xff0c;但是当时就没有认真听#xff09; 没想到一个简单的优化能变成O(n)#xff0c;感觉碉堡 不说了#xff0c;马拉车裸题#xff0c;我在写的时候只保留了id#xff0c;没保留mx#xf…其实马拉车还真是最好理解的算法感觉初中的时候好像讲过类似的但是当时就没有认真听 没想到一个简单的优化能变成O(n)感觉碉堡 不说了马拉车裸题我在写的时候只保留了id没保留mx希望能形成一种代码习惯吧 1 #include cstdio2 int n;char ch;3 int p[220002];4 char a[220002];5 int min(int a,int b){return(ab)?a:b;}6 int max(int a,int b){return(ab)?a:b;}7 int get(int k){return (k1)?p[k]/2*2:(p[k]1)/2*2-1;}8 void add(int i)9 {
10 int ui-p[i],vip[i];
11 while((a[u]a[v]) (u0) (vn))
12 u--,v,p[i];
13 }
14 int main()
15 {
16 while((cha || chz)(ch!EOF)) chgetchar();
17 while(ch!EOF)
18 {
19 n1;a[1]0;
20 for(;cha chz;chgetchar())
21 a[n]ch,a[n]0;
22 int id0;
23 for(int i1;in;i)
24 {
25 if(iidp[id])
26 {
27 p[i]min(p[id*2-i],idp[id]-i);
28 if(ip[i]idp[id])
29 add(i);
30 }
31 else
32 p[i]1,add(i);
33 if(ip[i]p[id]id)
34 idi;
35 }
36 int ans0;
37 for(int i1;in;i)
38 ansmax(ans,get(i));
39 printf(%d\n,ans);
40 while((cha || chz)(ch!EOF)) chgetchar();
41 }
42 return 0;
43 } 转载于:https://www.cnblogs.com/wanglichao/p/5798856.html