【链接】:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ
比赛时间:2024-02-05 13:00-18:00
赛制:ACM
前提:这两道是本小白比赛期间打出的,顺带复个盘,剩下的就是补题了o(╥﹏╥)o
A.Tokitsukaze and Bracelet
思路:无脑题,只需要会基础的if else语句即可
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n;cin>>n;
while(n--){
int a,b,c;cin>>a>>b>>c;
int ans=0;
if(a==150) ans++;
else if(a==200) ans+=2;
if(b==45) ans+=2;
else if(b==34||b==36||b==38||b==40) ans++;
if(c==45) ans+=2;
else if(c==34||c==36||c==38||c==40) ans++;
cout<<ans<<'\n';
}
return 0;
}
B.Tokitsukaze and Cats
思路:一只猫在一个方块内,所对应的方块四周都应该有网围着,但要注意是否有多只猫所处位置相连
#include<bits/stdc++.h>
using namespace std;
const int N=300+10;
int a[N][N];
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n,m,k;cin>>n>>m>>k;
while(k--){
int x,y;cin>>x>>y;
a[x][y]=1;
}
int sum=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]==1){
if(a[i-1][j]==0) sum++;
if(a[i+1][j]==0) sum++;
if(a[i][j+1]==0) sum++;
if(a[i][j-1]==0) sum++;
}
if(a[i][j]==1&&a[i][j+1]==1) sum++;
if(a[i][j]==1&&a[i+1][j]==1) sum++;
}
}
cout<<sum;
return 0;
}
复盘:这道题自己一开始的思路理解错了,以为是在它的周围铺东西,且手推样例一时是对的,但到样例二就变得很奇怪,后来仔细看了题目才发现理解错了,然后手推样例思路明确。