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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[USACO1.4]等差数列 Arithmetic Progressions

發布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [USACO1.4]等差数列 Arithmetic Progressions 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

題目描述

一個等差數列是一個能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的數列。

在這個問題中a是一個非負的整數,b是正整數。寫一個程序來找出在雙平方數集合(雙平方數集合是所有能表示成p的平方 + q的平方的數的集合,其中p和q為非負整數)S中長度為n的等差數列。

輸入輸出格式

輸入格式:

?

第一行: N(3<= N<=25),要找的等差數列的長度。

第二行: M(1<= M<=250),搜索雙平方數的上界0 <= p,q <= M。

?

輸出格式:

?

如果沒有找到數列,輸出`NONE'。

如果找到了,輸出一行或多行, 每行由二個整數組成:a,b。

這些行應該先按b排序再按a排序。

所求的等差數列將不會多于10,000個。

?

輸入輸出樣例

輸入樣例#1:?
5 7 輸出樣例#1:?
1 4 37 4 2 8 29 8 1 12 5 12 13 12 17 12 5 20 2 24

題目大意

??題目剛開始我也看不懂

? ?后來懂了。。。

? ?其實就是在一個數列里找到長度為n的等差數列

? ?這個數列是(0到m)平方加上 (0到m)平方形成的所有的數

? ?輸出第一個數的數值和公差即可

分析

? ??首先,當然是構建數列啦

? ?然后我們就要找等差數列啦

? ?等差數列從何入手呢?

? ?等差數列顧名思義是有一個公差的

? ?我們只需要枚舉公差就好了

? ?于是我們通過枚舉前兩的在等差數列的數得到公差后

? ?向后查找其他數

? ?最后如果所有數存在就可以算一種了

? ?排序 就可以輸出啦

? ??

? ?還有一個要注意的:

? ?一個很重要的優化點

? ?當數很多,公差很大時

? ?顯然超時

? ?所以我們在查找前要加判斷

? ?當? 第一個數+(n-2)*公差>最大值時 break

? ?因為是有序的,當出現第一個大于最大值時,后面都不行

? ?

代碼

?

??

1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int a[62500000],b[62500000]; 5 struct sb 6 { 7 int shu,cha; 8 }ans[600000]; 9 bool cmp(sb a,sb b) 10 { 11 if (a.cha<b.cha) return true; 12 if (a.cha==b.cha) 13 if (a.shu<b.shu) return true; 14 return false; 15 } 16 int main () 17 { 18 int n,m; 19 cin>>n>>m; 20 int k=1; 21 for (int i=0;i<=m;i++) // 得到數列 22 for (int j=i;j<=m;j++) 23 { 24 a[i*i+j*j]=1; 25 b[k++]=i*i+j*j; 26 } 27 sort(b+1,b+1+k); //排序 28 int wz=unique(b+1,b+1+k)-b; //因為會有重復,所以去重 29 k=1; 30 for (int i=1;i<=wz;i++) 31 { 32 for (int j=i+1;j<=wz;j++) 33 { 34 int ca=b[j]-b[i],bj=0; 35 if (ca<=0) continue; 36 if (b[j]+(n-2)*ca>2*m*m) break; //優化 37 for (int ii=1;ii<=n-2;ii++) 38 { 39 if (a[b[j]+ii*ca]!=1) 40 { 41 bj=1; 42 break; 43 } 44 } 45 if (bj==0) { 46 ans[k].shu=b[i]; 47 ans[k].cha=ca; 48 k++; 49 } 50 } 51 } 52 sort(ans+1,ans+1+k,cmp); //排序輸出 53 if (k<2) cout<<"NONE"; 54 for (int i=2;i<=k;i++) 55 cout<<ans[i].shu<<" "<<ans[i].cha<<endl; 56 }

?

轉載于:https://www.cnblogs.com/zjzjzj/p/10085450.html

總結

以上是生活随笔為你收集整理的[USACO1.4]等差数列 Arithmetic Progressions的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 禁漫天堂免费网站 | 国产成人在线观看 | 伊人久色 | 日本天堂在线 | 一个色av| 日本大尺度做爰呻吟舌吻 | 中出精品 | 成 人 黄 色 片 在线播放 | 欧美 日韩 国产 在线 | 国产成人av在线 | 91av视频在线 | 一区二区三区四区五区在线视频 | 青青青视频在线播放 | 成人首页 | 欧美一级片在线观看 | 黄色国产小视频 | jizz色| 黄网站免费在线观看 | 污污视频在线看 | 日韩中文一区二区三区 | 亚洲网站在线看 | 激情综合色 | 亚州av在线播放 | 求一个黄色网址 | 亚洲天堂男人网 | 国产精品对白刺激久久久 | 欧美性白人极品1819hd | 丰满人妻一区二区三区53 | 日本午夜视频在线观看 | 在线观看黄网址 | 国自产拍偷拍精品啪啪一区二区 | 色啦啦视频 | 可以看的黄色网 | 情侣av| 黄色小网站在线观看 | 国产又粗又猛又黄又爽 | 五月天婷婷丁香花 | 亚洲少妇一区二区 | 欧美成人aaa片一区国产精品 | 伊人中文字幕 | 天天干天天爽 | 免费人成在线观看 | 日韩精品电影 | 精品婷婷| 日韩精品福利视频 | 亚洲天堂自拍 | 国产大片一区二区三区 | 伊人久久狼人 | 999国产精品视频免费 | 久久66热这里只有精品 | 潮喷失禁大喷水无码 | 亚洲欧美另类激情 | 九色porn蝌蚪 | 实拍女处破www免费看 | 色免费看| 亚洲天堂区 | 快播色图 | 一区二区三区四区五区在线视频 | 亚洲一区网 | 久久精品tv | 亚洲人成网站999久久久综合 | 日本一二三区在线 | 国内精品小视频 | 天天影视亚洲 | 人妻无码一区二区三区四区 | 黄频在线免费观看 | 欧美成人aaa | 在线播放视频高清在线观看 | 直接看的av网站 | 精品久久香蕉国产线看观看亚洲 | 91色视频 | 久草操| 精品欧美一区二区精品少妇 | 国产精品无码av在线播放 | 亚洲特级毛片 | 成人一级片在线观看 | 一个人在线观看免费视频www | 国产精品久久在线 | 免费观看黄色 | 日韩高清中文字幕 | 成年人看的黄色 | 国产91片| 一区二区三区四区高清视频 | 成人激情社区 | www.男人的天堂.com | 欧美视频直播网站 | 第四色男人天堂 | 亚洲一区免费看 | 一区二区三区 欧美 | 超碰婷婷 | www成年人| 妞干网这里只有精品 | 超碰免费成人 | 自拍视频在线播放 | 一级片啪啪| 精品国产乱码久久久久久蜜臀网站 | 97超碰导航 | 岛国av一区二区 | www黄色com |