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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

codeforces 939C Convenient For Everybody 简直羞耻

發布時間:2023/12/3 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codeforces 939C Convenient For Everybody 简直羞耻 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題解

這是一道大水題,然而我卡了1個半小時都沒做出來,就是因為我搞反了時區的概念,必須掛出來,警示自己!!!
首先明確時區的概念,如果一區為1時的時候,i區的本地時間為i時。
好,那么這道題就很容易了,首先得到可用時間段長度為f-s。
然后我們用固定窗口的方法,固定一個長度為f-s的窗口,框住一段和最大的子序列,記這段子序列開始的位置為beg。
我們假設在beg時區時當地時間為s時,在1區的當地時間為x。我們有公式:
x+(beg?1)=sx+(beg?1)=sx=s?(beg?1)x=s?(beg?1)
值得注意的是,如果x得到的結果<1<1<script type="math/tex" id="MathJax-Element-126"><1</script>還要將x+=nx+=n
由于可能存在多個合理答案,這個題目要求數值最小的!


代碼

#include <iostream> #include <cstdio> using namespace std; const int maxn = 1e6+7; int a[maxn],b[maxn]; int n,s,f; int main(){scanf("%d",&n);for(int i = 1;i <= n;++i) scanf("%d",&a[i]);scanf("%d%d",&s,&f);int ans = n;int inter = f - s;int sum = 0,mx = 0,mark = 1;for(int i = 1;i <= inter;++i) sum += a[i];mx = sum;ans = s;for(int beg = 2;beg <=n;++beg){int end = beg+inter-1;end = end > n?end-n:end;sum -= a[beg-1];sum += a[end];int t = beg-1;if(sum > mx){mx = sum;ans = s-t <= 0?s-t+n:s-t;}else if(sum == mx){ans = min(ans,s-t<=0?s-t+n:s-t);}}printf("%d\n",ans);return 0; }

總結

以上是生活随笔為你收集整理的codeforces 939C Convenient For Everybody 简直羞耻的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。