UVALive 6953 Digi Comp II
2015-08-26 21:33
246 查看
点击打开链接
拓扑排序,顺便记录一下答案
拓扑排序,顺便记录一下答案
#include<cstdio> #include<ctime> #include<queue> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long LL; const int maxn = 500015; LL n, sum[maxn], T, m, flag[maxn], in[maxn]; int L[maxn], R[maxn]; char s[8]; int main() { while (cin >> n >> m) { for (int i = 0; i <= m; i++) sum[i] = in[i] = 0; for (int i = 1; i <= m; i++) { scanf("%s%d%d", s, &L[i], &R[i]); flag[i] = s[0] == 'L' ? 1 : 0; ++in[L[i]]; ++in[R[i]]; } queue<int> p; for (int i = 1; i <= m; i++) if (!in[i]) p.push(i); sum[1] = n; while (!p.empty()) { int q = p.front(); p.pop(); if (L[q]) { if (--in[L[q]] == 0) p.push(L[q]); sum[L[q]] += (sum[q] + flag[q]) >> 1; } if (R[q]) { if (--in[R[q]] == 0) p.push(R[q]); sum[R[q]] += (sum[q] + 1 - flag[q]) >> 1; } flag[q] ^= (sum[q] & 1); } for (int i = 1; i <= m; i++) if (flag[i]) putchar('L'); else putchar('R'); putchar(10); } return 0; }
相关文章推荐
- 数据库字段更换名称且字段值同时更改
- Associative机制使用场景
- Mariadb 在centos 7下的安装配置
- Ubuntu 14.10 下Hive配置
- Construct Binary Tree from Inorder and Postorder Traversal (&&Preorder and Inorder Traversal )——数据结构和算法的基本问题
- CCF 集合竞价
- Calendar
- 异常:org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection available
- Android跨进程通信的四种方式
- 批号
- LeetCode题解——Combinations
- Topcoder SRM666 DIV2第三题,树形DP
- Same Tree
- BZOJ1059: [ZJOI2007]矩阵游戏
- typedef
- 有理想的程序员必须知道的15件事
- Java高手需要注意的25个学习目标
- C#获取QQ旋风的下载记录
- jQuery autocomplete 的例子
- c++中的位运算与逻辑运算