uva 1391 Astronauts(2-SAT)
/*翻译好题意 n个变量 不超过m*2句话*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#define maxn 200010
using namespace std;
int n,m,f[maxn],c,s[maxn],age[maxn],sum,a,b;
vector<int>G[maxn];
bool Judge(int a,int b)
{
if(age[a]*n<sum&&age[b]*n<sum)return ;
if(age[a]*n>=sum&&age[b]*n>=sum)return ;
return ;
}
void Add(int x,int a,int y,int b)
{
x=x*+a;y=y*+b;
G[x^].push_back(y);
G[y^].push_back(x);
}
bool Dfs(int x)
{
if(f[x^])return ;if(f[x])return ;
f[x]=;s[c++]=x;
for(int i=;i<G[x].size();i++)
if(!Dfs(G[x][i]))return ;
return ;
}
bool Solve()
{
for(int i=;i<n*;i+=)
{
if(f[i]||f[i+])continue;c=;
if(!Dfs(i))
{
while(c>)f[s[--c]]=;
if(!Dfs(i+))return ;
}
}
return ;
}
int main()
{
while()
{
memset(f,,sizeof(f));sum=;
for(int i=;i<n*;i++)G[i].clear();
scanf("%d%d",&n,&m);if(n==&&m==)break;
for(int i=;i<n;i++)
scanf("%d",&age[i]),sum+=age[i];
for(int i=;i<=m;i++)
{
scanf("%d%d",&a,&b);a--;b--;
if(a==b)continue;Add(a,,b,);
if(Judge(a,b))Add(a,,b,);
}
if(Solve()==)printf("No solution\n");
else for(int i=;i<n;i++)
{
if(f[i*])printf("C\n");
else if(age[i]*n<sum)printf("B\n");
else printf("A\n");
}
}
return ;
}
uva 1391 Astronauts(2-SAT)的更多相关文章
- UVa 1391 Astronauts (2SAT)
题意:给出一些宇航员他们的年龄,x是他们的平均年龄,其中A任务只能给年龄大于等于x的人,B任务只能给小于x的人,C任务没有限制.再给出m对人,他们不能同任务.现在要你输出一组符合要求的任务安排. 思路 ...
- uva 509 RAID!(磁盘数据)
来自 https://blog.csdn.net/su_cicada/article/details/80085318 习题4-7 RAID技术(RAID!, ACM/ICPC World Final ...
- UVALive - 3713 - Astronauts(图论——2-SAT)
Problem UVALive - 3713 - Astronauts Time Limit: 3000 mSec Problem Description Input The input cont ...
- UVA 11168 Airport(凸包+直线方程)
题意:给你n[1,10000]个点,求出一条直线,让所有的点都在都在直线的一侧并且到直线的距离总和最小,输出最小平均值(最小值除以点数) 题解:根据题意可以知道任意角度画一条直线(所有点都在一边),然 ...
- UVA 11624 Fire!(广度优先搜索)
题目大意:在一个N*M的迷宫内,J代表某人(只有一个),F代表火(可能不只一个),#代表墙,火每分钟会向四周除了墙以外的地方扩散一层,问人能否在没被火烧到 之前逃出迷宫,若能逃出输出最短时间.很明显的 ...
- UVA 11478 Halum(差分约束)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34651 [思路] 差分约束系统. 设结点u上的操作和为sum[u] ...
- UVA 12263 Rankings(拓扑排序)
给出一个n个数的序列1,然后有m个改动(a, b),在序列2中a跟b在序列中的相对顺序改变.求符合题意的序列2. 题中说道如果一个数的位置不确定,则输出‘?' ,仔细想想,这种情况是不会存在的,因为在 ...
- uva 10288 Coupons (分数模板)
https://vjudge.net/problem/UVA-10288 大街上到处在卖彩票,一元钱一张.购买撕开它上面的锡箔,你会看到一个漂亮的图案. 图案有n种,如果你收集到所有n(n≤33)种彩 ...
- UVa 104 - Arbitrage(Floyd动态规划)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
随机推荐
- 我的VSTO之路:序
原文:我的VSTO之路:序 VSTO是微软提供给.Net开发人员的一个接口,通过他我们可以对Office程序做一些处理.但是这个接口并不尽善尽美,相比微软的很多其他产品,VSTO的稳定性并不好,相关的 ...
- Unity 通过Animation实现控件位置的转换
Unity版本:4.5.1 NGUI版本:3.6.5 参考链接:http://blog.csdn.net/unity3d_xyz/article/details/23035521,作者:CSDN in ...
- -_-#【CSS3】浏览器前缀
前缀 浏览器 -khtml Konqueror(非常老的 Safari) -moz Firefox -o Opera -ms Internet Explorer -webkit Safari.Chro ...
- 数据结构(脑洞题,BIT):COGS 2394. 比赛
比赛 时间限制:1 s 内存限制:256 MB [题目描述] n(n≤100000)个人编号为0到n-1,每人都有一个能力值,大小在0到n-1之间,各不相同,他们之间有c场比赛,每场比赛指定一个区 ...
- 字符串(后缀数组||SAM):NOI2015 品酒大会
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAByIAAALuCAIAAABtq0bwAAAgAElEQVR4nOy9f2wb150vev4boESeln ...
- supesite 连 discuz 论坛记录
上一篇,网站supesite里 有 config.php 这里记录访问地址,到时候可以更改这里变更域名或者外网地址. 这里同样也是 下载discuz,解压,bbs 下的文件为有效的内容,放到supe ...
- 暴力求解——UVA 572(简单的dfs)
Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...
- codevs2492 上帝造题的七分钟 2
2492 上帝造题的七分钟 2 题目描述 Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说,要有数列,于是便给定了一个正整数数列 ...
- FATE(完全背包)
/* http://acm.hdu.edu.cn/showproblem.php?pid=2159 分析: 和普通的完全背包没有什么太大的区别 但是题目中给出了限制最多可杀s个怪 用二维数组dp[i] ...
- hdu 3409 最短路树+树形dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3409 参考博客:http://www.cnblogs.com/woaishizhan/p/318981 ...