给个题目链接:

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1714

显然每个人只有两种选择:C或者A/B。而且后一种只和这个人的年龄有关。

这就是一个很显然的2-SAT模型了,显然有矛盾的不能都选C,如果两个人的年龄段还一样,那就更悲剧了,也不能同时选A/B。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<vector>
#include<cstring>
#define pb push_back
#define ll long long
#define maxn 200005
#define M(x) memset(x,0,sizeof(x))
using namespace std;
int n,m;
struct TOW_SAT{
vector<int> g[maxn];
int tp[maxn],age[maxn];
int tot,node[maxn],num;
bool mark[maxn<<1|1]; inline void init(){
for(int i=(n<<1)-1;i>=0;i--) g[i].clear();
M(tp),M(age);
M(mark);
tot=num=0;
} inline void add(int x,int y){
int Cx=x<<1,Ax=Cx+1;
int Cy=y<<1,Ay=Cy+1; g[Cx].pb(Ay),g[Cy].pb(Ax);
if(tp[x]==tp[y]){
g[Ax].pb(Cy);
g[Ay].pb(Cx);
}
} bool dfs(int x){
if(mark[x^1]) return 0;
if(mark[x]) return 1;
mark[x]=1,node[++num]=x; for(int i=g[x].size()-1;i>=0;i--)
if(!(dfs(g[x][i]))) return 0; return 1;
} inline bool work(){
int cl=n<<1;
for(int i=0;i<cl;i+=2) if(!mark[i]&&!mark[i+1]){
num=0;
if(!dfs(i)){
while(num) mark[node[num--]]=0;
if(!dfs(i+1)) return 0;
}
} return 1;
} inline void solve(){
init();
for(int i=0;i<n;i++){
scanf("%d",age+i);
tot+=age[i];
} for(int i=0;i<n;i++) if(age[i]*n>=tot) tp[i]=1; int uu,vv;
for(int i=1;i<=m;i++){
scanf("%d%d",&uu,&vv);
uu--,vv--,add(uu,vv);
} if(!work()) puts("No solution");
else{
for(int i=0;i<n;i++){
if(mark[i<<1]) puts("C");
else if(tp[i]) puts("A");
else puts("B");
}
}
}
}mine; int main(){
while(scanf("%d%d",&n,&m)==2&&n&&m) mine.solve();
return 0;
}

  

LA 3713 Astronauts的更多相关文章

  1. UVALive - 3713 - Astronauts(图论——2-SAT)

    Problem   UVALive - 3713 - Astronauts Time Limit: 3000 mSec Problem Description Input The input cont ...

  2. LA 3713

    The Bandulu Space Agency (BSA) has plans for the following three space missions: Mission A: Landing ...

  3. UVA 3713 Astronauts

    The Bandulu Space Agency (BSA) has plans for the following three space missions: • Mission A: Landin ...

  4. LA 3713 宇航员分组

    题目链接:http://vjudge.net/contest/142615#problem/B 题意:有A,B,C三个人物要分配个N个宇航员,每个宇航员恰好要分配一个任务,设平均年龄为X,只有年龄大于 ...

  5. UVALive 3713 Astronauts (2-SAT,变形)

    题意: 有A,B,C三种任务,每个人必获得1个任务,大于等于平均年龄的可以选择A和C,小于平均年龄的可以选择B和C.这些人有一些是互相讨厌的,必须不能执行同任务,问能否安排他们工作?若行,输出任意一组 ...

  6. UVALive - 3713 Astronauts

    给定n个宇航员的年龄,平均年龄为 ave,根据下列要求分配任务: B任务只能分配给年龄<ave的宇航员: A任务只能分配给年龄>=ave的宇航员: C任务可以任意分配. 给定m组互相憎恨的 ...

  7. UVA Live 3713 Astronauts (2-SAT)

    用布尔变量表示状态,把限制条件转化为XνY的形式以后跑2SAT,根据变量取值输出方案. #include<bits/stdc++.h> using namespace std; ; #de ...

  8. 图论$\cdot$2-SAT问题

    2-SAT问题是这样的:有$n$个布尔变量$x_i$,另有$m$个需要满足的条件,每个条件的形式都是“$x_i$为真/假或者$x_j$为真/假”.比如:"$x_1$为真或者$x_3$为假“. ...

  9. 2-SAT 问题与解法小结

    2-SAT 问题与解法小结 这个算法十分的奇妙qwq... 将一类判定问题转换为图论问题,然后就很容易解决了. 本文有一些地方摘录了一下赵爽<2-SAT解法浅析> (侵删) 一些概念: \ ...

随机推荐

  1. Pytest+allure生成测试报告

    1.Allure.zip包的下载地址: https://github.com/allure-framework/allure2 在跳转页面选择一个allure.zip包的版本下载 若以上方法无法下载z ...

  2. StaticBox布局管理器

    wx.StaticBoxSizer构造方法如下: wx.StaticBoxSizer(box,orient = HORIZONTAL) box 是静态框对象,orient参数是布局方向  wx.HOR ...

  3. Python网络编程(socket模块、缓冲区、http协议)

      网络的概念:主机   端口  IP  协议 服务器: localhost/127.0.0.1 客户端: 只是在本机启动客户端,用127.0.0.1访问     服务器: 0.0.0.0 客户端: ...

  4. UPX压缩

    什么是UPX UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间.网 ...

  5. Small组件化重构安卓项目

    如果从一开始就没有设计好 后面项目业务比较大的时候很难掉头

  6. ocrosoft Contest1316 - 信奥编程之路~~~~~第三关 问题 M: 当总统

    http://acm.ocrosoft.com/problem.php?cid=1316&pid=12 题目描述 小明想当丑国的总统,丑国大选是按各州的投票结果来确定最终的结果的,如果得到超过 ...

  7. jQuery Ajax(load,post,get,ajax)

    1.load(url, [data], [callback]) 载入远程 HTML 文件代码并插入至 DOM 中. 默认使用 GET 方式 - 传递附加参数时自动转换为 POST 方式.jQuery ...

  8. servlet 图片流

    http://www.cnblogs.com/focusj/archive/2011/04/30/2057577.html https://segmentfault.com/q/10100000004 ...

  9. RabbitMQ磁盘警报

    RabbitMQ磁盘警报 当可用磁盘空间低于配置的限制(默认为50MB)时,将触发警报,所有生产者将被阻止.目标是避免填满整个磁盘,这将导致节点上的所有写操作失败,并可能导致RabbitMQ终止.为了 ...

  10. 关于ECDSA/ECC(密钥加密传输)和ECDSA/ECDH(密钥磋商)

    关于ECDSA/ECC(密钥加密传输)和ECDSA/ECDH(密钥磋商) 来源: https://blog.csdn.net/xueyepiaoling/article/details/6243337 ...