【hihoCoder 第133周】2-SAT·hihoCoder音乐节

时间:2023-01-09 14:43:18

http://hihocoder.com/problemset/problem/1467

2-sat模板。。。详细的题解请看题目里的提示。

tarjan模板打错again致命伤qwq

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; const int N = 103;
const int M = 1003; bool inst[N << 1];
struct node {int nxt, to;} E[M << 1];
int cnt, point[N << 1], dfn[N << 1], low[N << 1], st[N << 1], top = 0, bel[N << 1];
void ins(int u, int v) {E[++cnt] = (node) {point[u], v}; point[u] = cnt;} char A[23], B[23];
int n, m, a, b, ct, tot; void tarjan(int x) {
dfn[x] = low[x] = ++ct;
inst[st[++top] = x] = true;
for (int i = point[x], v = E[i].to; i; v = E[i = E[i].nxt].to)
if (!dfn[v]) tarjan(v), low[x] = min(low[x], low[v]);
else if (inst[v]) low[x] = min(low[x], dfn[v]);
if (dfn[x] == low[x]) {
++tot;
while (st[top] != x) {
inst[st[top]] = false;
bel[st[top--]] = tot;
}
inst[x] = false;
bel[st[top--]] = tot;
}
} int main() {
int T; scanf("%d", &T);
while (T--) {
scanf("%d%d", &n, &m);
int doublen = n << 1;
memset(point, 0, sizeof(int) * doublen);
memset(dfn, 0, sizeof(int) * doublen);
ct = cnt = tot = 0;
for (int i = 1; i <= m; ++i) {
scanf("%s%s", A, B);
int lena = strlen(A), lenb = strlen(B);
a = b = 0;
for (int j = 1; j < lena; ++j) a = a * 10 + A[j] - 48;
for (int j = 1; j < lenb; ++j) b = b * 10 + B[j] - 48;
--a; --b;
if (A[0] == 'h') a += n;
if (B[0] == 'h') b += n;
ins((a + n) % doublen, b);
ins((b + n) % doublen, a);
}
for (int i = 0; i < doublen; ++i)
if (!dfn[i])
tarjan(i);
bool flag = false;
for (int i = 0; i < n; ++i)
if (bel[i] == bel[i + n]) {
flag = true;
puts("BAD");
break;
}
if (!flag) puts("GOOD");
}
return 0;
}

【hihoCoder 第133周】2-SAT·hihoCoder音乐节的更多相关文章

  1. 【hihoCoder 第133周】【hihoCoder 1467】2-SAT&&num;183&semi;hihoCoder音乐节

    http://hihocoder.com/problemset/problem/1467 2-sat模板...详细的题解请看题目里的提示. tarjan模板打错again致命伤qwq #include ...

  2. hihoCoder 第136周 优化延迟(二分答案&plus;手写堆)

    题目1 : 优化延迟 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho编写了一个处理数据包的程序.程序的输入是一个包含N个数据包的序列.每个数据包根据其重要程度不同 ...

  3. HihoCoder第三周与POJ2406:KMP算法总结

    HihoCoder第三周: 输入 第一行一个整数N,表示测试数据组数. 接下来的N*2行,每两行表示一个测试数据.在每一个测试数据中,第一行为模式串,由不超过10^4个大写字母组成,第二行为原串,由不 ...

  4. hiho一下第133周 2-SAT&&num;183&semi;hihoCoder音乐节&lpar;2-SAT&rpar;&lpar;强连通&rpar;

    2-SAT·hihoCoder音乐节 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 hihoCoder音乐节由hihoCoder赞助商大力主办,邀请了众多嘉宾和知名乐队 ...

  5. hihocoder第42周 3&ast;N骨牌覆盖(状态dp&plus;矩阵快速幂)

    http://hihocoder.com/contest/hiho42/problem/1 给定一个n,问我们3*n的矩阵有多少种覆盖的方法 第41周做的骨牌覆盖是2*n的,状态转移方程是dp[i] ...

  6. hiho一下第134周 1468 &colon; 2-SAT&&num;183&semi;hihoCoder新春晚会

    1468 : 2-SAT·hihoCoder新春晚会 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 hihoCoder新春晚会正在紧张地筹备中.晚会分为上半场和下半场, ...

  7. hihocoder第42周 k&ast;N骨牌覆盖(状态dp&plus;矩阵快速幂)

    上周的3*N的骨牌,因为状态只有8中,所以我们可以手算出状态转移的矩阵 但是这周是k*N,状态矩阵不好手算,都是我们改成用程序自动生成一个状态转移的矩阵就行了,然后用这个矩阵进行快速幂即可 枚举枚举上 ...

  8. hihocoder第220周-一道拧巴的题

    一.220周 题目链接 问题描述 键盘上有N个数字按键,每个按键只能按一次,每次可以按下多个键,请输出所有可能的按键情况. 输入一个整数N(N在1~8之间),输出全部的按键可能.例如:输入3,输出为 ...

  9. hihocoder&lpar;第十周&rpar;二叉树(前序中序推后续)递推实现

    题目 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在参与过了美食节之后,小Hi和小Ho在别的地方又玩耍了一阵子,在这个过程中,小Ho得到了一个非常有意思 ...

随机推荐

  1. Asp&period;Net Core 发布和部署(Linux &plus; Jexus )

    前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在 asp.net core 中对我们的已经完成的程序进行发布和部署. 有关如何使用 Nginx 进行部署, ...

  2. 通过 itms-services 协议,发布或者分享 iOS 应用程序

    导读:itms-services 协议常用于 iOS 企业应用的无线部署,这可在不使用 iTunes 的情况下将内部软件发布或者分享给用户. 一.前期准备资料: 1.应用程序 (.ipa) 文件(使用 ...

  3. 使用AVCaptureSession显示相机预览

    #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface ViewController ...

  4. 在WebView中如何让JS与Java安全地互相调用

    在现在安卓应用原生开发中,为了追求开发的效率以及移植的便利性,使用WebView作为业务内容展示与交互的主要载体是个不错的折中方案.那么在这种Hybrid(混合式) App中,难免就会遇到页面JS需要 ...

  5. 我发起了一个 ILBC 的 子项目 ILBC Studio

    ILBC  见 <ILBC 规范>  https://www.cnblogs.com/KSongKing/p/10354824.htm 发起这个项目的原因是, 本来想用 VsCode 来写 ...

  6. MT【282】一道几何题

    2010浙江省数学竞赛,附加题. 设$D,E,F$分别为$\Delta ABC$的三边$BC,CA,AB$上的点,记$\alpha=\dfrac{BD}{BC},\beta=\dfrac{BD}{BC ...

  7. 剑指Offer-把数组排成最小的数

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路 可以看 ...

  8. BZOJ&period;2242&period;&lbrack;SDOI2011&rsqb;计算器&lpar;扩展欧几里得 BSGS&rpar;

    同余方程都不会写了..还一直爆int /* 2.关于同余方程ax ≡b(mod p),可以用Exgcd做,但注意到p为质数,y一定有逆元 首先a%p=0时 仅当b=0时有解:然后有x ≡b*a^-1( ...

  9. Redis面试题及答案整理

    1.什么是Redis?简述它的优缺点? Redis的全称是:Remote Dictionary.Server,本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载 ...

  10. 9&period;17 Django ORM分组

    2018-9-17 19:53:22 预习:http://www.cnblogs.com/liwenzhou/p/8343243.html 新买个蓝牙挂耳耳机,感觉不错! 放上代码  笔记什么的明天继 ...