E. Exits in Excess_88


E. Exits in Excess_88_02


E. Exits in Excess_88_03


E. Exits in Excess_88_04

题意:

移除最多一半的边使得图没有环。
将所有边分成两部分, 第一部分为 E. Exits in Excess_88_05, 第二部分为 E. Exits in Excess_88_06, 将小的边集合删去即可。

AC代码:

int n, m;
vector<int> v1, v2;

int main()
{
sdd(n, m);
rep(i, 1, m)
{
int u, v;
sdd(u, v);
if (u < v)
v1.push_back(i);
else
v2.push_back(i);
}
if (v1.size() > v2.size())
{
pd(v2.size());
for (auto x : v2)
pd(x);
}
else
{
pd(v1.size());
for (auto x : v1)
pd(x);
}
return 0;
}