要点

  • 题目传送
  • 题目本质是每个点必属于两个集合中的一个,伴随的性质是:如果一个人说别人true,则他们一定属于同一阵营;如果说别人fake,一定不属于同一阵营。
  • 每个点拆为\(i\)和\(i + n\)分别代表他属于某种阵营(目前还不确定),然后根据上述性质边读入边合并同类。
  • 这样扫一遍,如果某个\(i\)和\(i + n\)属于同一阵营则矛盾,无解。
  • 若有解,对于每个点扫一遍和他同阵营的人,为了使fakeman尽可能地少,\(<=n\)的人少就把\(<=n\)视为fakeman;否则把\(>n\)的视为fakeman。
#include <bits/stdc++.h>
using namespace std; const int maxn = 1e5 + 5;
int T, n, m;
int f[maxn << 1], ans[maxn], sz[maxn << 1];
vector<int> v[maxn << 1]; int getf(int v) {
return v == f[v] ? v : f[v] = getf(f[v]);
} void merge(int u, int v) {
f[getf(u)] = getf(v);
} int main() {
for (scanf("%d", &T); T--;) {
scanf("%d %d", &n, &m); for (int i = 1; i <= n * 2; i++) f[i] = i, v[i].clear();
memset(ans, 0, sizeof ans);
memset(sz, 0, sizeof sz); for (int i = 1, u, v, w; i <= m; i++) {
scanf("%d %d %d", &u, &v, &w);
if (w) merge(u, v), merge(u + n, v + n);
else merge(u, v + n), merge(u + n, v);
} int flag = 1;
for (int i = 1; i <= n; i++)
if (getf(i) == getf(i + n)) {
flag = 0; break;
}
if (!flag) {
puts("-1"); continue;
} for (int i = 1; i <= n * 2; i++) v[getf(i)].push_back(i);
for (int i = 1; i <= n; i++) sz[getf(i)]++; for (int i = 1; i <= n; i++) {
if (ans[i]) continue;
int fa = getf(i);
if (v[fa].size() - sz[fa] >= sz[fa]) {
for (int j : v[fa])
if (j > n) ans[j - n] = 2;
else ans[j] = 1;
} else {
for (int j : v[fa])
if (j > n) ans[j - n] = 1;
else ans[j] = 2;
}
}
for (int i = 1; i <= n; i++) printf("%d", ans[i] - 1);
puts("");
}
}

2019湘潭校赛 G(并查集)的更多相关文章

  1. 2019湘潭校赛 H(dp)

    题目传送 dp是常规的:\(m^2\)的预处理:把位置存进vector然后\(O(1)\)算出想要的:WA点:要注意特意设置一下val[i][v.size()]=0,即全天都放鸽子则花费时间为0. # ...

  2. 2019湘潭校赛 E(答案区间维护)

    题目传送 思路是始终维护西瓜数量的区间,即L代表目前可以达到的最少的,R是最多的,然后判断一下. #include <bits/stdc++.h> using namespace std; ...

  3. luogu4269 Snow Boots G (并查集)

    对于某个靴子,如果0代表某个格能走,1代表不能走,那么只要连续的1的个数的最大值>=靴子的步长,那这个靴子就不能用. 那么只要对靴子和格子都按深度排个序,然后从大到小来扫一遍(靴子越来越浅,能走 ...

  4. 2019南昌网络赛G. tsy's number

    题意:\(\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\frac{\phi(i)*\phi(j^2)*\phi(k^3)}{\phi(i)*\phi(j)*\phi(k)} ...

  5. Little Sub and Piggybank (杭师大第十二届校赛G题) DP

    题目传送门 题意:每天能往存钱罐加任意实数的钱,每天不能多于起那一天放的钱数.如果某一天的钱数恰好等于那天的特价商品,则可以买,求最后的最大快乐值. 思路:先来一段来自出题人的题解: 显然的贪心:如果 ...

  6. 山东理工大学第七届ACM校赛-G 飞花的传送门

    G - 飞花的传送门 飞花壕最近手头比较宽裕,所以想买两个传送门来代步(夏天太热,实在是懒得走路).平面上有N个传送门,飞花壕想要挑两个距离最远的传送门带回家(距离为欧几里得距离,即两点之间直线距离) ...

  7. 浙江理工2015.12校赛-G Jug Hard

    Jug Hard Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1172 Solved: 180 Description You have two e ...

  8. 2019浙大校赛--E--Potion(签到水题)

    一丢丢思维就ok 题目大意: 魔法师要煮药,有n个等级的药,所需要的药物为a1,a2...an,意为第n级需要多少药物,下一行为库存的不同等级药物,药物可降级使用不可升级. 思路:从高级药物开始解,把 ...

  9. 2019浙大校赛--J--Extended Twin Composite Number(毒瘤水题)

    毒瘤出题人,坑了我们好久,从基本的素数筛选,到埃氏筛法,到随机数快速素数判定,到费马小定理,好好的水题做成了数论题. 结果答案是 2*n=n+3*n,特判1,2. 以下为毒瘤题目: 题目大意: 输入一 ...

随机推荐

  1. 时尚设计div+css免费模板

    时尚设计div+css免费网页模板,时尚设计,div+css. http://www.huiyi8.com/moban/

  2. BZOJ 3251 树上三角形:LCA【构成三角形的结论】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3251 题意: 给你一棵树,n个节点,每个点的权值为w[i]. 接下来有m个形如(p,a,b ...

  3. BZOJ 1370 [Baltic2003]Gang团伙:并查集【虚点】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1370 题意: 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: (1)我 ...

  4. COM组件宏观认识

    一直搞不清楚COM到底是个什么东西,记录一些个人感想,可能很多错误的,慢慢消化. 一.宏观认识: 1.COM(组件对象模型)是一种标准,规则,要求,即即于建筑设计指标要求. 2.语言无关性,因为是建立 ...

  5. 机器学习:simple linear iterative clustering (SLIC) 算法

    图像分割是图像处理,计算机视觉领域里非常基础,非常重要的一个应用.今天介绍一种高效的分割算法,即 simple linear iterative clustering (SLIC) 算法,顾名思义,这 ...

  6. BZOJ1758:[WC2010]重建计划

    浅谈树分治:https://www.cnblogs.com/AKMer/p/10014803.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem. ...

  7. AI-Info-Micron-Insight:案例分析:美光使用数据和人工智能来发现、倾听和感觉

    ylbtech-AI-Info-Micron-Insight:案例分析:美光使用数据和人工智能来发现.倾听和感觉 1.返回顶部 1. 案例分析:美光使用数据和人工智能来发现.倾听和感觉 内存芯片制造商 ...

  8. 后缀数组dc3算法模版(待补)

    模版: ; #define F(x) ((x)/3+((x)%3==1?0:tb)) #define G(x) ((x)<tb?(x)*3+1:((x)-tb)*3+2) int wa[maxn ...

  9. HDU - 5875 Function(预处理)

    Function The shorter, the simpler. With this problem, you should be convinced of this truth.      Yo ...

  10. QDUOJ 河老师的新年礼物(尺取法)

    河老师的新年礼物 发布时间: 2017年1月1日 15:11   最后更新: 2017年1月1日 15:13   时间限制: 1000ms   内存限制: 256M 描述 河老师的新年礼物是一个长度为 ...