JZOJ 5777. 【NOIP2008模拟】小x玩游戏
5777. 【NOIP2008模拟】小x玩游戏
(File IO): input:game.in output:game.out
Description
但小x遇到了难题。他不知道自己的队友是谁。他只知道总共有两个队伍,每队有n个人和很多组击杀情况。他想问你,现在他能否知道两个队伍分别有谁。你可以帮助小x吗?由于小x是个游戏狂魔,所以他玩了很多局游戏。
Input
接下来有t组数据,每组数据第一行有一个n,m,表示每队有n个人,有m组击杀情况,接下来m行每行两个字符串s1,s2,表示s1杀了s2,其中s1,s2的长度均不超过10(数据保证两个字符串都由小写字母组成)。注意一个人可以被击杀多次、一个人可以被曾经杀死过的人给杀死。
Output
Sample Input
1
2 3
a b
c d
a d
Sample Output
YES 样例解释:
a,c是一队,b,d是一队。
Data Constraint
对于30%的数据,n<=1000,m<=10000;
对于100%的数据,t<=10,n<=2000,m<=100000。
数据保证不会有矛盾的关系。
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#define MO 10000000009
#define mo 233437
#define LL long long
using namespace std;
LL t, n, m, ls[mo + ], tot, cnt, A, B;
struct arr
{
int to, next;
}e[mo];
string st;
bool b[mo + ];
LL h[mo + ];
LL H[]; void Add(int x, int y)
{
e[++cnt].to = y;
e[cnt].next = ls[x];
ls[x] = cnt;
} LL Hash(LL p)
{
int g = p % mo;
for (; h[g] != && h[g] != p; g = (g + ) % mo);
return g;
} void Init()
{
scanf("%d%d", &n, &m);
for (int i = ; i <= m; i++)
{
cin >> st;
LL u = , v = , t1, t2;
memset(H, , sizeof(H));
for (int i = ; i < st.size(); i++)
H[i + ] = ((H[i] + st[i] - 'a' + ) * ) % MO;
u = H[st.size()];
v = Hash(u);
h[v] = u;
t1 = v;
memset(H, , sizeof(H));
cin >> st;
for (int i = ; i < st.size(); i++)
H[i + ] = ((H[i] + st[i] - 'a' + ) * ) % MO;
u = H[st.size()];
v = Hash(u);
h[v] = u;
t2 = v;
Add(t1, t2);
Add(t2, t1);
}
} void Dfs(int x, int D)
{
if (D) A++;
else B++;
for (int i = ls[x]; i; i = e[i].next)
{
if (b[e[i].to]) continue;
b[e[i].to] = ;
Dfs(e[i].to, D ^ );
}
} void Work()
{
A = , B = ;
int j = ;
while (!h[j]) j++;
b[j] = ;
Dfs(j, );
if ((A & B & n) == n)
{
printf("YES\n");
return;
}
printf("NO\n");
return;
} int main()
{
freopen("game.in", "r", stdin);
freopen("game.out", "w", stdout);
scanf("%d", &t);
for (; t; t--)
{
memset(ls, , sizeof(ls));
memset(e, , sizeof(e));
memset(b, , sizeof(b));
memset(h, , sizeof(h));
cnt = ;
Init();
Work();
}
}
JZOJ 5777. 【NOIP2008模拟】小x玩游戏的更多相关文章
- 2783: 【基础】小 X 玩游戏(game)
2783: [基础]小 X 玩游戏(game) 时间限制: 1 Sec 内存限制: 64 MB 提交: 752 解决: 294 [提交] [状态] [讨论版] [命题人:ghost79] 题目描述 听 ...
- P5676 [GZOI2017]小z玩游戏【Tarjan】
小z玩游戏 Tarjan算是板子题吧,但是要稍微做一些修改,建边需要多考虑,建立"虚点". 题目描述 小 z 很无聊. 小 z 要玩游戏. 小 z 有\(N\)个新游戏,第\(i\ ...
- P5676 [GZOI2017]小z玩游戏 Tarjan+优化建图
题目描述 分析 一开始看到这道题,首先想到的就是建好边后跑一个Tarjan缩点,将siz大于1的节点统计一下,输出结果 Tarjan非常显然易得,关键就是怎么建边 比较好想的一种思路就是枚举每一个兴奋 ...
- 【题解】 [GZOI2017]小z玩游戏
题目戳我 \(\text{Solution:}\) 考虑建图.操作可以看作对\(1\)进行的操作,于是有以下运行过程: \(1\to w[i]\to e[i]\to...\) 考虑倍数,一个数可以走到 ...
- SCUT - 131 - 小P玩游戏II - 贪心 - 平衡树
https://scut.online/p/131 首先假如钦定了一群人去打怪兽,那么可以把主要的任务都丢给b最大的人去打,这样不会更差.然后考虑枚举这个b最大的人,其他人陪练.一开始就是ai+k*b ...
- 神奇的建图方式(Tarjan)——小z玩游戏
原题来自与:洛谷 P5676(GZOI2017) 链接: https://www.luogu.com.cn/problem/P5676 题面: 题意比较明显,如果已经建好了边,那么跑个Tarjan ...
- J - 玩游戏
小A和小B玩游戏,初始的时候小A给小B一组包含n个数的数组.他们按如下的规则进行: 每次小B得到一组数,他把这组数的和加到自己的分数里面(他的初始分数是0),然后他把这组数还给小A. 如果小A得到的这 ...
- JZOJ 5793. 【NOIP2008模拟】小S练跑步
5793. [NOIP2008模拟]小S练跑步 (File IO): input:run.in output:run.out Time Limits: 2000 ms Memory Limits: ...
- JZOJ 5776. 【NOIP2008模拟】小x游世界树
5776. [NOIP2008模拟]小x游世界树 (File IO): input:yggdrasil.in output:yggdrasil.out Time Limits: 1500 ms Me ...
随机推荐
- Linux利用iptables实现真-全局代理
对于经常要浏览油管等被墙网站的人而言,利用代理来实现fq是非常有必要的.现在fq的方法中,最为主流的应该要数ssr了,因此本教程都是基于ssr的socks5代理而言的. 在windows中,ssr客户 ...
- client的使用
document.documentElement.clientHeight = 464 // 指窗口的可见高度的大小 document.body.clientHeight = 1577 // 指窗口的 ...
- 妙用Object
妙用Object 当你在写C#程序时,经常会用到“ToString()”这个方法,而且如果你细心你点就会发现所有的引用类型都含有“ToString()”这个方法,那么你知道为什么会这样吗?很简单,因为 ...
- CI框架更新与删除
$this->load->database(); // $query=$this->db->get('t_repayments'); // $res ...
- 解决Maven依赖下载不全的问题
背景描述 在日常学习过程中使用Maven构建SpringBoot+SpringCloud服务时,有时会使用非正式版的SpringBoot和SpringCloud(非正式版是指不是最终发布的版本,而是测 ...
- Mavlink 协议 理解
来源:blog.csdn.net/super_mice/article/details/44836585 之前看了mavlink协议,网上关于mavlink的资料不多.本文大概总结了下对mavlink ...
- strlen()与mb_strlen()的作用分别是什么
strlen和mb_strlen都是用于截取字符串的,其中strlen只针对单字节编码字符 如果是多字节编码字符 如gbk和utf8 使用strlen会出现乱码 此时可以使用mb_strlen(),专 ...
- python基础-字符串操作
输出高亮 语法: 显示方式.前景色.背景色至少一个存在即可. 显示方式:0(关闭所有效果),1(高亮),4(下划线),5(闪烁),7(反色),8(不可见). 前景色以3开头,背景色以4开头,具体颜 ...
- zabbix-3.4 触发器
3 触发器 概述 触发器是"评估"由项目采集的数据并表示当前系统状况的逻辑表达式. 当监控项用于采集系统的数据时,始终遵循这些数据是非常不切合实际的,因为这些数据始终在等待一个令人 ...
- 使用后台程序的第一个表单Form
参考手册:http://www.yiichina.com/doc/guide/2.0/start-forms 1.创建模型:advanced\backend\models\moxing.php 此模型 ...