zoukankan      html  css  js  c++  java
  • 547D Mike and Fish

    传送门

    分析

    见正睿10.3笔记

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<cctype>
    #include<cmath>
    #include<cstdlib>
    #include<ctime>
    #include<queue>
    #include<vector>
    #include<set>
    #include<map>
    #include<stack>
    using namespace std;
    int n,m,col[400200],cnt,Ans[400200];
    multiset<pair<int,int> >v[400200];
    inline void go(int x){
        while(!v[x].empty()){
          pair<int,int> a=*v[x].begin();
          int to=a.first,id=a.second;
          v[x].erase(v[x].find(make_pair(to,id)));
          v[to].erase(v[to].find(make_pair(x,id)));      
          go(to);
          col[++cnt]=id;
        }
    }
    int main(){
        int i,j,k,x,y;
        scanf("%d",&n);
        m=n;
        for(i=1;i<=n;i++){
          scanf("%d%d",&x,&y);
          v[x].insert(make_pair(y+200001,i));
          v[y+200001].insert(make_pair(x,i));
        }
        for(i=1;i<=400002;i++)
          if(v[i].size()%2){
              if(i<200001){
                m++;
                v[i].insert(make_pair(400002,m));
                v[400002].insert(make_pair(i,m));
            }else {
              m++;
                v[i].insert(make_pair(200001,m));
                v[200001].insert(make_pair(i,m));
            }
          }
        for(i=1;i<=400002;i++)go(i);
        for(i=1;i<=cnt;i++)Ans[col[i]]=i%2;
        for(i=1;i<=n;i++){
          if(Ans[i])printf("r");
            else printf("b");
        }
        return 0;
    }
  • 相关阅读:
    计算机算法设计与分析<王晓东编著> 2-5有重复元素的排列问题
    oracle 解除锁表sql
    restful
    正则表达式积累
    序列函数
    目录
    mongo 导入json数据
    mysql关于timestamp类型
    bigdecimal 保留小数位
    输出内容到文件(日志输出)
  • 原文地址:https://www.cnblogs.com/yzxverygood/p/9875574.html
Copyright © 2011-2022 走看看