0
点赞
收藏
分享

微信扫一扫

zcmu 2194: African Crossword

刘员外__ 2022-04-02 阅读 20
c++

题意: 输入n,m,有一个n * m的字符阵,对于每行和每列,删去相同的字符,最后按顺序输出剩下的字符。

#include<bits/stdc++.h>
#define ll long long
#define pre(i,a,b) for(int i=a;i<=b;i++)
#define rep(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int N=100005;
const int maxn=1e6+5; 
int dp1[110][110],dp2[110][110];
char a[110][110];
int main(){
	int n,m;
	cin>>n>>m;
	pre(i,1,n)
	   pre(j,1,m)
	      cin>>a[i][j];//读入数据 
	pre(i,1,n)
	   pre(j,1,m)
	      if(dp1[i][j]!=1)
	         pre(k,j+1,m)
	            if(a[i][j]==a[i][k])
	                dp1[i][j]=dp1[i][k]=1;//标记 
	pre(i,1,m)
	   pre(j,1,n)
	      if(dp2[j][i]!=1)
	         pre(k,j+1,n)
	            if(a[j][i]==a[k][i])
                       dp2[j][i]=dp2[k][i]=1;
	pre(i,1,n)
	   pre(j,1,m)
	      if(dp1[i][j]!=1&&dp2[i][j]!=1)//判断是否删去 
	         cout<<a[i][j];
	return 0;
}

 

举报

相关推荐

0 条评论