cid=3570#problem/43572
題目大意:
nono從一開始數數,他每數乙個數時會計算這個數中1的個數(如211中有兩個1)並對1的個數進行累和。當1的個數之和不小於x時。nono就要起床了。特別須要注意的是,當nono數數達到10000時,nono就會由於數太久而再次睡著……
如今nono定下了x,他想知道他數到多少就須要起床了(或是他能夠再睡一覺)。
明顯是動態規劃問題,通過遞推預處理能夠比較快的得出。a[i]=a[i-1]+sum一邊不斷的累加到數i時,1的個數,一邊當 i%10==1時,更新a[case]=i,即當x=case時。則須要數數數到多少。
附上**:
#include#include#include#includeusing namespace std;
const int max=100001;
int a[max];
void init()
{ int cas=1;
for(int i=1;i>t)
{while(t--)
{int n;
cin>>n;
if(a[n]<10000)
{cout<
第19屆浙大校賽 G Postman(貪心 模擬)
題面 postman 題解 題意 郵局在x 0的位置上,郵差需要給所有的x ai送信,每次最多攜帶k封信,問送完全部的信至少行走多少距離。思路 最優選擇一定是從最遠到最近k個k個走,區別在於最後一步走正軸還是負軸,這決定了哪個方向的最遠距離只需要加一次。模擬兩種方案比較輸出較小值即可。include...
北師大珠海分校第十六屆IT節網路預選賽題解
題意 有n個千層糕,從每乙個千層糕的 a,b 層中選取一層,把所有層數相加剛好可以被5取模,問這個選取有多少種情況。題解 當我們拿第乙個千層糕的其中一層,那麼我們可以得到餘0 餘1 餘4的所有答案。當我們要拿第二個千層糕的其中一層,假設我們選取的層數模5餘1,那麼它和前面餘0相乘可以獲得餘1的答案,...
UESTC 第12屆 ACM 趣味賽一
略先假設沒有 知道這 n 個人中普通市民的人數一定不少於組織中的人 這個條件,我們考慮為什麼沒有辦法將任何人的身份識別出來。不妨這樣想 每乙個人只有兩種情況,要麼說謊話,要麼說真話,而所有說謊話的人和所有說真話的人給出的答案都會是一樣的。也就是說,我們只可能得到兩種答案,要麼是真實的情況,要麼是真實...