LA 3713 太空飛行員分組

2022-06-20 21:48:17 字數 1198 閱讀 6990

題意:有a、b、c 3個任務要分配給n個太空飛行員,其中每個太空飛行員恰好要分配乙個任務。設所有n個太空飛行員的平均年齡為x,只有年齡大於或等於x的太空飛行員才能分配任務a;只有年齡嚴格小於x的太空飛行員才能分配任務b,而任務c沒有限制。有m對太空飛行員相互討厭,因此不能分配到同一任務。程式設計找出乙個滿足上述所有要求的任務分配方案。

思路:每個太空飛行員要麼選c,要麼選a和b當中的乙個(看年齡大小)。

對m對相互厭惡的太空飛行員拆點連邊。

如果他們屬於同乙個型別,那麼xi,xj必須不同,xi為真或xj為真,xi為假或xj為假。前者表示至少乙個為true,後者表示至少乙個為false。這樣只可能是兩者乙個為true,乙個為false了。如果是不同的型別,那麼唯一的衝突就是xi,xj均為false(即都去做任務c)。那麼只需要「xi為真或xj為真」即可排除這種衝突。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10

using

namespace

std;

1112

const

int maxn=100000+5;13

14int

n,m;

15int

age[maxn];

1617

struct

twosat

1834

35void init(int

n)36

4142

void add_clause(int x,int xval,int y,int

yval)

4349

50bool

solve()

5161}62

return

true;63

}64}solver;

6566

bool age_judge(int a,int

x)67

7172

intmain()

7384

while(m--)

8592

if(!solver.solve()) puts("

no solution.");

93else

for(int i=0;i)

9499

}100

return0;

101 }

LA 3713 太空飛行員分組

題意 有a,b,c三個人物要分配個n個太空飛行員,每個太空飛行員恰好要分配乙個任務,設平均年齡為x,只有年齡大於或等於x的太空飛行員才能分配任務a。只有年齡嚴格小於x的太空飛行員才能分配任務b。而任務c沒有限制。有m對太空飛行員相互討厭,因此不能分配到同一任務。程式設計找出乙個滿足上述所有要求的任務...

poj 1835 太空飛行員(模擬)

description 問題描述 太空飛行員在太空中迷失了方向,在他的起始位置現在建立乙個虛擬xyz座標系,稱為絕對座標系,太空飛行員正面的方向為x軸正方向,頭頂方向為z軸正方向,則太空飛行員的初始狀態如下圖所示 現對六個方向分別標號,x,y,z正方向分別為0,1,2,負方向分別為3,4,5 稱它們...

POJ1835 太空飛行員(思路)

太空飛行員time limit 2000ms memory limit 30000k total submissions 5997 accepted 2618 description 問題描述 太空飛行員在太空中迷失了方向,在他的起始位置現在建立乙個虛擬xyz座標系,稱為絕對座標系,太空飛行員正面的...