小 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...