




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、程序員進階之算法練習(三十八)Codeforces正文AlexandaRhombus題目鏈接題目大意:給出一個整數(shù)n,下面給出當n=1、2、3的圖:fl=1計算第n個圖,需要多少個方格組成。輸入:一個整數(shù)兇(1W兇W100)輸出:需要的方格數(shù)量。Examplesinput1output1input2output5input3output13題目解析:等差數(shù)列,1、3、5、2n-1;兩個等差數(shù)列,減去一個多余的2n-1,于是有:個等差數(shù)列和sum:(1+(2n-1)xn/2最終得到ans=2xsum-(2n-1)=2nA2-2n+1。intn;cinn;cout2*n*n-2*n+1endl;N
2、ickandArray題目鏈接題目大意:有一個數(shù)組=兇1,兇2,,可以對任意數(shù)進行下面的操作:=一兇兇一1;每個數(shù)可以操作任意次;要求最后的乘積(1兇2)最大。輸入:第一行,(1冬兇冬10人5)第二行,n個整數(shù);兇1,兇2,,兇(-10A6WW10A6)輸出:行,使得乘積最大的n個整數(shù)(兇1,兇2,兇)Examplesinput42222output-3-3-3-3input10output0題目解析:題目的要求是乘積最大,但是數(shù)字有很多,最終的乘積肯定會很大。再來看看題目的操作,其實就是x=-x-1;如果操作兩次呢?X=-(-x-1)-1=x+1-1=x;操作兩次是變回x,那么可以知道對于每
3、個數(shù)字只有1個選擇:要么不操作,要么操作一次?;仡^來看看乘積最大的要求,先不考慮正負的問題,要使得乘積最大,自然是每個數(shù)字越大越好。容易知道,乘積對于負數(shù)有一個負負得正的作用,那么要使得乘積最大要滿足兩個條件:1、所有的數(shù)字里不會出現(xiàn)單數(shù)的負數(shù),否則結果一定是負數(shù);2、每個數(shù)字要盡可能的大;分析這個操作x=-x-1,容易知道對于正數(shù),當X操作一次之后,絕對值是+1;對于負數(shù),當X操作一次之后,絕對值是-1;綜上,我們可以先將所有的數(shù)字全部變?yōu)樨摂?shù),這樣可以使得絕對值最大。但是因為可能會出現(xiàn)單數(shù)的負數(shù),此時我們需要選擇一個負數(shù)變?yōu)檎麛?shù),通過推導,我們會選擇負數(shù)中絕對值最大的那個變?yōu)樨摂?shù)。推導:先
4、假設有兩個正整數(shù)x和y,并且xy。(x-1)y=xy-yx(y-1)=xy-x因為xy,所以有(x-1)yn;intindex=-1;for(inti=0;iai;if(ai=0)ai=-ai-1;if(index=-1)index=i;elseif(aiaindex)index=i;if(n%2)aindex=-aindex-1;for(inti=0;in;+i)coutai;ValeriyaandDeque題目鏈接題目大意:有一個數(shù)組a,長度為n;現(xiàn)在有一個操作,從數(shù)組最前面(a0,a1)拿出兩個數(shù)字假設是x,y;如果x=y,則把x放在數(shù)組的最前面,把y放在數(shù)組的最前面;問這個操作進行若干
5、次之后,拿出來的數(shù)字x、y是什么;輸入:第一行,兩個整數(shù)兇and兇(2W兇冬10人5,0W兇W310人5),分別表示數(shù)組長度和詢問次數(shù);接下來有n個整數(shù),兇1,兇2,兇兇,where兇兇(0W兇兇冬10人9)接下來有q行,每行一個整數(shù)兇兇,(1W兇兇W10T8)輸出:對于q個詢問,每個輸出一行,一行有兩個整數(shù)x、y;Examplesinput5323451210output122352樣例解釋:原始數(shù)組是1,2,3,4,5,在每次操作之前,數(shù)字的樣子:(每次操作都是拿出前兩個)1,2,3,4,52.3.4.5.13.4.5.1.24.5.1.2.35.1.2.3.45.2.3.4.15.3.4
6、.1.25.4.1.2.35.1.2.3.45,2,3,4,1題目解析:題目的樣例已經(jīng)很明顯闡述了一個規(guī)律:若干次之后,數(shù)組中最大值會始終占據(jù)第一位。根據(jù)題目的其他描述,每次拿出來的A、B兩個數(shù)字,在數(shù)組最大值放置在第一位之后,剩余的1n-1的位置會不斷輪換。為了實現(xiàn)簡單,我們不去記錄他最大值是什么。直接按照題目要求操作n次,記錄其中每次操作的值;此時數(shù)組的最大值就會在最左邊,接下來的操作會使得1n-1數(shù)組開始循環(huán)。對于q次詢問,每次先看詢問值mj是否小于n,是的話可以直接用原來存儲的值;否則就直接取余,再從1n-1找到下一個值。為了實現(xiàn)方便,這里n次的模擬可以使用雙端隊列deque來輔助實現(xiàn)
7、。lidn,t;cinnt;dequeq;for(inti=0;ik;q.push_back(k);for(inti=1;ib)q.pushront(a);q.push_back(b);elseq.pushront(b);q.push_back(a);for(inti=0;ik;if(kn)coutansk.firstansk.secondendl;else-k;k=k%(n-1);coutr0rk+1nm;for(inti=0;in;+i)vectort(m);a.push_back(t);“=0;bottomX=n-1,bottomY=m-1;topDir=1;bottomDir=-1;b
8、oolisBottom=0;while(ans.size()n*m)if(isBottom)/jumpbottomans.push_back(make_pair(bottomX,bottomY);bottomY+=bottomDir;if(bottomY=m)bottomY=m-1;bottomX-;bottomDir=-bottomDir;elseans.push_back(make_pair(topX,topY);topY+=topDir;if(topY=m)topY=m-1;topX+;topDir=-topDir;isBottom=!isBottom;for(inti=0;in*m;+i)printf(%d%dn,ansi.first+1,ansi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司聯(lián)歡慰問活動方案
- 公司組織油畫活動方案
- 公司月餅diy活動方案
- 公司組織踏青活動方案
- 公司蘇州兩日游活動方案
- 公司百日安全賽活動方案
- 公司網(wǎng)絡宣傳周活動方案
- 2025年戰(zhàn)略管理與籌資行業(yè)考研試題及答案
- 2025年植物學基礎知識及應用考試卷及答案
- 拓展任務-火災事故的基礎知識
- 智慧醫(yī)院建設項目實施方案
- 項目協(xié)作與溝通過程中的沖突管理試題及答案
- 2025年軌道車司機(中級)職業(yè)技能鑒定參考試題庫(含答案)
- 生物必修1教師用書
- 2024版壓力容器設計審核機考題庫-多選3-3
- 慢性阻塞性肺疾病急性加重期合并II型呼吸衰竭個案護理
- 路由與交換技術試題及答案
- (完整版)保安培訓課件
- 2025屆上海市(春秋考)高考英語考綱詞匯對照表清單
- 《外匯交易基礎知識培訓》詳解課件
- 汽油化學品安全技術說明書MSDS
評論
0/150
提交評論