ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

2026第六次萌新赛

2026第六次萌新赛 2026第六次萌新赛C-报数_河南萌新联赛2026第六场郑州大学题目中给了两个公式a11,根据第二个公式可以推出来后面都是1由于输入的正整数很大需要用字符串输入后面都输出1就可以了。#includebits/stdc.h using namespace std; int main(){ string n;; cinn; cout1; return 0; }G-找不同_河南萌新联赛2026第六场郑州大学只要输出一组有序对数就可以了用for循环找出两个不同的字母对数输出他们的下标找出一个就break没有找到就输出-1。#includebits/stdc.h using namespace std; int main(){ int n; cinn; string s; cins; bool ok0; for(int i0;is.size();i){ for(int ji;jn;j){ if(s[i]!s[j]){ ok1; couti j; break; } } if(ok1){ break; } } if(ok0){ cout-1; } return 0; }J-空调_河南萌新联赛2026第六场郑州大学先依次找出到达温度t的次数a到达模式m的次数b他们求和c给的次数n用掉c后还剩的次数d,只要给的次数不够c用那么就是再说谎如果够用并且还剩下偶数次可以通过温度1-1来消耗掉如果是奇数次那看次数还能不能到达最值然后再回来在最值的时候消耗掉次数如果最高点k是奇数并且还能在不超过n的情况下多走一圈的模式那么就是可能其他的情况就是说谎。#includebits/stdc.h using namespace std; #define int long long signed main(){ int t; cint; while(t--){ int l,r,k,n,t,m; cinlrkntm; int aabs(t-26); int bm-1; int cab; int dn-c; if(cn){ coutLieendl; } else if(d%20){ coutMaybeendl; } else if(nr-26r-tm-1||n26-lt-lm-1){ coutMaybeendl; } else if(k%21nck){ coutMaybeendl; } else{ coutLieendl; } } return 0; }D-垂直电梯_河南萌新联赛2026第六场郑州大学电梯换乘求费用总和如果是n的因数或者倍数那么就不用换乘如果不是的话就需要换乘一次电梯就能到达1是所有数字的因数那么就可以换成到1之后再去b,最少要两次电梯a x 0 , b x k s m ( x 1 − x 0 ) m ( x 2 − x 1 ) m ( x 3 − x 2 ) . . . m ( x k − x k − 1 ) s m ∗ k a − b k 表示坐电梯的次数找到最少的次数就能找到最少的换乘费用和 ax_0,bx_k\\sm(x_1-x_0)m(x_2-x_1)m(x_3-x_2)...m(x_k-x_k-1)\\sm*ka-b\\k表示坐电梯的次数找到最少的次数就能找到最少的换乘费用和ax0​,bxk​sm(x1​−x0​)m(x2​−x1​)m(x3​−x2​)...m(xk​−xk​−1)sm∗ka−bk表示坐电梯的次数找到最少的次数就能找到最少的换乘费用和#includebits/stdc.h using namespace std; #define int long long int gcd(int a,int b){ while(b!0){ int ta%b; ab; bt; } return a; } int lcm(int a,int b){ int a1a/gcd(a,b); int b1b*a1; return a/gcd(a,b)*b; } signed main(){ int t; cint; while(t--){ int n,m,a,b; cinnmab; if(lcm(a,b)n||gcd(a,b)1){ coutmb-aendl; continue; } cout2*mb-aendl; } return 0; }最大公因数自定义函数库函数__gcd(a,b)int gcd(int a,int b){ while(b ! 0){ // b不等于0就循环 int t a % b; // 取余数 a b; // b赋值给a b t; // 余数赋值给b } return a; // b为0时a就是最大公因数 }最小公倍数公式l c m ( a , b ) a / g c d ( a , b ) ∗ b lcm(a,b)a/gcd(a,b)*blcm(a,b)a/gcd(a,b)∗bB-果树_河南萌新联赛2026第六场郑州大学数组下标从0开始只摘偶数编号的苹果最多只能反转一次区间只有长度为偶数的个数才能有效反转可以分两类情况偶起点奇终点、奇终点偶起点把他们之间相邻的增加或者减少的数各自放在一个数组里。先求出不反转的所有偶数的和再找到那两类的最大字段和最终答案是原始所有偶数和加上两类字段和的较大值。#includebits/stdc.h using namespace std; #define int long long int a[100005]; signed main(){ int n; cinn; for(int i0;in;i){ cina[i]; } int sum0; for(int i0;in;i2){ sumsuma[i]; } vectorintv; vectorintve; for(int i0;in-1;i2){ int v1a[i1]-a[i]; v.push_back(v1); } for(int i1;in-1;i2){ int v2a[i]-a[i1]; ve.push_back(v2); } int sum10; int ans10; for(int i0;iv.size();i){ sum1max(sum1v[i],v[i]); ans1max(ans1,sum1); } int sum20; int ans20; for(int i0;ive.size();i){ sum2max(sum2ve[i],ve[i]); ans2max(ans2,sum2); } int anssummax(ans1,ans2); coutans; }L-神秘数字_河南萌新联赛2026第六场郑州大学二进制本题需要构造最少数量的数字集合依靠每个数字对于各个集合 “是或否” 的回答得到唯一的 01 序列从而唯一确定神秘数字最少集合数目m为满足2的m次方大于等于n的最小整数利用二进制编码思想将每一个二进制位对应一个集合遍历 1 到 n 所有数字把二进制第 i 位为 1 的数字放入第 i1 个集合每个数字的 m 条回答恰好对应自身二进制编码保证所有数字的回答序列互不相同最后输出集合数量以及每个集合的大小与内部元素。二进制相关代码片段//外层循环遍历每一个二进制位i代表当前处理第i位从0开始的最低位 for(int i0;im;i){ //遍历题目全部真实数字1~n for(int j1;jn;j){ // j i 把数字j的二进制整体向右移动i位让第i位移到二进制最末尾 // 1 取出移位之后最末尾的二进制位结果只能是0或者1 // 如果等于1代表数字j的二进制第i位是1把j加入当前集合v[i1] if((ji)1){ v[i1].push_back(j); } } }j i右移 i 位将数字的第 i 个二进制位移到最右侧方便读取1按位与 1只保留最右侧 1 个 bit用来判断该位是 1 还是 0判断为真就把该数字放进对应集合数字在不在这个集合就等价于该二进制位是 1 还是 0m 个集合对应 m 个二进制位每个数字得到独一无二的 01 回答序列实现区分所有数字。#includebits/stdc.h using namespace std; vectorintv[20]; int main(){ int n; cinn; int m1; while((1m)n){//2的m次方 m; } coutmendl; for(int i0;im;i){ for(int j1;jn;j){ if((ji)1){ v[i1].push_back(j); } } } for(int i1;im;i){ coutv[i].size() ; for(auto x:v[i]){ coutx ; } coutendl; } }I-耳鸣_河南萌新联赛2026第六场郑州大学统计网格中至少被任意一个耳鸣圆形区域覆盖的格子总数圆满足欧几里得距离条件 (dx2dy2 a2)。圆形不是规整矩形不能直接使用二维差分因此采用逐行拆解 一维扁平化差分的方法。遍历圆涉及的每一行对于每个圆心((x,y))圆只会影响行号 ([x-a,xa])同时裁剪到地图合法行范围([1,n])。计算本行覆盖的列区间dx当前行与圆心行的竖直距离根据圆方程变形得到 (dy2a2-dx2)算出本行水平方向最大合法偏移len修正sqrt()带来的浮点精度误差得到准确的len算出本行被圆覆盖的列区间([l,r])裁剪边界保证不超出地图列([1,m])。一维扁平化差分标记区间将二维坐标映射成一维下标对本行区间([l,r])执行一维差分起点pl加 1终点下一位pr_1r1减 1O (1) 完成区间标记。前缀和还原统计答案全部查询处理完毕遍历整个扁平化一维数组累加差分得到每个格子真实被覆盖次数pre统计pre0的格子数量即为至少被一个耳鸣圆覆盖的位置总数输出答案。#includebits/stdc.h using namespace std; int main(){ int n,m,a,q; cinnmaq; vectorintdiff(m*n3,0); for(int i0;iq;i){ int x,y; cinxy; for(int jmax(1,x-a);jmin(n,xa);j){ int dxabs(x-j); int dy2a*a-dx*dx; int len(int)sqrt(dy2); while((len1)*(len1)dy2){ len; } int lmax(1,y-len); int rmin(m,ylen); int pl(j-1)*ml; int pr_1(j-1)*mr1; diff[pl]; diff[pr_1]--; } } int ans0,pre0; for(int i1;in*m;i){ prediff[i]; if(pre0){ ans; } } coutans; }
返回列表