題目大意
給定兩個數字,分別表示 n 和 k,並要求給出 k 個奇偶性相同的正整數,使得其和等於 n,例如 n = 10,k = 3,答案可以為 [4 2 4]。本題是spj
思路這個題乍一看沒有頭緒,其實仔細想一下:題目只需要奇偶性相同就可以,試想,若乙個數可以分成全是奇數的組合,則一定可以拆分為1+1+1+…+乙個奇數;若全是偶數可以組成,則一定可以拆分為:2+2+2…+乙個偶數。所以只需要判斷這兩種情況就可以了
**
#include
using
namespace std;
intmain()
if(i)
printf
(" ");
printf
("%lld\n"
,s);
}else
if(m%2==
0&& m>0)
if(i)
printf
(" ");
printf
("%lld\n"
,m);
}else
printf
("no\n");
}return0;
}
題目大意
給定兩個數字,分別表示 n 和 k,要求給出無法被 n 整除的第 k 大的正整數。例如 n = 3,k = 7,則前 7 個無法被 n 整除的正整數為 [1 2 4 5 7 8 10],所以第7個為 10。
思路這個題實際要求的是:無法被 n 整除 n的倍數 ,只需要想到,無法被n整除的數,一定分布在:m*n~(m+1)*n之間,其中m大於等於0。所以,我們只需要先計算出k屬於哪個區間內: k/(n-1), 再計算內部的偏移量:k%(n-1)。如果偏移量為0,則說明是上乙個區間的最後乙個數;若不為0,則為本區間的數。
**
#include
using
namespace std;
//無法被 n 整除 n的倍數
long
long n,k;
intmain()
return0;
}
題目大意
貓咪從天上往下掉,且只會掉在 [0, 10] 範圍內,tt 初始站在位置五上,且每秒只能在移動不超過一公尺的範圍內接住掉落的貓咪,如果沒有接住,貓咪就會跑掉。例如,在剛開始的一秒內,tt 只能接到
四、五、六這三個位置其中乙個位置的貓咪。
輸入給出不同時刻,貓咪的掉落位置,輸出tt最大可獲得的貓咪數量。
思路首先,通過輸入,得到不同時刻,每個點掉落的數量,並且獲得掉落持續的總時間。之後,設定狀態為f[k
][t]
f[k][t]
f[k][t
],即當tt在座標為k的位置,時間是第t秒,可以獲得的總數量。轉移方程就是:從t-1時刻的3個位置,向k轉移
f [k
][t]
=max
(f[k
−1][
t−1]
,f[k
][t−
1],f
[k+1
][t−
1])+
g[k]
[t
]f[k][t]=max(f[k-1][t-1],f[k][t-1],f[k+1][t-1])+g[k][t]
f[k][t
]=ma
x(f[
k−1]
[t−1
],f[
k][t
−1],
f[k+
1][t
−1])
+g[k
][t]
g [k
][t]
g[k][t]
g[k][t
]是掉落的數量。
但要注意的是,因為t-1時刻下,k-1,k+1,k 並不是都可以來更新k位置,因為只有tt可能出現位置的左右乙個單位之內,才可以轉移狀態,所以需要額外記錄時刻t,位置k是否有效:val
[k][
t]
val[k][t]
val[k]
[t],因此轉移方程變為:
if((val[k-1]
[t-1
]|val[k]
[t-1])
|val[k+1]
[t-1
]) f[k]
[t]=
max(f[k-1]
[t-1
]*val[k-1]
[t-1],
max(f[k]
[t-1
]*val[k]
[t-1
],f[k+1]
[t-1
]*val[k+1]
[t-1])
)+g[k]
[t];
最後,對t時刻的所有位置取max即可
**
#include
#include
#include
using
namespace std;
int g[15]
[100099];
int f[15]
[100099];
int val[15]
[100099];
//是否有效
intmain()
for(
int t=
1;t<=maxt;t++
)else
if(k==10)
else
if(tag>0)
}}printf
("%d\n"
,ans);}
return0;
}
程式設計Week13 必做部分
這一天,tt 遇到了乙個神秘人。神秘人給了兩個數字,分別表示 n 和 k,並要求 tt 給出 k 個奇偶性相同的正整數,使得其和等於 n。例如 n 10,k 3,答案可以為 4 2 4 tt 覺得這個任務太簡單了,不願意做,你能幫他完成嗎?本題是spj input 第一行乙個整數 t,表示資料組數,...
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 初始站在位置五上,且每秒只能在移動不超過一公尺的範圍內接住掉落的貓咪,如果沒有接...