首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
la3713
】的更多相关文章
UVA1391/LA3713 Astronauts
题意:有A.B.C3个任务分配给n个宇航员,其中每个宇航员恰好分配一个任务.假设n个宇航员的平均年龄为x,只有年龄大于x的才能领取A任务:只有年龄严格小于x的才能领取B任务,而任务C没有限制.有m对宇航员相互讨厌,因此不能分配同一任务.求出是否能找出符合的任务方案.(转自http://blog.csdn.net/u011345461/article/details/39779721) 题目看上去是ABC三个选择,实际上每个人只有两个选择.对于每对矛盾,如果两个人选择相同(即均为BC或均为AC),…
【LA3713 训练指南】宇航员分组 【2-sat】
题意 有A,B,C三个任务要分配给n个宇航员,其中每个宇航员恰好要分配一个任务.设所有n个宇航员的平均年龄为x,只有年龄大于或等于x的宇航员才能分配任务A:只有年龄严格小于x的宇航员才能分配任务B,而任务C没有限制.有m对宇航员相互讨厌,因此不能分配到同一任务.编程找出一个满足上述所有要求的任务分配方案. 分析 这个题应该算是比较裸的2-sat了. 对于每个宇航员来说,他的年龄要么大于x要么小于x,所有他只能从A或者B里面选择一个.因此每个宇航员可以选择的任务只有两个A或者B 和C,对应2-sa…
la3713
2-sat...求解2-sat方案直接每个变量枚举就行了,lrj的代码很靠谱... #include<bits/stdc++.h> using namespace std; ; struct edge { int nxt, to; } e[N << ]; int n, m, x, cnt, top; bool mark[N]; int head[N], u[N], v[N], age[N], st[N]; void Init() { cnt = ; top = x = ; mems…
【UVALive - 3713】Astronauts (2-SAT)
题意: 有n个宇航员,按照年龄划分,年龄低于平均年龄的是年轻宇航员,而年龄大于等于平均年龄的是老练的宇航员. 现在要分配他们去A,B,C三个空间站,其中A站只有老练的宇航员才能去,而B站是只有年轻的才能去,C站都可以去. 有m对宇航员相互讨厌,不能让他们在同一个空间站工作. 输出每个宇航员应分配到哪个空间站,如果没有则输出No solution. 分析: 对于每个宇航员,有两种选择,(A,B)或C.第一个选择中取A还是取B取决于年龄. 构图,2-SAT找满足题意的方案再输出即可. 代码如下: #…