這一天,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
8103
100487
97288
31053
1000000000
9
example output
yes42
4yes555
535nono
yes111
1111
1noyes311
yes111111110
111111110
111111110
111111110
111111110
111111110
111111110
111111110
111111120
將乙個數分成k個數,我們盡量讓這k個數相等,所有首先用t1=n/k記錄商,t2=n-k*t1記錄餘數,判斷將t2加到t1上去會不會破環原t1奇偶性。
我們知道如果t2是偶數,直接將t2加到乙個t1上去不會破壞奇偶性;當t2為奇數時就要想辦法把t2在不改變t1整體奇偶性的前提下轉化為偶數,如果k為奇數,從每個t1中減一將k加到t2中去這樣就可以在不改變整體奇偶性的前提下讓t2轉化成偶數,若k為偶數則輸出no.
#include
#include
using
namespace std;
int t, n, k;
intmain()
if(t2 &1)
//餘數奇數無解;但要看看能否轉換為偶數
cout << endl;
continue;}
cout <<
"no"
<< endl;
continue;}
else
cout << endl;
continue;}
}system
("pause");
return0;
}
在你們的幫助下,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
637
41221000000000797
1000000000
1000000000
21
example output
10
151999999999
1131000000001
1
這一道題相對簡單不少,和上一題類似,首先找到商值,再找到餘數,最後輸出就可以了
#include
#include
using
namespace std;
int t, n, k;
intmain()
// system("pause");
return0;
}
在大家不辭辛勞的幫助下,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
651
4161
7272830
sample output
4
這裡可以採用動態規劃的思想,用dp[i][j] 表示第i秒時j位置接到的餡餅的總數,每個狀態都是由後一秒的左邊乙個位置,位置不動和右邊乙個位置的最大值加當前狀態的值構成。
則狀態轉換方程為 dp[i][j] += max(dp[i+1][j-1], max(dp[i+1][j], dp[i+1][j+1])) 我們從最後一秒開始往前遍歷,這樣dp[0][5]就是最後的結果。注意如果是邊界,則超出邊界的那個位置不參與判斷。
#include
#include
#include
#include
using namespace std;
int n, x, t, mt, dp[12]
[100010];
intmain()
for(
int j = mt -
1; j >=
0;j--
)for
(int i =
0; i <=
10;i++
)printf
("%d\n"
,dp[5]
[0])
;}// system("pause");
return0;
}
Week13必做部分
題目大意 給定兩個數字,分別表示 n 和 k,並要求給出 k 個奇偶性相同的正整數,使得其和等於 n,例如 n 10,k 3,答案可以為 4 2 4 本題是spj 思路這個題乍一看沒有頭緒,其實仔細想一下 題目只需要奇偶性相同就可以,試想,若乙個數可以分成全是奇數的組合,則一定可以拆分為1 1 1 ...
Week13 作業 必做
a tt 的神秘任務1 這一天,tt 遇到了乙個神秘人。神秘人給了兩個數字,分別表示 n 和 k,並要求 tt 給出 k 個奇偶性相同的正整數,使得其和等於 n。例如 n 10,k 3,答案可以為 4 2 4 tt 覺得這個任務太簡單了,不願意做,你能幫他完成嗎?本題是spj input 第一行乙個...
week13 C TT 的獎勵(必做)
在大家不辭辛勞的幫助下,tt 順利地完成了所有的神秘任務。神秘人很高興,決定給 tt 乙個獎勵,即白日做夢之撿貓咪遊戲。撿貓咪遊戲是這樣的,貓咪從天上往下掉,且只會掉在 0,10 範圍內,具體的座標範圍如下圖所示。tt 初始站在位置五上,且每秒只能在移動不超過一公尺的範圍內接住掉落的貓咪,如果沒有接...