hdu5452 2015瀋陽網路賽C題

2021-09-30 12:49:56 字數 1472 閱讀 8206

題意:

給出乙個無向圖和乙個此圖的生成樹,讓我們求乙個本圖的最小割邊集,割邊集只包括生成樹中的一條邊,讓割邊集的邊數最少,輸出數目。

思路:

並查集+暴力。

**:

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

const int maxn = 20005;

const int maxm = 400005;

struct node e1[maxm], e2[maxm];

int head1[maxn], head2[maxn];

int tot1, tot2;

void add1(int u, int v)

void add2(int u, int v)

int n;

int vis1[maxn];

int num[maxn];

int ans;

int sum;

int vis2[maxn];

vectorvv[maxn];

int fa[maxn];

int find(int x)

void unin(int x, int y)

}void dfs(int u)

}flag = true;}}

for(int i = head2[u]; i; i = e2[i].next)

}if(u == 1) return ;

// printf("u : %d\n", u); // for(int i = 0; i < vv[u].size(); i++) puts("");

sum = vv[u].size();

ans = min(ans, sum);

}int main()

memset(num, 0, sizeof(num));

memset(vis1, 0, sizeof(vis1));

memset(vis2, 0, sizeof(vis2));

memset(head1, 0, sizeof(head1));

memset(head2, 0, sizeof(head2));

tot1 = 1;

tot2 = 1;

int u, v;

int xx;

for(int i = 1; i <= n -1; i ++)

for(int i = n; i <= m; i++)

for(int i = 0; i <= n; i++)

ans = 1000000000;

dfs(1);

printf("case #%d: %d\n", kase, ans);

}return 0;

}

HDU 6195 2017瀋陽網路賽 公式

題意 有m個格仔,有k個物品。我們希望在格仔與物品之間連數量盡可能少的邊,使得 不論是選出m個格仔中的哪k個,都可以與k個物品恰好一一匹配。解法 從樣例猜出答案應該是k m k 1 從這個樣例可以找到合法的解決方案。每個物品,都要向 m k 1 個格仔連去一條邊,我們會丟棄m k個格仔,但總會剩下乙...

hdu5455 2015瀋陽網路賽F題

題意 給出乙個串,問用題中定義的那些串來組成這個串最少要用多少個。思路 沒啥說的,注意一下輸入的串中可能出現除了c和f的字母。include include include include include include include include include include include...

hdu5461 2015瀋陽網路賽L題

題意 給出乙個數列,我們要在這裡找出兩個數,使得題意中那個表示式最大。思路 排兩個序就好了啊,看 一下就懂了。include include using namespace std const long long maxn 5 1000000 10 struct node aa maxn bb ma...