萌新求教QwQ,LOJ AC ,洛谷 10个点全RE ?

P2764 最小路径覆盖问题

@[渣儿](/space/show?uid=13117) emmm窝会不会变棕名woc...
by Rbu_nas @ 2018-09-25 21:27:45


好害怕。。。
by Rbu_nas @ 2018-09-25 21:30:11


@[渣儿](/space/show?uid=13117) 不是返回值的问题吧。。 我试了一下,没有返回值还是killed
by tocek_shiki @ 2018-09-25 21:42:11


@[渣儿](/space/show?uid=13117) 找到了,是在slv的的i取到11时咕咕的
by tocek_shiki @ 2018-09-25 21:45:02


@[渣儿](/space/show?uid=13117) 嘤,你怎么A了???
by tocek_shiki @ 2018-09-25 21:46:39


@[fff团666](/space/show?uid=49562) 嗯……我是把int slv()的类型写错了……
by Ouaoan @ 2018-09-25 21:50:57


@[fff团666](/space/show?uid=49562) 似乎O2下int类型必须加返回值,[改成void](https://www.luogu.org/record/show?rid=11146785)就过了的
by Ouaoan @ 2018-09-25 21:51:42


@[AC我最萌](/space/show?uid=80358) 没抄题解应该就没事吧QAQ……
by Ouaoan @ 2018-09-25 21:52:07


@[渣儿](/space/show?uid=13117) 求助 ```cpp #include <bits/stdc++.h> #define newline printf ("\n") #define space printf (" ") #define cinfalse ios::sync_with_stdio(false) #define fread(a) freopen (a".in", "r", stdin), freopen(a".out", "w", stdout) #define rint register int #define For(i, a, b) for (rint i = a; i <= b; i ++) #define Low(i, a, b) for (rint i = a; i >= b; i --) #define FFr(i, a, b, c) for (rint i = a; i <= b; i += c) #define FLw(i, a, b, c) for (rint i = a; i >= b; i -= c) #define min(a, b) (a)>(b)?(b):(a) #define max(a, b) (a)>(b)?(a):(b) #define MAXN 155 #define MAXM 6000 using namespace std; int read() { int x = 0, f = 1; char c = getchar(); while(c < '0' || c > '9') { if(c == '-') f = -1; c = getchar(); } while(c >= '0' && c <= '9') x = x*10 + c-'0', c = getchar(); return f*x; } int n, m; vector < int > e[MAXN*2];//环 void preper () { rint x, y; n = read(), m = read(); for (rint i = 1; i <= m; i ++) x = read(), y = read(), e[x].push_back(y+n); return ; } int used[MAXN*2]; int match[MAXN*2]; int dfs (int u) { if (used[u]) return 0; used[u] = 1; rint v; for (rint i = 0; i < e[u].size(); i ++) { v = e[u][i]; if (!match[v]||dfs(match[v])) return match[u] = v, match[v] = u, 1; } return 0; } void solve () { For (i, 1, n) dfs (i), memset (used, 0, sizeof (used)); return ; } void print () { rint ans = 0; memset (used, 0, sizeof (used)); For (i, 1, n) if (!used[i]) { ans ++; rint v = i+n; while (v = match[v]) { v -= n; used[v] = 1; printf ("%d ", v); } puts(""); } printf ("%d", ans); return ; } int main() { preper (); solve (); print (); return 0; } ```
by tocek_shiki @ 2018-09-25 22:21:16


上一页 |