题解(自记录) | 2025西安交通大学编程大赛

A-Card Master

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main(){

int a,b,c;cin >> a >> b >> c;

if(a==b && b==c)cout <<100+a+b+c;

else cout << a+b+c;

}

题解思路:根据题意模拟算出三张牌的总和,并检查三张牌是否两两相等,若相等则额外增加100。

B-Nobody Can Log In

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main(){

int n;cin >> n;

while(n--){

string a,b;cin >> a;

for(int j=0;j<a.size();j++){

if(a[j]=='i'||a[j]=='1'||a[j]=='l'||a[j]=='I')continue;

else b.push_back(a[j]);

}

cout << b ;

if(n!=0)cout << endl;

}

}

题解思路:由题意模拟去掉字符串中含有'i','1','I','l'的字符,然后将处理过后的字符串输出即可

C-Quantum Mechanics

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main(){

int n;cin >> n;vector<double>ans(1ll<<9);

for(int i=0;i<(1ll<<n);i++){

double a,b;

cin >> a >> b;

a=a*a+b*b;

int cnt=0,k=i;

while(k){

if(k&1){ans[cnt]+=a;}

k >>= 1;

cnt++;

}

}

for(int i=0;i<n;i++){

cout << 1-ans[i]<<" "<<ans[i]<<endl;

}

}

题解思路:由题意,存在2n组数据,所以需要读取2n*2个数据,ans记录每位1的概率和,通过二进制算法算出每个数字代表每位1的概率之和,算完后通过1-P可得每位0的概率和,并输出

D-Symmetrical Isolation: The Battle of Black and White

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main(){

string a;

int n,m;cin >> n >> m;int flag1=1,flag2=1;

vector<vector<int>>Map(n+5,vector<int>(m+5,0)),Map1(n+5,vector<int>(m+5,0)),Map2(n+5,vector<int>(m+5,0));

for(int i=1;i<=n;i++){

cin >> a;

a='W'+a;

for(int j=1;j<=m;j++){

if(a[j]=='B')Map[i][j]=1;

else Map[i][j]=0;

}

}

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

{Map1[i][j]=Map[i][j];Map2[i][j]=Map[i][j];}

}

}

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

if(Map[i][j]==1){Map1[n-i+1][j]=1;Map2[i][m-j+1]=1;}

}

}

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

if((Map1[i][j]==1&&Map1[i][j-1]==1)||(Map1[i][j]==1&&Map1[i-1][j]==1)){flag1=0;}

if((Map2[i][j]==1&&Map2[i][j-1]==1)||(Map2[i][j]==1&&Map2[i-1][j]==1)){flag2=0;}

}

}

if(flag1==0&&flag2==0)cout << "No"<<endl;

else cout <<"Yes"<<endl;

}

题解思路:用二维数组记录每个位置的黑白,并分别开两个二维数组记录黑块竖直轴对称和平行轴对称,遍历这两个二维数组,若发生两个黑块相邻的情况则分别令flag1和flag2等于0,若两个都为零则无法满足题意输出No,反之Yes

E-Pythagorean Cup

#include<bits/stdc++.h>

#define ll long long

using namespace std;

int main(){

string a;cin >> a;ll sum=0;

reverse(a.begin(),a.end());

for(int i=0;i<a.size();i++){

if(a[i]=='H'){sum+=i+1;}

}

if(sum%2==0)cout << "Bob"<<endl;

else cout << "Alice"<<endl;

}

题解思路:由题意,当杯子内液体满时自动流完,所以每个杯子的状态仅有半满和空,Alice先手,先将最右端的杯子标记为1,最左端的标记为n,记录每个半满杯子的下标,并将其全部相加,若为奇数则Alice最后倒杯子的液体,获胜,反之则Bob获胜

F-Beat Verdict: Precision Strike

G-Primal Core Optimization: Attribute Balance

H-9-Nine

I-Ori

J-Bastion

K-Seele Vollerei

L-Gros-Phi

M-History of Terra

N-Kessoku Band

O-Discrete Logarithm

全部评论

相关推荐

07-13 16:28
已编辑
蚌埠坦克学院 golang
深夜睡不着写一下社会教给我的第一节课是bj过了很久再想到还是非常的意难平23年过年的时候我奶奶去世给我留了一笔现金,包在红包里,除此之外没有留给我什么了我一直放着这笔钱没有存到银行,只当是个念想同年5&nbsp;6月份&nbsp;那个时候学校丢东西的情况特别频繁,但由于宿舍楼道没有监控,都没有了后续在某天上课的时候,有个室友旷课回到宿舍发现他放在桌上的手表不见了因为那个时候我的钱放在书包里,正好那天书包放在宿舍没背出来,我就非常慌张地跑回宿舍去看,检查后发现还在,松了一口气,然后又把钱放到了行李箱里,觉得会更保险一点,在那之后我也比较放心,觉得再怎么样,放行李箱里也不会丢吧,就没那么关注这个事但似乎是躲不过的宿命,还是出现了意外过了大概半个月,我有个事情要拿银行卡,银行卡是和钱放在同一个地方的,那个时候就发现钱已经不见了由于我那个时候也记不清楚是不是之前忘记把行李箱锁上,而且也真的很久没有动过行李箱,整个事情就变得很难查证我颤抖着手打了那个电话,小时候觉得不管什么事情只要找jc叔叔就一定能得到帮助,即使是在打那个电话之前也侥幸地这样认为接线员简单了解情况之后就通知了两位人民jc到现场,了解初步情况之后带我和另一个室友到了pcs做笔录,但真的很久很久,需要讲述整个事情的经过以及宿舍的方位,室友的情况,各种各样的线索一开始我抱着希望,随着时间慢慢流逝,在那里的三个多小时让我也慢慢变成了失望我问对方,能找回来的几率大吗,他没有回应,只是说会尽力后面已经很晚了,又送我们回来学校,到了宿舍里去拍照取证,采集了我的行李箱上的指纹,又问了几个室友情况我天真的以为达到可以立案的金额,应该会好办一些吧,做了那么多笔录,采集了指纹,应该有用吧,也许他们能理解这笔钱对我的意义吧……只不过最后也是不了了之我并没有表达对他们工作的质疑或不满,我清楚他们已经做的很好了,甚至对待我的态度及帮助也是更加认真的,我知道,他们尽力了我很明白时间的模糊,监控的缺失,以及他们也很忙,这个可能对他们来说并不是大案子,可以分配在这个上面的人力物力很少也许这也是我远在天边的奶奶教给我的刻骨铭心的一课只不过我心里更多的是懊悔与无能为力也希望以后再也不会打那个电话了
社会教会你的第一课
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务