題意:輸入n和k,要求判斷有沒有k個偶數加起來能等於n,或是k個奇數加起來等於n,如果有還要分別輸出這k個數。
思路:看看樣例,理解理解題意,我們很容易想到如果k>n,那麼肯定會是no。只有當k<=n的時候才有可能出現yes。k=n的時候就是輸出一列1了,那麼k減少就是一列1的組合,k=n-1的時候肯定是一群1和乙個2,肯定不對,k=n-2的時候就是一群1和乙個3。如果是奇數就一直到1,但是如果是偶數那麼就到n/2,小於等於n/2的都能被偶數分解,原理同1的時候一樣。
//可別覺得兩個都是偶數時就yes,都是奇數的時候就no,做題還是要有根據,要由推理推出來你的演算法。路走窄了。
題外話:還是這樣的思路題做著舒服,動動腦子,不需要資料結構這一大堆看不懂也搞不明白的東西。糟心。
#include
#include
#include
using
namespace std;
intmain()
else}}
else
if(b>a/
2&&b%2==
1)else
if(b<=a/2)
else}}
}else
else}}
else
if(b%2==
0)}}
}
CODEFORCES 535B 解題報告
仍然是水題,但是還是有可以說的地方。主要思路就是dfs可重排列。4,7組成的幸運數字,在n位數字的構造方式有2 n種,而資料是最多9位,則列舉只有512種,n 2的複雜度足矣。只列舉相應位數的4 7排列,前面的個數用2 n累加。只要遵循先選4再選7即可構造字典順序,然後查詢相應數。以下是 可直接ac...
CodeForces 816B(區間計數)
codeforces 816b 題意 給出n個區間和乙個k值,再給出q次詢問,每次詢問給出乙個區間,要求這個區間中的數在開始的n區間中出現次數不少於k次的數目。解法 將n個區間的每個數每出現一次就加一,最後統計q詢問的區間中不小於k的數的個數。寫這題主要是想講乙個常用的區間更新的方法,其實這題也可以...
Codeforces 965B 題解報告
當k 1時,取第乙個 的座標即可 當k 1時,需要求出每乙個點在上下左右四個方向所能到達的最遠處,記為up,down,left,right,再取上下方向和左右方向的和的最大值,即 max 0,up down k max 0,left right k n,k map int,input split a...