zoukankan      html  css  js  c++  java
  • CodeForces 741C Arpa’s overnight party and Mehrdad’s silent entering

    题意:

    有n对情侣坐一桌一起吃饭 一共有1 2两种食物

    要求每对情侣吃的东西不能一样 任意相邻的三个人不能吃相同的东西

    输入任意一种符合题意的方案

    思路:

    首先对每对情侣建边

    然后

    因为任意相邻的三个人不能吃相同的东西

    那么我们对两个相邻的点建边

    即2*i和2*i-1之间建双向边(+1也没事

    建图就这样

    然后对图中每一个环按1 2 1 2 1发食物

    因为2*i和2*i-1是不一样的 也保证了相邻三个也不一样

    最后输出答案

     1 #include<bits/stdc++.h>
     2 #define cl(a,b) memset(a,b,sizeof(a))
     3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl
     4 using namespace std;
     5 typedef long long ll;
     6 typedef long double ldb;
     7 typedef pair<int,int> pii;
     8 
     9 const int maxn=1e5+10;
    10 
    11 int ans[maxn<<1];
    12 bool vis[maxn<<1];
    13 vector<pii>link;
    14 vector<int>edge[maxn<<1];
    15 
    16 void addedge(int u,int v)
    17 {
    18     edge[u].push_back(v);
    19     edge[v].push_back(u);
    20 }
    21 
    22 void solve(int start,int turn)
    23 {
    24     vis[start]=true;
    25     ans[start]=turn;
    26     if(turn==1) turn=2;
    27     else turn=1;
    28     for(auto i:edge[start])
    29     {
    30         if(!vis[i]) solve(i,turn);
    31     }
    32 }
    33 
    34 int main()
    35 {
    36     int n;
    37     scanf("%d",&n);
    38     for(int i=1;i<=n;i++)
    39     {
    40         int x,y;
    41         scanf("%d%d",&x,&y);
    42         addedge(x,y);
    43         addedge(y,x);
    44         link.push_back({x,y});
    45     }
    46     for(int i=1;i<=n;i++)
    47     {
    48         addedge(i*2,i*2+1);
    49         addedge(i*2+1,i*2);
    50     }
    51     for(int i=1;i<=2*n;i++)
    52     {
    53         if(!vis[i]) solve(i,1);
    54     }
    55     for(auto i:link)
    56     {
    57         printf("%d %d
    ",ans[i.first],ans[i.second]);
    58     }
    59     return 0;
    60 }/*
    61 
    62 3
    63 1 4
    64 2 5
    65 3 6
    66 
    67 */
  • 相关阅读:
    HTML5新媒体元素
    概述
    (一)最小可行化应用
    JSON
    ajax的工作原理
    R语言学习笔记(四)
    R语言学习笔记(一)
    转:禅道的数据库结构
    转:bug的分类和等级
    转:如何定义 Bug 的优先级
  • 原文地址:https://www.cnblogs.com/general10/p/7196717.html
Copyright © 2011-2022 走看看