P9302 [CCC 2023 J4/S1] Trianglane 题解
_GeorgeAAAADHD_ · · 题解
这题很显然,两个相邻的黑色三角形,每个黑色的周长都要减去
那么如何判断相邻?很显然,同行邻列上的黑色三角形相邻,并且奇数列上的黑色三角形也相邻。所以我们可以按照这个思路写代码。
Code:
#include<bits/stdc++.h>
using namespace std;
int c,ans=0;
bool k[2][200001]={0};
int main(){
cin>>c;
for(int i=0;i<=1;i++){
for(int j=1;j<=c;j++){
cin>>k[i][j];
}
}
for(int i=0;i<=1;i++){
for(int j=1;j<=c;j++){
if(k[i][j]){
ans+=3;
if(j%2&&i-1==0&&k[i-1][j])ans--;//判断相邻行
if(j%2&&i+1==1&&k[i+1][j])ans--;
if(j-1>=1&&k[i][j-1])ans--; //判断相邻列
if(j+1<=c&&k[i][j+1])ans--;
}
}
}
cout<<ans;
return 0;
}