AC日記 小行星 洛谷 P2711

2022-05-14 07:15:27 字數 1161 閱讀 1312

pid=3437

星雲中有n顆行星,每顆行星的位置是(x,y,z)。每次可以消除乙個面(即x,y或z座標相等)的行星,但是由於時間有限,求消除這些行星的最少次數。

輸入格式:

第1行為小行星個數n,第2行至第n+1行為xi, yi, zi,描述第i個小行星所在的位置。

輸出格式:

共1行,為消除所有行星的最少次數。

輸入樣例#1:

3

1 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的道路。輸出...