TLE了七个点

P1541 [NOIP2010 提高组] 乌龟棋

@[情谊、暴走](/space/show?uid=115923) 您这个$ 40^4 $ 的40是怎么来的
by SkyLiYu @ 2019-05-14 15:51:31


@[情谊、暴走](/space/show?uid=115923) 是$4^{40}$阿老兄
by 万弘 @ 2019-05-14 15:54:20


@[万弘](/space/show?uid=73142) 多谢
by 情谊、暴走 @ 2019-05-15 13:03:15


都是姐妹啊我也暴搜 ~~(逃~~
by zyx10 @ 2019-08-15 15:00:55


### 这道题用动态规划最好做,而不是深搜 本~~蒟蒻~~用的也是动态规划,见代码 ``` #include<bits/stdc++.h> using namespace std; int MLE[41][41][41][41],OLE[5],TLE[1001]; int main() { memset(MLE,0,sizeof(MLE)); memset(OLE,0,sizeof(OLE)); int AC,PC,CE,WA,UKE,RE; cin>>UKE>>RE; for(PC=1;PC<=UKE;PC++)cin>>TLE[PC]; for(PC=1;PC<=RE;PC++) { cin>>CE; OLE[CE]++; } MLE[0][0][0][0]=TLE[1]; for(AC=0;AC<=OLE[1];AC++) for(PC=0;PC<=OLE[2];PC++) for(CE=0;CE<=OLE[3];CE++) for(WA=0;WA<=OLE[4];WA++) { UKE=AC+1+PC*2+CE*3+WA*4; if(AC!=0)MLE[AC][PC][CE][WA]=max(MLE[AC][PC][CE][WA],MLE[AC-1][PC][CE][WA]+TLE[UKE]); if(PC!=0)MLE[AC][PC][CE][WA]=max(MLE[AC][PC][CE][WA],MLE[AC][PC-1][CE][WA]+TLE[UKE]); if(CE!=0)MLE[AC][PC][CE][WA]=max(MLE[AC][PC][CE][WA],MLE[AC][PC][CE-1][WA]+TLE[UKE]); if(WA!=0)MLE[AC][PC][CE][WA]=max(MLE[AC][PC][CE][WA],MLE[AC][PC][CE][WA-1]+TLE[UKE]); } cout<<MLE[OLE[1]][OLE[2]][OLE[3]][OLE[4]]<<endl; return 0; } ```
by ¥¥¥¥¥¥ @ 2019-10-29 20:14:55


|