pid=3437
星雲中有n顆行星,每顆行星的位置是(x,y,z)。每次可以消除乙個面(即x,y或z座標相等)的行星,但是由於時間有限,求消除這些行星的最少次數。
輸入格式:
第1行為小行星個數n,第2行至第n+1行為xi, yi, zi,描述第i個小行星所在的位置。
輸出格式:
共1行,為消除所有行星的最少次數。
輸入樣例#1:
31 2 3
2 3 1
1 3 2
輸出樣例#1:
2
1≤n≤50000
1≤x,y,z≤500
思路:最大流;
x連y,y拆點後再連z;
來,上**:
#include #include#include
#include
#include
#define maxn 505
using
namespace
std;
struct
edgetype ;
struct edgetype edge[maxn*500
];int if_z,n,cnt=1,head[maxn*6],s=0,t=maxn*6-1
;int deep[maxn*6
];char
cget;
inline
void
in(int &now)
while(cget>='
0'&&cget<='9'
)
now*=if_z;
}inline
void edge_add(int u,int v,int
w)bool
bfs()}}
return
false;}
int flowing(int now,int
flow)
return
oldflow;
}int
dinic()
intmain()
while(n--)
printf(
"%d\n
",dinic());
return0;
}
洛谷 P2711 小行星
給出n個三維空間中的點,每次可以消除三維中至少有一維相等的點,問至少幾次可以消除所有點.首先想到的是dp,但是很難記錄狀態,然後考慮網路流,想對每個點間兩個點記為a,b兩點,對所有a點和它共面的點的b點都連一條邊,然後跑費用流,但是建邊的複雜度就高達o n 2 不僅會t,還會m.正確思路是要抓住x,...
AC日記 拍照 洛谷 P3410
小b有n個下屬,現小b要帶著一些下屬讓別人拍照。有m個人,每個人都願意付給小b一定錢讓n個人中的一些人進行合影。如果這一些人沒帶齊那麼就不能拍照,小b也不會得到錢。注意 帶下屬不是白帶的!對於每個下屬,如果他帶了那麼小b需要給他一些錢,保證當他拍照時配合。請問,小b的淨收益最多是多少。輸入格式 第1...
AC日記 城市 洛谷 P1401
n 2 n 200 個城市,m 1 m 40000 條無向邊,你要找t 1 t 200 條從城市1到城市n的路,使得最長的邊的長度最小,邊不能重複用。輸入格式 第1行三個整數n,m,t用空格隔開。第2行到p 1行,每行包括三個整數ai,bi,li表示城市ai到城市bi之間有一條長度為li的道路。輸出...