H 小沙的数数
题意:n个格子,所有格子总和为m,要使得所有格子异或和最大,问情况数。
思路: 1. 由于异或不会超过原总和数m,所以分析得每个格子都不会有对应二进制下该位同为1的情况 2. 对于m的每一位1互不影响,都有n种格子放的情况 3. 答案就是 n^x, (x为m的1的位数)
void solve() { int n, m; cin >> n >> m; int x = 0; while(m) { x += 1; m -= lowbit(m); } cout << qmi(n % mod, x) << endl; // n % mod 放进去,不然qmi里*会爆ll }
I 小沙的构造
pass
J 小沙的Dota
pass
K 小沙的步伐
void solve() { string s; cin >> s; int res[10] = {0}; rep(i, 0, s.sz) { if(s[i] == '5') continue; else res[s[i] - '0'] ++; res[5]++; } rep(i, 1, 10) cout << res[i] << ' '; cout << endl; }
L 小沙的remake(普通版)
pass
M 小沙的remake(竞速版)
pass