标签:
Algorithms one:类似动归的递推。。(还是类似递推的动归^(* ̄(oo) ̄)^算了这不重要)
1 type 2 node=record 3 bl,br,rl,rr,sum:longint; 4 data:char; 5 end; 6 var 7 len,i,j,t,mmax:longint; 8 a:array[0..705]of node; 9 function max(x,y:longint):longint; 10 begin 11 if x>y then exit(x) 12 else exit(y); 13 end; 14 begin 15 readln(len); 16 for i:=1 to len do 17 read(a[i].data); 18 for i:=1 to len do 19 a[i+len].data:=a[i].data; 20 21 for i:=1 to len*2 do 22 case a[i].data of 23 ‘w‘:begin a[i].bl:=a[i-1].bl+1;a[i].rl:=a[i-1].rl+1;end; 24 ‘r‘:a[i].rl:=a[i-1].rl+1; 25 ‘b‘:a[i].bl:=a[i-1].bl+1; 26 end; 27 28 for i:=len*2 downto 1 do 29 case a[i].data of 30 ‘w‘:begin a[i].br:=a[i+1].br+1;a[i].rr:=a[i+1].rr+1;end; 31 ‘r‘:a[i].rr:=a[i+1].rr+1; 32 ‘b‘:a[i].br:=a[i+1].br+1; 33 end; 34 35 for i:=1 to len*2 do 36 begin 37 a[i].sum:=max(a[i-1].bl,a[i-1].rl)+max(a[i].br,a[i].rr); 38 if a[i].sum>len then a[i].sum:=len; 39 if a[i].sum>mmax then 40 mmax:=a[i].sum; 41 end; 42 writeln(mmax); 43 end.//具体什么的见nocow http://www.nocow.cn/index.php/USACO/beads思路一前面
Algorithms two:不贴代码了,上路径~http://www.nocow.cn/index.php/USACO/beads思路一后面
核心思想:{事实上不必使用动态规划,直接搜索亦可达到O(n)。
把两个同样的项链放在一块,从头开始用两个变量(变量)a,b记录自左方某点至目前为止可搜集到之两种颜色珠子数,
取途中所出现a+b之最大值,遇颜色变换时再将b指定给a即可,代码十分简洁。}
好想吐槽写博好耗时间。。。不过据说写博写久了能写成OI大神,还是掏出看《刀剑》的时间写博比较好^(* ̄(oo) ̄)^
标签:
原文地址:http://www.cnblogs.com/MyNameIsPc/p/5401937.html