国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

BZOJ 2303 [Apio2011]方格染色

2019-11-06 06:35:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

易或方程+帶權(quán)并查集

我好SB啊,掛題解吧。。。。。。 http://www.cnblogs.com/HHshy/p/5840018.html

#include<cstdio>#include<cstring>#define N 2333333#define MOD 1000000000#define R registerusing namespace std;namespace runzhe2000{ int read() { R int r = 0; R char c = getchar(); for(; c < '0' || c > '9'; c = getchar()); for(; c >='0' && c <='9'; r = r*10+c-'0', c = getchar()); return r; } int n, m, k, f[N], fv[N], vis[N], X[N], Y[N], V[N]; int find(R int x) { if(f[x] == x) return x; else { R int y = find(f[x]); fv[x] ^= fv[f[x]]; return f[x] = y; } } int solve() { R int x, y, v, fx, fy; for(R int i = 1; i <= n+m; i++) f[i] = i; memset(fv, 0, sizeof(fv)); for(R int i = 1; i <= k; i++) { x = X[i]; y = Y[i] + n; v = V[i]; if(x == 1 || y == n+1) continue; fx = find(x); fy = find(y); R int w = v ^ vis[1] ^ (x%2==0&&y%2==0?1:0); if(fx != fy) { f[fx] = fy; fv[fx] = w^fv[x]^fv[y]; } else if((fv[x]^fv[y]) != w) return 0; } for(R int i = 1; i <= k; i++) { x = X[i]; y = Y[i] + n; v = V[i]; if(x == 1 || y == n+1) { if(y == n+1) y = 1; x == 1 ? x = y : 0; R int fx = find(x); if(vis[fx] != -1) { if((v ^ vis[fx]) != fv[x]) return 0; } else vis[fx] = v ^ fv[x]; } } R int ans = 1; for(R int i = n+m; i >= 1; i--) { R int fi = find(i); if(i == fi && vis[i] == -1 && i != n+1) (ans <<= 1) %= MOD; } return ans; } void main() { n = read(), m = read(), k = read(); for(int i = 1; i <= k; i++) X[i] =read(), Y[i] = read(), V[i] = read(); int ans = 0; memset(vis, -1, sizeof(vis)); vis[1] = 0; (ans += solve()) %= MOD; memset(vis, -1, sizeof(vis)); vis[1] = 1; (ans += solve()) %= MOD;
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 闸北区| 志丹县| 东台市| 开鲁县| 周宁县| 志丹县| 天门市| 曲麻莱县| 洞头县| 霞浦县| 确山县| 汤阴县| 彰武县| 井陉县| 特克斯县| 加查县| 当阳市| 高邑县| 资溪县| 深州市| 大悟县| 盱眙县| 内黄县| 临澧县| 吴川市| 宁城县| 齐齐哈尔市| 永州市| 长岛县| 汝城县| 永顺县| 嵊泗县| 湖州市| 安吉县| 辽阳市| 若尔盖县| 长乐市| 旬阳县| 五河县| 乌鲁木齐县| 天峻县|