感觉是很难说的一种题型,小模拟陶冶情操大模拟直接吐属于是(那我写的肯定是陶冶情操那一类
假期一直一直一直一直摸鱼,最后认认真真写了一点儿题解的就两道ez题😭
扫雷游戏
- char型二维数组,要考虑边界情况
- 因为数据范围不大,所以我直接从下标为1开始输入,就可以不用处理边界了
- 一开始的思路是统计每个?周围的*个数,但是真的很麻烦
- 突然想到可以把?换成0,然后把*周围一圈的数组元素全部+1输出
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
char a[150][150];
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]=='?') a[i][j]='0';
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='*'){
if(a[i-1][j-1]!='*') a[i-1][j-1]++;
if(a[i-1][j]!='*') a[i-1][j]++;
if(a[i-1][j+1]!='*') a[i-1][j+1]++;
if(a[i+1][j-1]!='*') a[i+1][j-1]++;
if(a[i+1][j]!='*') a[i+1][j]++;
if(a[i+1][j+1]!='*') a[i+1][j+1]++;
if(a[i][j-1]!='*') a[i][j-1]++;
if(a[i][j+1]!='*') a[i][j+1]++;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j];
}
cout<<"\n";
}
return 0;
}
乒乓球
- 时隔八百年我又回来写了,这个题第一次看就觉得脑袋疼,这种比赛规则题一般都要读好久题(不爱运动怪我
- 一开始就没读懂题,以为是单纯计算”W”和”L”的数量特判输出,结果是忽略了分差高于2才算胜利才能结束,WAWAWA
- scanf用正则学到了,好耶
- 用自定义函数可以缩短代码,我怎么没想到.jpg
代码:
#include <bits/stdc++.h>
using namespace std;
char s[65000];
int main(){
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
scanf("%[^E]",s);
int w=0,l=0;
for(int i=0;s[i]!='\0';i++){
if(s[i]=='W') w++;
else if(s[i]=='L') l++;
if((w>=11||l>=11)&&abs(w-l)>=2){
cout<<w<<":"<<l<<"\n";
l=w=0;
}
}
cout<<w<<":"<<l<<"\n\n";
w=l=0;
for(int i=0;s[i]!='\0';i++){
if(s[i]=='W') w++;
else if(s[i]=='L') l++;
if((w>=21||l>=21)&&abs(w-l)>=2){
cout<<w<<":"<<l<<"\n";
l=w=0;
}
}
cout<<w<<":"<<l<<"\n";
return 0;
}