Week13 作業 必做

2021-10-06 04:55:52 字數 3402 閱讀 4473

a - tt 的神秘任務1

這一天,tt 遇到了乙個神秘人。

神秘人給了兩個數字,分別表示 n 和 k,並要求 tt 給出 k 個奇偶性相同的正整數,使得其和等於 n。

例如 n = 10,k = 3,答案可以為 [4 2 4]。

tt 覺得這個任務太簡單了,不願意做,你能幫他完成嗎?

本題是spj

input

第一行乙個整數 t,表示資料組數,不超過 1000。

之後 t 行,每一行給出兩個正整數,分別表示 n(1 ≤ n ≤ 1e9)、k(1 ≤ k ≤ 100)。

output

如果存在這樣 k 個數字,則第一行輸出 「yes」,第二行輸出 k 個數字。

如果不存在,則輸出 「no」。

example

input

810 3

100 4

8 797 2

8 83 10

5 31000000000 9

output

yes4 2 4

yes55 5 5 35

nono

yes1 1 1 1 1 1 1 1

noyes

3 1 1

yes111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111120

解題思路:

只需要滿足其中一種情況即可。所以讓其中k-1個數為1或者2,根據最後乙個數來判斷是奇數還是偶數。

#include

using

namespace std;

int t,n,k;

intmain()

elseif(

(n-2

*(k-1)

)%2==

0&&(n-2

*(k-1)

)>0)

else

}return0;

}

b - tt 的神秘任務2

在你們的幫助下,tt 輕鬆地完成了上乙個神秘任務。

但是令人沒有想到的是,幾天後,tt 再次遇到了那個神秘人。

而這一次,神秘人決定加大難度,並許諾 tt,如果能夠完成便給他乙個獎勵。

任務依舊只給了兩個數字,分別表示 n 和 k,不過這一次是要求 tt 給出無法被 n 整除的第 k 大的正整數。

例如 n = 3,k = 7,則前 7 個無法被 n 整除的正整數為 [1 2 4 5 7 8 10],答案為 10。

好奇的 tt 想要知道獎勵究竟是什麼,你能幫幫他嗎?

input

第一行乙個整數 t,表示資料組數,不超過 1000。

之後 t 行,每一行給出兩個正整數,分別表示 n(2 ≤ n ≤ 1e9)、k(1 ≤ k ≤ 1e9)。

output

對於每一組資料,輸出無法被 n 整除的第 k 大的正整數。

example

input

63 7

4 12

2 1000000000

7 97

1000000000 1000000000

2 1output

1015

1999999999

1131000000001

1解題思路:

那麼先找到應該減到幾倍數為止,減掉相應的倍數應該是k/(n-1)。然後再計算對應的未去掉數的位置(即滿足題意的數的大小)

#include

using

namespace std;

intmain()

return0;

}

c - tt 的獎勵

在大家不辭辛勞的幫助下,tt 順利地完成了所有的神秘任務。

神秘人很高興,決定給 tt 乙個獎勵,即白日做夢之撿貓咪遊戲。

撿貓咪遊戲是這樣的,貓咪從天上往下掉,且只會掉在 [0, 10] 範圍內,具體的座標範圍如下圖所示。

tt 初始站在位置五上,且每秒只能在移動不超過一公尺的範圍內接住掉落的貓咪,如果沒有接住,貓咪就會跑掉。例如,在剛開始的一秒內,tt 只能接到

四、五、六這三個位置其中乙個位置的貓咪。

喜愛貓咪的 tt 想要接住盡可能多的貓咪,你能幫幫他嗎?

input

多組樣例。每組樣例輸入乙個 m (0 < m < 100000),表示有 m 只貓咪。

在接下來的 m 行中,每行有兩個整數 a b (0 < b < 100000),表示在第 b 秒的時候有乙隻貓咪掉落在 a 點上。

注意,同乙個點上同一秒可能掉落多隻貓咪。m = 0 時輸入結束。

output

輸出乙個整數 x,表示 tt 可能接住的最多的貓咪數。

sample input

65 1

4 16 1

7 27 2

8 30

sample output

4解題思路:

一道dp題,轉移方程

dp二維陣列,第一位表示時間,第二位表示座標。dp[i][j]表示i秒位置j貓咪數

dp[i][j]+=max(dp[i+1][j+1],max(dp[i+1][j],dp[i+1][j-1]))

因為初始位置為5,初始時間為0秒,所以最終輸出dp[0][5]即為答案。

#include

#include

#include

using

namespace std;

int m,a,b,num,dp[

100010][

15];int

main()

for(

int i=num-

1;i>=

0;i--

)for

(int j=

0;j<=

10;j++

) dp[i]

[j]+

=max

(dp[i+1]

[j+1],

max(dp[i+1]

[j],dp[i+1]

[j-1])

);cout<[5

]<}return0;

}

Week13必做部分

題目大意 給定兩個數字,分別表示 n 和 k,並要求給出 k 個奇偶性相同的正整數,使得其和等於 n,例如 n 10,k 3,答案可以為 4 2 4 本題是spj 思路這個題乍一看沒有頭緒,其實仔細想一下 題目只需要奇偶性相同就可以,試想,若乙個數可以分成全是奇數的組合,則一定可以拆分為1 1 1 ...

程式設計Week13 必做部分

這一天,tt 遇到了乙個神秘人。神秘人給了兩個數字,分別表示 n 和 k,並要求 tt 給出 k 個奇偶性相同的正整數,使得其和等於 n。例如 n 10,k 3,答案可以為 4 2 4 tt 覺得這個任務太簡單了,不願意做,你能幫他完成嗎?本題是spj input 第一行乙個整數 t,表示資料組數,...

Week13作業 選做題D

題意 在大家的三連助攻下,tt 一舉獲得了超級多的貓咪,因此決定開一間貓咖,將快樂與大家一同分享。並且在開業的那一天,為了紀念這個日子,tt 在貓咖門口種了一棵蘋果樹。一年後,蘋果熟了,到了該摘蘋果的日子了。已知樹上共有 n 個節點,每個節點對應乙個快樂值為 w i 的蘋果,為了可持續發展,tt 要...