05 18 習題訓練一

2022-06-09 03:33:10 字數 2631 閱讀 2504

a.phoenix and balance

題意:給一組數2^1,2^2,……,2^n,然後平均分為兩組,使其兩組和的差絕對值最小

思路:因為2^n增長很快,所以用2^n和最前面的數 (2^1,2^2,……)分為一組,剩下的n/2個數為一組,就是結果,並且列舉幾種情況出來的畫,你就會發現式子可以化簡

題解:

1 #include2 #include3

intmain()

14 }

e.nastay and rice

題目:一共五個數n,a,b,c,d,計算(a-b)~(a+b),是否可以通過乘以n和(c-d)~(c+d)有交集

思路:直接進行計算,分情況:1.n*(a+b)在後面區間中;2.n*(a-b)在後面區域中;3.後面區域是前面區域乘完以後的子集

題解:

#include#include

#include

#include

#include

using

namespace

std;

intmain()

else

}}

f.nastay and door

題意:給你n,k,n個山峰值,山峰巔峰值就是這座山峰值比其他的都高,問在k個相連續的山峰中,山峰巔峰值個數是多少,並且這k個連續山峰中最左邊的山峰座標是多少

思路:再用乙個陣列,存入此位置是否是山峰巔峰值,是則為1,不是為1,則再用兩層迴圈進行找巔峰值個數最多,並進行儲存新的最左開始座標

題解:

#include#include

#include

#include

#include

using

namespace

std;

intmain();

scanf(

"%d %d

",&n,&k);

for(int i=0;i)

for(int i=1;i1;i++)

else

}int sum=0,item=0,h=1

;

for(int i=0;i1;i++)

if(item>sum)

}printf(

"%d %d\n

",sum+1

,h);

}}

d.binary period

題意:給出01組成的字串,進行尋找新的陣列,並且已知陣列可以通過對新陣列的某個位置的數進行刪除得到,並且使其是迴圈陣列,迴圈的部分長度最短,總長度不超過2n

思路:單個迴圈的就直接輸出即可,其他就限制在2n內輸出01進行迴圈就可

題解:

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7int

main()else23}

24if(s0==0||s1==0

)28 printf("\n"

);29 }else

35 printf("\n"

);36 }else

40 printf("\n"

);41}42

}43}44 }

c.road to zero

題意:有兩個數x,y,其中乙個數增1或減1的話,需要花費a元,如果兩個數一起減1或加1的話,需要花費b元,詢問xy都變為0時花費的最少錢

思路:直接取最小,分出情況:1.以第一種為主;2.以第二種為主;

題解:

1 #include2 #include3 #include4 #include5

using

namespace

std;

6int

main()

20 sum=min(x*b+(y-x)*a,y*b+(y-x)*a);

21 sum=min(sum,(x+y)*a);

22 printf("

%lld\n

",sum);23}

24 }

b.phoenix and beauty

題意:給出n個數,通過進行增加新的數字(數字必須在1-n之間)使得數列任何連續k個數的和相等

思路:通過set進行儲存已知陣列去重,如果set的長度大於k,則輸出-1即可,沒有滿足條件的陣列,如果set長度小於等於k,在k的範圍內,輸出set所存,不足的數字用1來補齊

題解:

1 #include2 #include3 #include4 #include5 #include

6using

namespace

std;

7int

main()

19if(s.size()>k) cout<<-1

<20else

2131}32

}33}34

return0;

35 }

最近演算法看的太少了,臨近期末了在忙著給之前的網課贖罪,還是盡力計畫著每一件事情,細分真的能夠穩定下來!

訓練3 習題10

題目 problem description 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?input 輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。output 對於每個測試例項,請輸...

訓練3 習題16

題目 problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被...

訓練3 習題7

題目 problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。...