题解:B4397 [蓝桥杯青少年组国赛 2025] 第二题
Prince0618 · · 题解
Hello ,大家好呀!这是我的第一篇全站推荐的题解,希望 dalao 们多多指教 qwq !
题目传送门
题目大意
我先把这张图放这里,方便大家看。
题目里说,顺序为从上到下,从左到右,那我们不妨将白色和红色的点设一下,如下图所示:
题面还说,
从上文可知,
求出来这两个之后,我们可以循环找一下剩下的3个数,最后再两两判断是不是等于
for(int i=1;i<=12;i++){
if(a1!=i&&a2!=i&&a3!=i&&a4!=i&&a5!=i&&a6!=i&&a7!=i&&a8!=i&&r2!=i){
cnt++;//此处的cnt是为了将3个数分开做的计数器
if(cnt==1) t1=i;
if(cnt==2) t2=i;
if(cnt==3) t3=i;
}
}
最后,我们再判断一下,就可以输出了:
if(t1+t2==r3) cout<<t3<<" "<<r2<<" "<<t1<<" "<<t2;
if(t1+t3==r3) cout<<t2<<" "<<r2<<" "<<t1<<" "<<t3;
if(t2+t3==r3) cout<<t1<<" "<<r2<<" "<<t2<<" "<<t1;
所以,我们可以得到一份完整的
#include<bits/stdc++.h>
using namespace std;
int main(){
int s;
cin>>s;
short t1,t2,t3,cnt=0,a1,a2,a3,a4,a5,a6,a7,a8,r2,r3;
cin>>a1>>a2>>a3>>a4>>a5>>a6>>a7>>a8;
r2=s-a1-a2-a4-a8;
r3=s-a6-a7-a8;
for(int i=1;i<=12;i++){
if(a1!=i&&a2!=i&&a3!=i&&a4!=i&&a5!=i&&a6!=i&&a7!=i&&a8!=i&&r2!=i){
cnt++;
if(cnt==1) t1=i;
if(cnt==2) t2=i;
if(cnt==3) t3=i;
}
}
if(t1+t2==r3) cout<<t3<<" "<<r2<<" "<<t1<<" "<<t2;
if(t1+t3==r3) cout<<t2<<" "<<r2<<" "<<t1<<" "<<t3;
if(t2+t3==r3) cout<<t1<<" "<<r2<<" "<<t2<<" "<<t1;
return 0;
}
交上去试一下...怎么只有50
:::::warning[注意]
这个时候,我们要注意一开始没有设的红点。我们的
if(t1+t2==r3&&t1+t3+a1+a3+a5==s) cout<<t3<<" "<<r2<<" "<<t1<<" "<<t2;
else if(t1+t2==r3&&t2+t3+a1+a3+a5==s) cout<<t3<<" "<<r2<<" "<<t2<<" "<<t1;
else if(t1+t3==r3&&t1+t2+a1+a3+a5==s) cout<<t2<<" "<<r2<<" "<<t1<<" "<<t3;
else if(t1+t3==r3&&t3+t2+a1+a3+a5==s) cout<<t2<<" "<<r2<<" "<<t3<<" "<<t1;
else if(t2+t3==r3&&t2+t1+a1+a3+a5==s) cout<<t1<<" "<<r2<<" "<<t2<<" "<<t3;
else if(t2+t3==r3&&t3+t1+a1+a3+a5==s) cout<<t1<<" "<<r2<<" "<<t3<<" "<<t2;
有 亿 一点点肝。
最后,整体的代码就出来了:
#include<bits/stdc++.h>
using namespace std;
int main(){
int s;
cin>>s;
short t1,t2,t3,cnt=0,a1,a2,a3,a4,a5,a6,a7,a8,r2,r3;
cin>>a1>>a2>>a3>>a4>>a5>>a6>>a7>>a8;
r2=s-a1-a2-a4-a8;
r3=s-a6-a7-a8;
for(int i=1;i<=12;i++){
if(a1!=i&&a2!=i&&a3!=i&&a4!=i&&a5!=i&&a6!=i&&a7!=i&&a8!=i&&r2!=i){
cnt++;
if(cnt==1) t1=i;
if(cnt==2) t2=i;
if(cnt==3) t3=i;
}
}
if(t1+t2==r3&&t1+t3+a1+a3+a5==s) cout<<t3<<" "<<r2<<" "<<t1<<" "<<t2;
else if(t1+t2==r3&&t2+t3+a1+a3+a5==s) cout<<t3<<" "<<r2<<" "<<t2<<" "<<t1;
else if(t1+t3==r3&&t1+t2+a1+a3+a5==s) cout<<t2<<" "<<r2<<" "<<t1<<" "<<t3;
else if(t1+t3==r3&&t3+t2+a1+a3+a5==s) cout<<t2<<" "<<r2<<" "<<t3<<" "<<t1;
else if(t2+t3==r3&&t2+t1+a1+a3+a5==s) cout<<t1<<" "<<r2<<" "<<t2<<" "<<t3;
else if(t2+t3==r3&&t3+t1+a1+a3+a5==s) cout<<t1<<" "<<r2<<" "<<t3<<" "<<t2;
return 0;
}
交上去一试,
话说我比赛的时候怎么脑抽了?
好啦,这篇题解就结束啦,这是本蒟蒻第一篇全站推荐的题解,管理员大大求过 qwq ~~