
A 小月的模块签到#include bits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(0); #define endl \n #define pb push_back #define dbg(x) std::cout#x:x #define int long long typedef pairint,int PII; const int N200; int n,k,s; int a[N]; void solve() { cinnks; if(n0)coutk; else couts; } signed main() { IOS int T1;//cinT; while(T--) solve(); return 0; }B 小月的信号一直除以2记录第一个和最后一个1和1的个数#include bits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(0); #define endl \n #define pb push_back #define dbg(x) std::cout#x:x #define int long long typedef pairint,int PII; const int N200; int n,sum,mx,mi; int a[N]; void solve() { cinn; sum0;mxmi-1; int cnt0; while(n){ if(n%2){ if(mi-1)micnt; mxcnt; sum; } n/2; cnt; } coutsum mi mx; } signed main() { IOS int T1;//cinT; while(T--) solve(); return 0; }C 小月的灯带前缀和数组二分查找所在区间#include bits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(0); #define endl \n #define pb push_back #define dbg(x) std::cout#x:x #define int long long typedef pairint,int PII; const int N200100; int n,q,b; int a[N]; void solve() { cinnqb;a[0]0; for(int i1;in;i){ cina[i]; a[i]a[i-1]; } while(q--){ int tp; cintp; int cntlower_bound(a1,an1,tp)-a; if(b){ if(cnt%2)cout1 cnt tp-a[cnt-1]; else cout0 cnt tp-a[cnt-1]; } else{ if(cnt%20)cout1 cnt tp-a[cnt-1]; else cout0 cnt tp-a[cnt-1]; } coutendl; } } signed main() { IOS int T1;//cinT; while(T--) solve(); return 0; }D 小月的校验码存入unordered_map枚举每一种情况通过ump查找#include bits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(0); #define endl \n #define pb push_back #define dbg(x) std::cout#x:x #define int long long typedef pairint,int PII; const int N200100; int n,m; string a[N]; int num[N]; unordered_mapstring,intmp; void solve() { cinnm; memset(num,0,sizeof(num)); int sum0; for(int i1;in;i){ cina[i]; mp[a[i]]i; for(int j1;jm;i){ string tpa[j]; if(tp[j]1)tp[j]0; else tp[j]1; auto it mp.find(tp); if(it ! mp.end()){ sum; num[j]; } } } coutsumendl; for(int i1;im;i){ coutnum[i] ; } } signed main() { IOS int T1;//cinT; while(T--) solve(); return 0; }E 小月的前缀集合通过ump模拟整个过程#include bits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(0); #define endl \n #define pb push_back #define dbg(x) std::cout#x:x #define int long long typedef pairint,int PII; const int N200100; int n,sum; string a[N]; unordered_mapstring,intmp; void in(string s){ int ls.length(); for(int i1;il;i){ string tp s.substr(0,i); auto it mp.find(tp); if(it ! mp.end()){ int tmpit-second; mp[tp]tmp1; }else{ sum; mp[tp]1; } } } void out(string s){ int ls.length(); for(int i1;il;i){ string tp s.substr(0,i); auto it mp.find(tp); if(it ! mp.end()){ int tmpit-second; if(tmp 1){ sum--; mp.erase(it); }else{ mp[tp]tmp-1; } } } } void solve() { cinn; mp.clear(); sum 0; for(int i1;in;i){ char op; cinopa[i]; if(op ) in(a[i]); else out(a[i]); coutsumendl; } } signed main() { IOS int T1; while(T--) solve(); return 0; }F 小月的路径码树上差分、欧拉序、树状数组#include bits/stdc.h using namespace std; #define IOS ios::sync_with_stdio(false),cin.tie(0); #define endl \n #define pb push_back #define dbg(x) std::cout#x:x #define int long long typedef pairint,int PII; const int N200100; const int MOD1e97; int n,q; string s; int szsz[N]; int quan[N]; vectorvectorint graph; int dfn[N]; int rt[N]; int h[N];//深度 int cc1; void Add(int x,int v){ while(xn){ szsz[x]v; xx-x; } } int Pre(int x){ int res0; while(x){ resszsz[x]; xx-1; } return res; } void DFS(int x,int fa){ dfn[x]cc; cc; for(const auto y:graph[x]){ if(y!fa){ h[y]h[x]1; DFS(y,x); } } rt[x]cc; if(s[x]1){ Add(dfn[x],quan[h[x]]); Add(cc,-quan[h[x]]); } } void solve() { cinnqs; s s; graph.resize(n1); //存图 for(int i1;in;i){ int u,v; cinuv; graph[u].push_back(v); graph[v].push_back(u); } //预处理权值 quan[0]1; for(int i1;in;i){ quan[i]quan[i-1]1; if(quan[i]MOD){ quan[i]-MOD; } } DFS(1,0); while(q--){ int u; char op; cinopu; if(opF){ if(s[u]0){ Add(dfn[u],quan[h[u]]); Add(rt[u],-quan[h[u]]); s[u]1; } else{ Add(dfn[u],-quan[h[u]]); Add(rt[u],quan[h[u]]); s[u]0; } continue; } coutPre(dfn[u])%MODendl; } } signed main() { IOS int T1; while(T--) solve(); return 0; }