Flag Day 题解
题目简意:
有
题目思路:
贪心,可以开布尔数组记录。对于每个队伍,如果一个人已经记录衣服的颜色,就将这个人记录一下。否则就记录为上一个没用过的颜色。
AC 代码:
#include<bits/stdc++.h>//万能头文件
using namespace std;
#define int long long//define 宏定义 int 为 long long
int a[10010][5],b[10010];//千万不能开10005,否则你的第7点会RE
bool c[5];
signed main(){//要把int换成signed,不然会编译错误
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
for(int j=1;j<=3;j++)cin>>a[i][j];
}
for(int i=1;i<=m;i++){
memset(c,false,sizeof(c));//memset初始化定义d数组为false
for(int j=1;j<=3;j++){
c[b[a[i][j]]]=true;//记录
}
for(int k=1;k<=3;k++){
if(!b[a[i][k]]){//给未记录数字分配
for(int l=1;l<=3;l++){
if(!c[l]){
b[a[i][k]]=l;
c[l]=1;
break;//找到后继续下一个
}
}
}
}
}
for(int i=1;i<=n;i++){
cout<<b[i]<<" ";//记得输出空格,这个人忘记写了导致WA
}
return 0;
}