社区讨论

54pts,WA6,13,24求条

P7338『MdOI R4』Color参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhj0qvh0
此快照首次捕获于
2025/11/03 18:50
4 个月前
此快照最后确认于
2025/11/03 18:50
4 个月前
查看原帖
代码有些猎奇
CPP
#include<bits/stdc++.h>
using namespace std;
int T;
int n;
char a[4][100010];
int num[4][100010];
bool vis[4][100010];
struct node{
	int v;
	pair<int,int>p;
}numm[20];
inline bool cmp(node a,node b){
	return a.v<b.v;
}
signed main(){
	cin>>T;
	while(T--){
		bool f=0;
		cin>>n;
		for(int i=1;i<=n;i++)cin>>a[1][i];
		for(int i=1;i<=n;i++)cin>>a[2][i];
		for(int i=1;i<=2;i++){
			for(int j=1;j<=n;j++){
				vis[i][j]=0;
				num[i][j]=0;
				if(a[i][j]=='0'){
					if(a[i+1][j]=='1')num[i][j]++;
					if(a[i][j+1]=='1')num[i][j]++;
					if(a[i-1][j]=='1')num[i][j]++;
					if(a[i][j-1]=='1')num[i][j]++;
				}
			}
		}
		for(int i=1;i<=2;i++){
			for(int j=1;j<=n;j++){
				if(a[i][j]=='1'){
					numm[0].v=num[i+1][j];
					numm[1].v=num[i-1][j];
					numm[2].v=num[i][j+1];
					numm[3].v=num[i][j-1];
					numm[0].p.first=i+1;
					numm[0].p.second=j;
					numm[1].p.first=i-1;
					numm[1].p.second=j;
					numm[2].p.first=i;
					numm[2].p.second=j+1;
					numm[3].p.first=i;
					numm[3].p.second=j-1;
					
					sort(numm,numm+4,cmp);
					for(int k=0;k<=3;k++){
						if(!vis[numm[k].p.first][numm[k].p.second]&&numm[k].v){
							vis[numm[k].p.first][numm[k].p.second]=1;
							a[i][j]='0';
							break;
						}
					}
				}
				
			}
		}
		for(int i=1;i<=2&&!f;i++){
			for(int j=1;j<=n&&!f;j++){
//				cout<<vis[i][j]<<' ';
				if(a[i][j]=='1'){
					puts("++");
					f=1;
				}
			}
//			puts("");
		}
		if(!f)puts("RP");
	}
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...