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 要...