第16届b组国赛真题--备战蓝桥杯国赛版h
非全对版本今天开始进阶国赛题目发现国赛题目纯靠暴力好难拿分啊~还是得有那种思维才行_第一题0新型锁 - 蓝桥云课这个题目一看就是用暴力dfs枚举但是要枚举太多了个所以肯定超时得不到答案然后题目当中有个条件---lcm(a[i],a[i1])2025又2025 3⁴ × 5²设数 x 3^p × 5^q其中 0≤p≤4, 0≤q≤2。条件 LCM(x, y) 2025 等价于max(p_x, p_y) 4 max(q_x, q_y) 2也就是说有四种状态#includeiostream using namespace std; const int MOD1e97; const int N2025; typedef long long ll; int main() { ll a1,b2,c4,d8; for(int i1;i2024;i) { ll na(abcd)%MOD; ll nb(ac)*2%MOD; ll nc(ab)*4%MOD; ll nda*8%MOD; ana; bnb; cnc; dnd; } ll ans(abcd)%MOD; coutansendl; return 0; }第二题0互质藏卡 - 蓝桥云课题目即从1到17600中选出2025个数任意两个数不能有公共质因子第三题0数字轮盘 - 蓝桥云课找规律的题目#includeiostream using namespace std; #define ll long long int main( ) { ios::sync_with_stdio(0); cin.tie(0); int T,n,k; cinT; while(T--){ cinnk; k k%n; if(k0)cout0endl; else if((n-k)%20) cout(n-k)/2endl; else if((n-kn)%20)cout(n-kn)/2endl; else cout-1\n; } return 0; }第四题0斐波那契字符串 - 蓝桥云课我的做法就是先递归出所有的字符串然后在计算逆序对数量用了后缀和--运行超时~_~只拿到了一分#includeiostream #includealgorithm #includecstring using namespace std; const int N35,MOD1e97; int t; int n; string s[N]; int main() { cint; s[1]0; s[2]1; for(int i3;iN;i) { s[i]s[i-2]s[i-1]; } while(t--) { cinn; string x; xs[n]; //后缀和 long long mx.length(); int b[m2]{0}; for(int im-1;i0;i--) { int yx[i]-0; b[i]b[i1](y0?1:0); } long long cnt0; for(int i0;im-1;i) { if((x[i]-0)1) { cnt(cntb[i])%MOD; } } coutcntendl; } return 0; }正确满血做法在递归的过程当中直接就统计了#includeiostream #includealgorithm #includecstring #includevector using namespace std; const int N100010,MOD1e97; typedef long long ll; ll one[N],zero[N],inv[N]; void init() { one[1]0;zero[1]1;inv[1]0; one[2]1;zero[2]0;inv[2]0; for(int i3;iN;i) { one[i](one[i-2]one[i-1])%MOD; zero[i](zero[i-2]zero[i-1])%MOD; inv[i](inv[i-2]inv[i-1](one[i-2]*zero[i-1])%MOD)%MOD; } } int main() { init(); int t; cint; int n; while(t--) { cinn; coutinv[n]%MODendl; } return 0; }第五题0项链排列 - 蓝桥云课我一开始用的暴力dfs枚举方式解决只通过1个测试点omg国赛果然要求更严格了?_?我的暴力啊再爱我一次吧多给点分吧~#includeiostream #includealgorithm #includecstring using namespace std; const int N2000010; int a,b,c; char path[N]; bool flagfalse; int n; bool check() { int cnt0; for(int i1;in;i) { if(path[i]!path[i1]) { cnt; } } if(cntc)flagtrue; return cntc; } void dfs(int x) { if(xn) { if(check()) { for(int i1;in;i) { coutpath[i]; } exit(0); } return; } //位置放l还是q //放L if(a0) { a--; path[x]L; dfs(x1); a; } if(b0) { b--; path[x]Q; dfs(x1); b; } } int main() { cinabc; nab; dfs(1); if(!flag) { cout-1endl; } return 0; }第六题0蓝桥星数字 - 蓝桥云课4分版直接模拟#includeiostream #includecstring #includealgorithm using namespace std; const int N100010; typedef long long ll; bool check(ll x) { if(x10)return false; int lastx%2; x/10; while(x0) { int curx%2; if(curlast)return false; lastcur; x/10; } return true; } int main() { ll n; cinn; ll cnt0; ll num9; while(cntn) { num; if(check(num)) { cnt; } } coutnumendl; }第七题0翻倍 - 蓝桥云课14分版同样也是直接模拟按照顺序然后依次翻倍直到大于前一个#includeiostream #includealgorithm #includecstring using namespace std; typedef long long ll; const int N200010; int n; ll a[N]; int main() { cinn; for(int i1;in;i) { cina[i]; } ll cnt0; ll cur_mina[1]; for(int i2;in;i) { if(a[i]cur_min) { ll needcur_min; ll vala[i]; int k0; while(valneed) { val*2; k; } cntk; cur_minval; } else { cur_mina[i]; } } coutcntendl; return 0; }第八题0近似回文字符串 - 蓝桥云课暴力dfs只对了一个样例其他都超时了这个题目即长度为 n 的字符串 S满足S 不是回文删掉一个字符后存在一种删法使其变成回文即先构造一个回文字符串在破环它即先构造长度为n-1的回文字符串-》长度为n-1的回文字符串数量为26^⌈(n-1)/2⌉再插入一个字符使其不为回文--》n-1的字符串可以插入n-11个位置每个位置可插入26中的一个--》共26*n种方法然后再减去插入后仍为回文的字符串故回文串数×(总插入−保持回文) 26^⌈(n-1)/2⌉*26*n-n;第九题0子串去重 - 蓝桥云课直接模拟通过了2/3的样例#includeiostream #includecstring #includealgorithm #includecmath using namespace std; const int N100010; string s; int m; int x_1,y_1,x_2,y_2; string s1,s2; int b[26]; int ans0; int main() { cins; cinm; while(m--) { ans0; cinx_1y_1x_2y_2; s1.clear(); memset(b,0,sizeof b); for(int ix_1-1;iy_1-1;i) { if(b[s[i]-a]1)continue; else { s1.push_back(s[i]); b[s[i]-a]; } } s2.clear(); memset(b,0,sizeof b); for(int ix_2-1;iy_2-1;i) { if(b[s[i]-a]1)continue; else { s2.push_back(s[i]); b[s[i]-a]; } } int ks1.length(); int ts2.length(); ansabs(k-t); for(int i0;imin(k,t);i) { if(s1[i]!s2[i])ans; } coutansendl; } return 0; }第十题0涂格子 - 蓝桥云课