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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数字对 (长乐一中模拟赛day2T2)

發布時間:2025/7/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数字对 (长乐一中模拟赛day2T2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2.數字對

【題目描述】

小H是個善于思考的學生,現在她又在思考一個有關序列的問題。

她的面前浮現出一個長度為n的序列{ai},她想找出一段區間[L, R](1 <= L <= R <= n)。

這個特殊區間滿足,存在一個k(L <= k <= R),并且對于任意的i(L <= i <= R),ai都能被ak整除。這樣的一個特殊區間 [L, R]價值為R - L。

小H想知道序列中所有特殊區間的最大價值是多少,而有多少個這樣的區間呢?這些區間又分別是哪些呢?你能幫助她吧。

?

【輸入格式】

?????? 第一行,一個整數n.

?????? 第二行,n個整數,代表ai.

?

【輸出格式】

?????? 第一行兩個整數,num和val,表示價值最大的特殊區間的個數以及最大價值。

第二行num個整數,按升序輸出每個價值最大的特殊區間的L.

?

【樣例輸入1】

5

4 6 9 3 6

?

【樣例輸出1】

1 3

2

?

【樣例輸入2】

5

2 3 5 7 11

?

【樣例輸出2】

5 0

1 2 3 4 5

?

【數據范圍】

??? 30%: 1 <= n <= 30 , 1 <= ai <= 32.

??? 60%: 1 <= n <= 3000 , 1 <= ai <= 1024.

??? 80%: 1 <= n <= 300000 , 1 <= ai <= 1048576.

?? 100%: 1 <= n <= 500000 , 1 <= ai < 2 ^ 31.

?

思路:

  暴力出奇跡,亂搞壓正解!

  我們暴力枚舉每個ak點

  然后記錄最長的區間

  判一下重

  輕松ac

?

來,上代碼:

#include<vector> #include<cstdio> #include<iostream> #include<algorithm>using namespace std;int n,if_Z,ai[500005],head_num=0;char word;vector<int>ans[500005];inline void read_int(int &now_001) {now_001=0,if_Z=1;word=getchar();while(word<'0'||word>'9'){if(word=='-') if_Z=-1;word=getchar();}while(word<='9'&&word>='0'){now_001=now_001*10+(int)(word-'0');word=getchar();}now_001*=if_Z; }int main() {ios::sync_with_stdio(false);read_int(n);for(int i=1;i<=n;i++) read_int(ai[i]);int lik,rik,cur_1,maxn=0;for(int i=1;i<=n;i++){lik=i,rik=i,cur_1=0;while(lik-1>0){if(ai[lik-1]%ai[i]==0) lik--;else break;}while(rik+1<=n){if(ai[rik+1]%ai[i]==0) rik++;else break;}ans[rik-lik].push_back(lik);maxn=max(maxn,rik-lik);} sort(ans[maxn].begin(),ans[maxn].end());vector<int>::iterator it=ans[maxn].begin();while(it<ans[maxn].end()){if(*it!=ai[head_num]){head_num++;ai[head_num]=*it;}it++;}printf("%d %d\n",head_num,maxn);for(int i=1;i<=head_num;i++) printf("%d ",ai[i]);return 0; }

?

轉載于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6065852.html

總結

以上是生活随笔為你收集整理的数字对 (长乐一中模拟赛day2T2)的全部內容,希望文章能夠幫你解決所遇到的問題。

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