noip模拟题《戏》game
【问题背景】
zhx 和他的妹子(们) 做游戏。
【问题描述】
考虑 N 个人玩一个游戏,任意两个人之间进行一场游戏(共 N*(N-1)/2 场),且每场一定能分出胜负。
现在, 你需要在其中找到三个人构成“剪刀石头步”局面: 三个人 A,B,C满足A战胜B,B 战胜 C,C 战胜 A。
【输入格式】
第一行一个正整数 N, 表示参加游戏的人数。
接下来 N 行, 每行 N 个数 0/1,中间没有空格隔开。第i行第j列数字为1表示 i 在游戏中战胜了 j。 所有对角线元素(即第 i 行第 i 个元素) 为 0,保证数据合法。
【输出格式】
如果存在三个人构成“剪刀石头布”局面, 输出三个人的编号(从 1 开始)。
如果不存在这样的三个人, 输出一个数-1。
【样例输入】
5
00100
10000
01001
11101
11000
【样例输出】
1 3 2
【数据规模与约定】
对于50%的数据,1 ≤n≤ 500。
对于80%的数据,1 ≤n≤ 1000。
对于100%的数据,1 ≤n≤ 5000。
啦啦啦第一次直接n3暴力了
正解:
由于这是一个竞赛图,每两个点之间有且仅有一条有向边,所以当我们找到一个任意长度的环时,考虑这个环上的前三个点A,B,C,若C与A之间的边由C指向A,则找到一个三元环,否则从A指向C有一条边,在这个环上删去B,加上C->A的边,就得到了一个点数少一个的环。
下面只需考虑如何找一个任意长度的环:对图进行dfs,以v数组存下每个点的遍历状态,0表示没有访问过,1表示访问过但从这个点延伸出的路径上的点还没有访问完,2表示已经访问过这个点及它延伸出的路径上所有的点。这样当我们在dfs中发现又扩展到一个状态为1的点,就找到了一个环。
program game(input,output);
var
a:array[..,..]of boolean;
f,v,s:array[..]of longint;
c:char;
i,j,n,m,t:longint;
procedure work;
begin
for i:= to m>> do begin t:=f[i];f[i]:=f[m-i+];f[m-i+]:=t; end;
j:=;
for i:= to m do if f[i]<f[j] then j:=i;
for i:= to m do begin t:=i+j-;if t>m then t:=t-m;v[i]:=f[t]; end;
for i:= to m do f[i]:=v[i];
//writeln(m);
//for i:= to m do writeln(f[i]);
for i:= to m do
if a[f[i],f[]] then begin write(f[],' ',f[i-],' ',f[i]);close(input);close(output);halt; end;
end;
procedure dfs(k,d:longint);
var
i:longint;
begin
v[k]:=;
s[d]:=k;
for i:= to n do if a[k,i] then
begin
if v[i]= then continue;
if v[i]= then
begin
m:=;f[]:=i;j:=d;
while s[j]<>i do begin inc(m);f[m]:=s[j];dec(j); end;
work;
end;
dfs(i,d+);
end;
v[k]:=;
end;
begin
assign(input,'game.in');assign(output,'game.out');reset(input);rewrite(output);
readln(n);
for i:= to n do begin for j:= to n do begin read(c);if c='' then a[i,j]:=true else a[i,j]:=false; end;readln; end;
for i:= to n do if v[i]= then dfs(i,);
write(-);
close(input);close(output);
end.
noip模拟题《戏》game的更多相关文章
- 【入门OJ】2003: [Noip模拟题]寻找羔羊
这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...
- NOIP模拟题汇总(加厚版)
\(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...
- 9.9 NOIP模拟题
9.9 NOIP模拟题 T1 两个圆的面积求并 /* 计算圆的面积并 多个圆要用辛普森积分解决 这里只有两个,模拟计算就好 两圆相交时,面积并等于中间两个扇形面积减去两个三角形面积 余弦定理求角度,算 ...
- 8.22 NOIP 模拟题
8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...
- NOIP模拟题17.9.26
B 君的任务(task)[题目描述]与君初相识,犹如故人归.B 君看到了Z 君的第一题,觉得很难.于是自己出了一个简单题.你需要完成n 个任务,第i 任务有2 个属性ai; bi.其中ai 是完成这个 ...
- noip模拟题题解集
最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...
- NOIP 模拟题
目录 T1 : grid T2 : ling T3 : threebody 数据可私信我. T1 : grid 题目:在一个\(n*n\)的方格中,你只能斜着走.为了让问题更简单,你还有一次上下左右走 ...
- 9.22 NOIP模拟题
吉林省信息学奥赛 2017 冬令营 ...
- 6.19 noip模拟题(题目及解析转自 hzwer 2014-3-15 NOIP模拟赛)
Problem 1 高级打字机(type.cpp/c/pas) [题目描述] 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序 ...
随机推荐
- html 第一行不缩进,第二行缩进,文字对齐
<p style="text-indent: -7rem;margin-left: 7rem;"> <img src="images/记录要求.png& ...
- Mysql:查询当天、今天、本周、上周、本月、上月、本季度、本年的数据
1. 今天 select * from 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW()); 2. 昨天 3. 本周 SELECT * FROM 表名 WHERE YEA ...
- Flask 路由相关操作
URL Route URL 后接 / 作为目录级访问 URL 后不接 / 作为文件级访问 from flask import Flask app = Flask(__name__) @app.rout ...
- The specified value "2019-1-2" does not conform to the required format, "yyyy-MM-dd"
问题: 在cshtml中转换的日期格式错误,前端报错:The specified value "2019-1-2" does not conform to the required ...
- JMeter自学笔记1-环境安装
一.写在前面的话: Jmeter是一款优秀的开源测试工具, 是每位测试工程师进阶过程中,需要熟悉并掌握的一款测试工具,熟练使用Jmeter能大大提高工作效率. Jmeter环境安装需要依赖JDK,所以 ...
- redis主从配置+sentinel哨兵
redis主从配置+sentinel哨兵 1:编译环境准备 1.1环境确认 Redis是一个开源.支持网络.基于内存.键值对存储数据库,使用ANSI C编写.所以在搭建Redis服务器时需要C语言的编 ...
- K8S-RedisCluster搭建
简介 Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接, mastart节点之间存放的数据并不是相同的,只是其中的一部分,当我们请 ...
- eclipse 简单操作
1.设置字体: windows --> preferences --> general --> Colors and Fonts --> Basic --> 双击 Tex ...
- ASP.NET 异步Web API + jQuery Ajax 文件上传代码小析
该示例中实际上应用了 jquery ajax(web client) + async web api 双异步. jquery ajax post $.ajax({ type: "POST&q ...
- Python3 函数作用域
一 LEGB 什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 顺序是什么? 跟名字一样 ...