nbu 2432 羊群之防

2021-08-27 07:31:33 字數 1599 閱讀 5727

題目大意:

中文題意,不解釋。

題目思路:

裸的費用流。

羊進洞所需的時間為費用。

建圖:每只羊對應每個洞的建立一條容量為1的邊。

設乙個源點,連向每只羊,容量為1。

設乙個匯點,每個洞連向匯點,容量為1。

建完圖後發現,還是乙個二分圖,所以我們還可用km演算法,高效又好寫~。

**:

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define ll long long

#define ls rt<<1

#define rs ls|1

#define lson l,mid,ls

#define rson mid+1,r,rs

#define middle (l+r)>>1

#define eps (1e-8)

#define clr_all(x,c) memset(x,c,sizeof(x))

#define clr(x,c,n) memset(x,c,sizeof(x[0])*(n+1))

#define mod 1000000009

#define inf 0x3f3f3f3f

#define pi acos(-1.0)

#define _max(x,y) (((x)>(y))? (x):(y))

#define _min(x,y) (((x)<(y))? (x):(y))

#define _abs(x) ((x)<0? (-(x)):(x))

#define getmin(x,y) (x= ((x)<0 || (y)<(x))? (y):(x))

#define getmax(x,y) (x= ((y)>(x))? (y):(x))

template void _swap(t &x,t &y)

int ts,cas=1;

const int m=1000+5;

int n,m;

char maze[m][m];

map,int>mp;

int vis[m][m],dir[4][2]=,,,};

struct node

};vectors,h;

struct km{

typedef int type;

int n,m,match[m];

type lx[m],ly[m],w[m][m],d;

bool vx[m],vy[m];

void init(int _n,int _m){

n=_n,m=_m,clr(match,-1,m);

for(int i=0;i

題目243 交換輸出

時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 輸入n n 100 個數,找出其中最小的數,將它與最前面的數交換後輸出這些數。如果這個第乙個數就是最小的數,則保持原樣輸出,如果最小的數有相同的按照前面的交換 輸入 輸入資料有多組,每組佔一行,每行的開始是乙個整數n,表示這個測...

nyoj 243交換輸出

描述 輸入n n 100 個數,找出其中最小的數,將它與最前面的數交換後輸出這些數。如果這個第乙個數就是最小的數,則保持原樣輸出,如果最小的數有相同的按照前面的交換 輸入 輸入資料有多組,每組佔一行,每行的開始是乙個整數n,表示這個測試例項的數值的個數,跟著就是n個整數。n 0表示輸入的結束,不做處...

NYOJ 243 交換輸出

時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 輸入n n 100 個數,找出其中最小的數,將它與最前面的數交換後輸出這些數。如果這個第乙個數就是最小的數,則保持原樣輸出,如果最小的數有相同的按照前面的交換 輸入 輸入資料有多組,每組佔一行,每行的開始是乙個整數n,表示這個測...