




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、程序員進階之算法練習(三十八)Codeforces正文AlexandaRhombus題目鏈接題目大意:給出一個整數n,下面給出當n=1、2、3的圖:fl=1計算第n個圖,需要多少個方格組成。輸入:一個整數兇(1W兇W100)輸出:需要的方格數量。Examplesinput1output1input2output5input3output13題目解析:等差數列,1、3、5、2n-1;兩個等差數列,減去一個多余的2n-1,于是有:個等差數列和sum:(1+(2n-1)xn/2最終得到ans=2xsum-(2n-1)=2nA2-2n+1。intn;cinn;cout2*n*n-2*n+1endl;N
2、ickandArray題目鏈接題目大意:有一個數組=兇1,兇2,,可以對任意數進行下面的操作:=一兇兇一1;每個數可以操作任意次;要求最后的乘積(1兇2)最大。輸入:第一行,(1冬兇冬10人5)第二行,n個整數;兇1,兇2,,兇(-10A6WW10A6)輸出:行,使得乘積最大的n個整數(兇1,兇2,兇)Examplesinput42222output-3-3-3-3input10output0題目解析:題目的要求是乘積最大,但是數字有很多,最終的乘積肯定會很大。再來看看題目的操作,其實就是x=-x-1;如果操作兩次呢?X=-(-x-1)-1=x+1-1=x;操作兩次是變回x,那么可以知道對于每
3、個數字只有1個選擇:要么不操作,要么操作一次。回頭來看看乘積最大的要求,先不考慮正負的問題,要使得乘積最大,自然是每個數字越大越好。容易知道,乘積對于負數有一個負負得正的作用,那么要使得乘積最大要滿足兩個條件:1、所有的數字里不會出現單數的負數,否則結果一定是負數;2、每個數字要盡可能的大;分析這個操作x=-x-1,容易知道對于正數,當X操作一次之后,絕對值是+1;對于負數,當X操作一次之后,絕對值是-1;綜上,我們可以先將所有的數字全部變為負數,這樣可以使得絕對值最大。但是因為可能會出現單數的負數,此時我們需要選擇一個負數變為整數,通過推導,我們會選擇負數中絕對值最大的那個變為負數。推導:先
4、假設有兩個正整數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題目鏈接題目大意:有一個數組a,長度為n;現在有一個操作,從數組最前面(a0,a1)拿出兩個數字假設是x,y;如果x=y,則把x放在數組的最前面,把y放在數組的最前面;問這個操作進行若干
5、次之后,拿出來的數字x、y是什么;輸入:第一行,兩個整數兇and兇(2W兇冬10人5,0W兇W310人5),分別表示數組長度和詢問次數;接下來有n個整數,兇1,兇2,兇兇,where兇兇(0W兇兇冬10人9)接下來有q行,每行一個整數兇兇,(1W兇兇W10T8)輸出:對于q個詢問,每個輸出一行,一行有兩個整數x、y;Examplesinput5323451210output122352樣例解釋:原始數組是1,2,3,4,5,在每次操作之前,數字的樣子:(每次操作都是拿出前兩個)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題目解析:題目的樣例已經很明顯闡述了一個規律:若干次之后,數組中最大值會始終占據第一位。根據題目的其他描述,每次拿出來的A、B兩個數字,在數組最大值放置在第一位之后,剩余的1n-1的位置會不斷輪換。為了實現簡單,我們不去記錄他最大值是什么。直接按照題目要求操作n次,記錄其中每次操作的值;此時數組的最大值就會在最左邊,接下來的操作會使得1n-1數組開始循環。對于q次詢問,每次先看詢問值mj是否小于n,是的話可以直接用原來存儲的值;否則就直接取余,再從1n-1找到下一個值。為了實現方便,這里n次的模擬可以使用雙端隊列deque來輔助實現
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東臨清2025年初三畢業班第一次模擬考試化學試題含解析
- 三亞市2025屆四下數學期末經典模擬試題含解析
- 山東省東平縣2024-2025學年中考適應性測試(二)語文試題含解析
- 上海立信會計金融學院《數字視頻基礎》2023-2024學年第一學期期末試卷
- 模電 第25講 非正弦波發生電路學習資料
- 模電 10-直流電源學習資料
- 上海濟光職業技術學院《團體心理輔導與訓練》2023-2024學年第一學期期末試卷
- 武漢商學院《微生物學與免疫學基礎》2023-2024學年第二學期期末試卷
- 工程制圖基礎 04第三章學習資料
- 山東省臨沂沂水縣聯考2024-2025學年初三復習診斷(二)生物試題含解析
- 二年級下冊遞等式計算練習400題及答案
- 高三下學期綜評自我陳述報告
- 國際人權法與非洲人權體系的重要案例研究
- 國有土地使用權的評估與出讓管理
- 2023年標準化工程師考試真題模擬匯編(共402題)
- 中建懸挑卸料平臺專項施工方案
- 中建總工程師的職業基本素養
- 【房地產項目成本控制問題研究文獻綜述2300字】
- 中等職業學校語文課程標準(2020年版)(word精排版)
- 《一般將來時》教學設計
- 小學數學-青島版五四制五年級數學上冊第七單元《比的意義》教學設計學情分析教材分析課后反思
評論
0/150
提交評論