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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[UVALive 3177] Beijing Guards

發(fā)布時間:2024/1/17 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [UVALive 3177] Beijing Guards 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

圖片加載可能有點慢,請?zhí)^題面先看題解,謝謝



Uva的題目還是很好的,比如這道,是一道比較好的思維題,代碼難度不大

首先處理一下偶數(shù)的情況,很簡單,答案是相鄰兩個守衛(wèi)的禮物和的最大值

這兒請 fhr 給出證明:
把物品排成一行,只要一個人從左邊開始取,下一個人從右邊開始取,以此類推,保證不會重復(fù)
fhr 這人平時雖然腦子不太好使,但這個證明還是不錯的。

那么奇數(shù)的情況怎么辦呢,有一種策略是這樣的:
假設(shè)有 \(cnt\) 種物品,第一個人取第 \(1~a[1]\) 個,往后走,編號是偶數(shù)的人從前往后取,奇數(shù)從后往前取,中途必須保證相鄰兩人取的東西不同。
舉個栗子:
就拿樣例的第二組數(shù)據(jù)來說,\(a[]={2,2,2,2,2}\),然后 \(cnt=5\)
在這樣的情況下,每個人取物品的情況分別為 {1,2},{3,4},{5,2},{1,3},{5,4}。

這個東西啊看起來不那么好處理,但是請注意,這道題是不需要輸出方案的,所以我們可以這樣:
\(cnt\) 可以通過二分得到,
\(l[i]\)\(r[i]\),表示第 \(i\) 個人,在 \(1~a[1]\)\(a[1]+1~cnt\) 各取了多少件,顯然 \(l[1]=a[1]\)。
那么這樣,每個人都可以根據(jù)前一個人的 \(l\)\(r\) 值算出自己的 \(l\)\(r\),判一下是否合法就行。

//made by Hero_of_Someone #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #define il inline #define RG register using namespace std; il int gi(){ RG int x=0,q=1; RG char ch=getchar(); while( ( ch<'0' || ch>'9' ) && ch!='-' ) ch=getchar();if( ch=='-' ) q=-1,ch=getchar(); while(ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar(); return q*x; }int n,ans,a[100010]; int l[100010],r[100010];il void init(){ ans=0;for(RG int i=1;i<=n;i++) a[i]=gi();for(RG int i=2;i<=n;i++) ans=max(ans,a[i]+a[i-1]); ans=max(ans,a[1]+a[n]); }il bool ck(int x){ RG int k=x-a[1]; l[1]=a[1];for(RG int i=2;i<=n;i++){if(!(i%2)) l[i]=min(a[i],a[1]-l[i-1]),r[i]=a[i]-l[i];else r[i]=min(a[i],k-r[i-1]),l[i]=a[i]-r[i];if(l[i]+r[i]>x) return 0;if(l[i]<0||r[i]<0) return 0;}if(l[n]>0) return 0;return 1; }il void work(){if(n==1){ printf("%d\n",a[1]); return ; }if(!(n%2)){ printf("%d\n",ans); return ; }RG int l=ans,r=l<<1;while(l<=r){RG int mid=(l+r)>>1;if(ck(mid)) ans=mid,r=mid-1;else l=mid+1;}printf("%d\n",ans); }int main(){ while(scanf("%d",&n)&&n){ init(); work(); } return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/Hero-of-someone/p/7651589.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的[UVALive 3177] Beijing Guards的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 全黄一级男人和女人 | 国产日韩欧美中文字幕 | 国产av一区二区三区 | 美女在线播放 | 成人欧美一区二区三区黑人冫 | 乱人伦中文字幕 | 美女扒开尿口让男人桶 | 激情综合在线 | 日韩欧美大片在线观看 | 在线观看欧美日韩视频 | 女人扒开腿让男人捅爽 | 精品国产免费一区二区三区 | 无码国内精品人妻少妇蜜桃视频 | 茄子视频色 | 永久免费av | 亚洲经典一区二区 | 日本东京热一区二区 | 99热这里只有精品99 | 久色伊人 | 朝桐光av在线一区二区三区 | 日韩三级中文 | 色欲久久久天天天精品综合网 | 色久网| www色婷婷 | 日韩精品播放 | 天天干天天干天天 | 99在线国产 | 日韩一级片网址 | 四虎永久免费 | 成人精品久久久午夜福利 | 在线伊人网 | 18男女无套免费视频 | 久久久久久久亚洲精品 | 国产毛片久久久久久国产毛片 | 亚洲三级视频在线观看 | 你懂的在线免费观看 | 99蜜桃臀久久久欧美精品网站 | 激情网av | 欧美成人精品一区二区三区在线看 | 免费毛片看 | 91麻豆视频在线观看 | www.欧美精品 | 日韩精品二区在线观看 | 最黄一级片 | 999久久| 国产亚洲精品精品精品 | 日韩一区二区三区不卡视频 | 欧美群交射精内射颜射潮喷 | 在线观看色 | 神马三级我不卡 | h在线免费 | 一区二区看片 | 三级性生活视频 | 欧美精品亚洲精品日韩精品 | 久久精工是国产品牌吗 | 521a人成v香蕉网站 | 日韩精品视频在线观看免费 | 中文字幕在线观看第二页 | 九九精品视频在线观看 | 亚洲成人一区在线观看 | 中文字幕一区二区三区精彩视频 | 九九热视频免费观看 | 欧美日韩三级 | 精品国产AV色欲天媒传媒 | 国产精品边吃奶边做爽 | 91美女视频网站 | 久久久久美女 | 饥渴放荡受np公车奶牛 | 国产精品熟女久久久久久 | 日韩影视一区 | 亚洲三级成人 | 最新视频 - x88av | 中文字幕免费在线观看 | 韩国黄色片网站 | 91视频黄色 | 国产伦精品一区二区三区照片 | 亚洲精品色图 | 一本色道久久综合熟妇 | 五月婷婷丁香综合 | 十八禁毛片 | 91黄瓜 | 黄色片免费网站 | 中文字幕3区 | 在线免费观看一区二区三区 | 天堂最新资源在线 | 亚洲精品成| 成人动漫在线播放 | 日韩 欧美 自拍 | 色屁屁网站| 日本少妇中文字幕 | 男生和女生一起差差差很痛的视频 | 四川操bbb| 亚洲大色网 | 三级全黄做爰龚玥菲在线 | 娇妻被肉到高潮流白浆 | 成年黄色网 | 国产精品4区 | 竹菊影视一区二区三区 | 亚洲成人mv |