日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TYVJ P1062 合并傻子 Label:环状dp

發(fā)布時間:2023/12/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TYVJ P1062 合并傻子 Label:环状dp 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

從前有一堆傻子,鐘某人要合并他們~
但是,合并傻子是要掉RP的......

描述

在一個園形操場的四周站著N個傻子,現(xiàn)要將傻子有次序地合并成一堆.規(guī)定每次只能選相鄰的2個傻子合并成新的一個傻子,并將新的一個傻子的RP數(shù),記為該次合并的RP數(shù)。
(合并方法與NOI1999石子合并(本題庫的沙子合并)相同,請大家參考上題合并方法)
將N個傻子合并成1個的最小RP數(shù)為RPn和最大RP數(shù)為RPx.
鐘某人要合并他們,鐘某人現(xiàn)在的RP為m,但是他要小心....
if?m>RPx?then?鐘某人能很輕松的合并他們,并說出?‘It?is?easy’
else?if?m<RPn?鐘某人很擔(dān)心,因為他必然由此變成一個沙茶,這時他要說:‘I?am..Sha...X’(以便提升RP)
else???鐘某人仍然擔(dān)心自己可能成為一個沙茶,所以他要金蟬脫殼說:‘I?will?go?to?play?WarIII’

輸入格式

數(shù)據(jù)的第1行試正整數(shù)n和m(1≤N≤100,m在longint范圍之內(nèi))表示有N個傻子.第2行有N個數(shù),分別表示合并每個傻子的所掉的RP數(shù)

輸出格式

輸出文件僅一行包含一個句子表示鐘某人說的話。

測試樣例1

輸入

4 -9999?
4 4 5 9

輸出

I am..Sha...X

備注

傻子+傻子=?

代碼

1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define INF 1<<30 6 using namespace std; 7 long long x,sum[1005],fmax[1005][1005],fmin[1005][1005],N,m; 8 9 int main(){ 10 scanf("%lld%lld",&N,&m); 11 for(int i=1;i<=N;i++){ 12 scanf("%d",&x); 13 sum[i]=sum[i-1]+x; 14 } 15 for(int i=N+1;i<=2*N;i++){ 16 sum[i]=sum[i-N]+sum[N]; 17 } 18 for(int len=1;len<N;len++){ 19 for(int begin=0;begin<=2*N-len;begin++){ 20 int end=begin+len; 21 fmin[begin][end]=INF; 22 fmax[begin][end]=-INF; 23 for(int k=begin;k<end;k++){ 24 fmin[begin][end]=min(fmin[begin][end],fmin[begin][k]
                                  + fmin[k+1][end] + sum[end]
                                 - (begin>0?sum[begin-1]:0)); 25 fmax[begin][end]=max(fmax[begin][end],fmax[begin][k]
                                 + fmax[k+1][end] + sum[end]
                                 - (begin>0?sum[begin-1]:0)); 26 } 27 } 28 } 29 long long rpx=-INF,rpn=INF; 30 for(int i=1;i<=N;i++){ 31 rpx=max(rpx,fmax[i][i+N-1]); 32 rpn=min(rpn,fmin[i][i+N-1]); 33 } 34 if(m>rpx) puts("It is easy"); 35 else if(m<rpn) puts("I am..Sha...X"); 36 else puts("I will go to play WarIII"); 37 38 39 return 0; 40 }

25 26三目運算符一定要加括號,否則有不知名的錯誤

轉(zhuǎn)載于:https://www.cnblogs.com/radiumlrb/p/5806193.html

總結(jié)

以上是生活随笔為你收集整理的TYVJ P1062 合并傻子 Label:环状dp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。