bzoj3142 Hnoi2013 數列 組合

2022-05-18 09:15:40 字數 869 閱讀 1354

小 t最近在學著買**,他得到內部訊息:f公司的**將會瘋漲。**每天的**已知是正整數,並且由於客觀上的原因,最多只能為n。在瘋漲的k天中小t觀察 到:除第一天外每天的股價都比前一天高,且高出的**(即當天的股價與前一天的股價之差)不會超過m,m為正整數。並且這些引數滿足m(k- 1)只有一行用空格隔開的四個數:n、k、m、p。對p的說明參見後面「輸出格式」中對p的解釋。

輸入保證20%的資料m,n,k,p≤20000,保證100%的資料m,k,p≤109,n≤1018 。

僅包含乙個數,表示這k天的股價的可能種數對於p的模值。【輸入輸出樣例】

7 3 2 997

16【樣例解釋】

輸出樣例的16表示輸入樣例的股價有16種可能:

,,,, ,,,, ,,,,,,,

1 #include2 #include3 #include4 #include5 #include6 #include7

#define ll long long

8using

namespace

std;910

ll m,n,k,p;

1112

ll pow(ll a,ll b)

1321

return

ans;22}

23int

main()

2431 ll x=(n%p*pow(m,k-1))%p,y=((m*(m+1)/2)%p*pow(m,k-2))%p*(k-1)%p;

32 ll ans=x-y;

33 ans=(ans+p)%p;

34 printf("

%lld

",ans);

35 }

bzoj 2326 HNOI2011 數學作業

題目大意 給你n,m,求concatenate 1.n mod m的值 concatenate 1.n 代表把1到n連起來 比如n 13時 concatenate 1.n 就是12345678910111213 n 10 1 m 10 9 這題很水,對於n,將其分開,比如145,就分成1 9,10 ...

BZOJ1010 HNOI2008 玩具裝箱toy

先把程式放著,週末來更新 華麗的分割線 不想寫題解了。照著網上的題解推一邊即可 注意有的題解最後推倒出來明明是求上 下 凸包的形式,但配的圖卻是下 上 凸包的。不過斜率優化還不是搞的很懂。time limit 1 sec memory limit 162 mb submit 6661 solved ...

BZOJ4010 HNOI2005 菜餚製作

分析 這應該比較明顯是個拓撲排序。序號小的要放前面,但是會受到後面很多菜的限制。其實序號小的優先考慮和序號大的最後考慮應該是差不多的。不知道科不科學,求大神指正 把圖中的邊全部反向,拓撲 堆維護剩下的節點中度為0且序號最大的。把得到的序列反向輸出。include include using name...