首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

codeforce 357B flag day

2013-10-18 
codeforce 357B flag day.事后过了几下,当时做的时候想的思路就是对的。好像自己时间长点不敲代码信心就有

codeforce 357B flag day.

事后过了几下,当时做的时候想的思路就是对的。

好像自己时间长点不敲代码信心就有点欠缺。

 

题目说每个dancer最多出现两次。

然后就可以第一次出现的三人随便选一个颜色。

而后每三人一组出现的。        其中一人不与另两人重复,并且已经有“颜色”的保持已有颜色不变,满足前面两个条件的任意一种颜色都可。

 

#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <set>using namespace std;//  好机会让偶来做CF 哼!!int flag[100000];int vis[100000];int t[100000][5];int tag[10];void solve(int x, int y){    if(flag[t[x][y]]) return;    else    {        for(int i = 1;i <= 3;i++)        {            int ok = 0;            for(int j = 1;j <= 3;j++)            {                if(y == j) continue;                else                {                    if(i == flag[t[x][j]]) { ok = 1; break;}                }            }            if(!ok)            {                flag[t[x][y]] = i;                  return ;            }        }    }}int main(){    //freopen("in.txt", "r", stdin);    int n, m;    while(scanf("%d %d", &n, &m) != EOF)    {        memset(flag, 0, sizeof(flag));        memset(vis, 0, sizeof(vis));        memset(t, 0, sizeof(t));        for(int i = 1;i <= m;i++)        {            for(int j = 1;j <= 3;j++)            {                scanf("%d", &t[i][j]);            }        }        for(int i = 1;i <= m;i++)        {            for(int j = 1;j <= 3;j++)               solve(i, j);        }        for(int i = 1;i <= n;i++)            printf("%d ",flag[i]);        printf("\n");    }    return 0;}


 

热点排行