题解 P2548 【[AHOI2004]智能探险车】
省选题?不可置信。秒掉的第二道省选题
这道题看着很懵逼,什么意思啊,实际上,只要比较每一种类型是否全部相同即可,如有不相同就打出*
代码如下,详见注释:
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
#define maxn 1007
int n,m;
bool ans[maxn];
string t[maxn],gg;
inline void Init()//输入及预处理
{
scanf("%d%d",&n,&m);//输入种类和个数
for(register int i=1;i<=n;i++)
{
cin>>gg;
t[i]=gg;
}//先每个存储一份作为比较样本
for(register int i=2;i<=m;i++)
{
for(register int j=1;j<=n;j++)
{
cin>>gg;
if(t[j]!=gg)//如果不一样
ans[j]=1;//答案就为*
}
}
}
inline void Work()
{
for(register int i=1;i<=n;i++)
if(ans[i])//如果应当为*
printf("* ");//就输出*
else
cout<<t[i]<<" ";//不然就输出样本(都一样)
}
int main()//华丽的主函数
{
Init();
Work();
return 0;
}