2026.4.11 蓝桥杯软件类C/C++ G组山东省赛 小记

张开发
2026/4/13 19:56:56 15 分钟阅读

分享文章

2026.4.11 蓝桥杯软件类C/C++ G组山东省赛 小记
赛前省赛不在本校打而在隔壁的青岛理工大学打还是很惊喜的第一次发现省赛也能出去玩。赛前做了一下去年的省赛题难度一般比B组简单一些还是比较有信心的。赛时比赛那天早上七点半就起了床还处于朦胧的状态就打车去青岛理工大学。进了考场突然有了很久不曾出现的紧张的感觉或许是太久不碰线下赛了所有人一起敲击键盘的声音让我感受到很大的压力。但在短暂的调整之后我还是适应了节奏。A模拟#includebits/stdc.husingnamespacestd;#defineIOSstd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#defineintlonglongconstintINF1e18;constintN2e610;constintmod1e97;/* 性质1 --------------------------- 性质2 --------------------------- */voidsolve(){cout138966;};signedmain(){IOSintt1;cint;while(t--){solve();}return0;}//freopen(文件名.in,r,stdin);//freopen(文件名.out,w,stdout);签到题答案是138966.B想了一会并不会。赛前VP了25年研究生组省赛真题也是第二个填空不会遂放弃。C动态规划#includebits/stdc.husingnamespacestd;#defineIOSstd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#defineintlonglongconstintINF1e18;constintN2e610;constintmod1e97;/* 性质1 --------------------------- 性质2 --------------------------- */voidsolve(){string s;cins;intns.size();s#s;vectorintdp(n1);for(inti1;in;i){dp[i]max(dp[i],dp[i-1]);if(s[i]6){if(i4)continue;if(s[i-1]2s[i-2]0s[i-3]2){dp[i]max(dp[i],dp[i-4]1);}}if(s[i]2){if(i6)continue;if(s[i-1]0s[i-2]2s[i-3]2s[i-4]0s[i-5]2){dp[i]max(dp[i],dp[i-6]1);}}}coutdp[n];};signedmain(){IOSintt1;// cin t;while(t--){solve();}return0;}//freopen(文件名.in,r,stdin);//freopen(文件名.out,w,stdout);好像贪心就能写完但是我当时没有证明出贪心的正确性所以想了一个动态规划的做法语句的顺序写的有一点小问题大概会挂1 - 2分。D简单计数#includebits/stdc.husingnamespacestd;#defineIOSstd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#defineintlonglongconstintINF1e18;constintN2e610;constintmod1e97;/* 性质1 --------------------------- 性质2 --------------------------- */voidsolve(){intn;cinn;vectorintarr(n1);for(inti1;in;i)cinarr[i];mapint,intcnt;intans0;for(inti1;in;i){intx-arr[i];anscnt[x];x-(arr[i]-1);anscnt[x];cnt[arr[i]];}coutans;};signedmain(){IOSintt1;// cin t;while(t--){solve();}return0;}//freopen(文件名.in,r,stdin);//freopen(文件名.out,w,stdout);记一下数即可也是送分题E差分数组#includebits/stdc.husingnamespacestd;#defineIOSstd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#defineintlonglongconstintINF1e18;constintN2e610;constintmod1e97;/* 性质1 --------------------------- 性质2 --------------------------- */voidsolve(){intn;cinn;vectorintc(n2);for(inti1;in;i){intl,r;cinlr;c[l]1;c[r1]-1;}for(inti1;in;i){c[i]c[i-1];}intans-1;for(intin;i0;i--){if(c[i]i){ansi;break;}}coutans;};signedmain(){IOSintt1;// cin t;while(t--){solve();}return0;}//freopen(文件名.in,r,stdin);//freopen(文件名.out,w,stdout);差分数组模版题注意差分数组不要开小了导致越界即可。F博弈#includebits/stdc.husingnamespacestd;#defineIOSstd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#defineintlonglongconstintINF1e18;constintN2e610;constintmod1e97;/* 性质1 --------------------------- 性质2 --------------------------- */voidsolve(){intn;cinn;vectorintarr(n1);for(inti1;in;i)cinarr[i];//L赢不赢autodfs[](autoself,intx)-bool{if(x0)return0;if(x1)return1;if(arr[x]1){if(arr[x-1]!1){return0;}else{returnself(self,x-2);}}else{return1;}};intwindfs(dfs,n);if(win1){coutL\n;}else{coutQ\n;}};signedmain(){IOSintt1;cint;while(t--){solve();}return0;}//freopen(文件名.in,r,stdin);//freopen(文件名.out,w,stdout);场上打了个表找到了一点规律可以线性的做完。G#includebits/stdc.husingnamespacestd;#defineIOSstd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#defineintlonglongconstintINF1e18;constintN2e610;constintmod1e97;/* 性质1 --------------------------- 性质2 --------------------------- */voidsolve(){intn;cinn;vectorintarr(n1),pre(n1);for(inti1;in;i){cinarr[i];pre[i]pre[i-1]arr[i];}intans0;for(inti1;in-2;i){for(intji1;jn-2;j){for(intkj1;kn-1;k){intsum1abs(pre[i]-pre[0]);intsum2abs(pre[j]-pre[i]);intsum3abs(pre[k]-pre[j]);intsum4abs(pre[n]-pre[k]);ansmax(ans,sum1sum2sum3sum4);}}}coutans;};signedmain(){IOSintt1;// cin t;while(t--){solve();}return0;}//freopen(文件名.in,r,stdin);//freopen(文件名.out,w,stdout);60%还是很好想的想了一会100%完全想不出来摸了暴力就跑路了。H#includebits/stdc.husingnamespacestd;#defineIOSstd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#defineintlonglongconstintINF1e18;constintN2e610;constintmod1e97;/* 性质1 --------------------------- 性质2 --------------------------- */structDSU{vectorintfa,siz;DSU(){}DSU(intn){init(n);}voidinit(intn){fa.resize(n);iota(fa.begin(),fa.end(),0);siz.assign(n,1);}intfind(intx){while(x!fa[x]){xfa[x]fa[fa[x]];}returnx;}boolsame(intx,inty){returnfind(x)find(y);}boolmerge(intx,inty){xfind(x);yfind(y);if(xy){returnfalse;}siz[x]siz[y];fa[y]x;returntrue;}intsize(intx){returnsiz[find(x)];}};voidsolve(){intn,m;cinnm;DSUdsu(n1);for(inti1;im;i){intu,v,w;cinuvw;dsu.merge(u,v);}vectorintans(10);for(inti1;in;i){if(dsu.find(i)i){intcntdsu.siz[i];ans[0]cnt*(cnt-1);}}for(inti0;i10;i){coutans[i]\n;}};signedmain(){IOSintt1;// cin t;while(t--){solve();}return0;}//freopen(文件名.in,r,stdin);//freopen(文件名.out,w,stdout);30%还是很好想的写完30%的时候还剩半小时因为有点急事所以就提前离场了没有走的话或许可以尝试一下50%和70%。赛后去洛谷自测了一下下上面的代码就是根据我赛时的记忆复现的。题号ABCDEFGH总计场上估分501010151512673洛谷自测50910151512672总结一下青岛理工大学真的是超级棒首先就是景色很美呀青岛的四月五颜六色的都开了看着赏心悦目的。其次就是志愿者小哥哥小姐姐们真的很热心也很有耐心。更重要的是这里的机房真的很无敌键盘回弹速度很快一点不输我自己的机械键盘电脑编译运行时间也很快完全不是老年机让我的效率大大提升体验感拉满。然后说一下题目研究生组打的人明显就很少很少研究生组的初赛题目和AB组比起来也是偏简单如果全力发挥能拿到80分左右的分数这在AB组还是很困难的。今年貌似反作弊机制加强了再一次希望杯蒸蒸日上。

更多文章