tj用以对拍

陈柏诚  •  2年前


include <bits/stdc++.h>

using namespace std; bool Map[27][27];

inline bool IsNumber(char c) { return (c>='0' && c<='9'); } int Color[100],n,j=0;

inline bool Try(int k) { for(int i=1; i<=n; i++)

if(Map[k][i] && Color[i]==Color[k] && k!=i)
  return 0;

return 1; }

int main() { char c; scanf("%d",&n); getchar(); int k=1,tmp=0; for(int i=1; i<=n; i++) {

scanf("%d",&tmp);
do
{
  int num=0;
  while(IsNumber(c=getchar()))
    num=num*10+c-'0';
  Map[tmp][num]=1;
}
while(c!='\n');

} while(k<=n) {

Color[k]++;
while((Color[k]<=4) && (!Try(k)))
  Color[k]++;
if(Color[k]>4)
  k--;
else
  Color[++k]=0;

} for(int i=1; i<=n; i++)

printf("%d ",Color[i]);

printf("\n"); return 0; }


评论:

请使用Markdown。(我好像说过很多次了)


ZZQ  •  2年前

刚才那个不是我发的

include <bits/stdc++.h>

using namespace std; bool Map[27][27];

inline bool IsNumber(char c) { return (c>='0' && c<='9'); } int Color[100],n,j=0;

inline bool Try(int k) { for(int i=1; i<=n; i++)

if(Map[k][i] && Color[i]==Color[k] && k!=i)
  return 0;

return 1; }

int main() { char c; scanf("%d",&n); getchar(); int k=1,tmp=0; for(int i=1; i<=n; i++) {

scanf("%d",&tmp);
do
{
  int num=0;
  while(IsNumber(c=getchar()))
    num=num*10+c-'0';
  Map[tmp][num]=1;
}
while(c!='\n');

} while(k<=n) {

Color[k]++;
while((Color[k]<=4) && (!Try(k)))
  Color[k]++;
if(Color[k]>4)
  k--;
else
  Color[++k]=0;

} for(int i=1; i<=n; i++)

printf("%d ",Color[i]);

printf("\n"); return 0; }


陈柏诚  •  2年前