題目大意:有乙個$n$位的數,設第$i$位為$a_i$(最高位為$a_1$)。問滿足$(\sum\limits_^n(a_i-a_))==k$的數的個數(不含前導零)
題解:發現$(\sum\limits_^n(a_i-a_))==k\leftrightarrow a_n-a_1==k$。然後列舉$a_1$判斷$a_n$是否合法就行了
卡點:模數為$10^9+7$,寫成$10^+7$
c++ code:
#include const long long mod = 1000000007;long long n, k, ans;
long long pw(long long base, long long p)
int main()
printf("%lld\n", ans);
return 0;
}
NC189C 硬幣遊戲
題目大意 有 4n 個硬幣,放在 2n 個位置 即放成兩排 有兩個人,輪流取。第乙個人取上面的,第二個人取下面的,每個人只可以取兩個人都沒取過的位置。若硬幣正面向上,為 1 反面為 0 把取得的硬幣按取得順序排成一列,這個二進位制數大的人贏,為有沒有先手必勝策略。題解 貪心,一定是先取正面向上的,如...
NC14393 點權和(思維)
這種題肯定不會是暴力列舉,多半考慮是貢獻 首先我們要想清楚的是,我每次操作,會對哪些節點產生影響,答案又是從哪些節點更新而來 很顯然我們會從兒子,自身,父親這三個角度去思考問題。所以我們會設計狀態 now表示自身被操作的次數,a,表示被兒子影響的次數,b表示的是被孫子操作的次數,in表示的是兒子個數...
NC19798 區間權值 字首和
列舉w 根據長度的增加,其實相當於變成某一段區間能多加幾次 而到了最高點後又會下降,加的次數會變少,因此維護這個資料即可 includeusing namespace std typedef long long ll typedef pair pll const int n 3e5 10 const...