CodeForces 575DTablecity 奇偶分析
来源:互联网 发布:九维网络免费wifi官网 编辑:程序博客网 时间:2024/06/11 07:22
首先这个题目的要求是:找到一种监测方法,使得所有小偷移动序列中 一定会有至少 一个时间点 在 一个地点 与之重合。
这个题可不能从左往右扫一遍,因为即使只这样,小偷也会跑过去。
/*
我们先试着确定小偷的范围,将其渐渐逼死,结果很没有头绪,因为这样的小偷是"万能",即出生位置可以不断调整来始终破坏这个策略。
但这样分析是不对的,因为小偷只可能有一个出生位置。*/
解法:
从左往右扫列,再从右往左扫列。
2000步,即可抓住。
因为:
小偷之所以能“迎面逃走”,是因为小偷所在列的奇偶性和查看的列不同。
如果两者相同,绝不可能迎面逃走。
所以如果小偷出生在奇数列,你第一遍从左往右扫,那么扫到第1000列之前,一定能抓住他,因为每次都是同奇偶。
如果小偷出生在偶数列,第一次从左往右抓不到他,但是1001次,你监测1000列,你在偶数列,他也在偶数列,
现在从右往左扫,因为你们每步同奇偶,所以一定能在2000步之前抓住他。除非他每次能走2列,但那不可能,因为
那就像他长了翅膀会飞一样。
#include<bits/stdc++.h>using namespace std;#define all(x) (x).begin(), (x).end()#define for0(a, n) for (int (a) = 0; (a) < (n); (a)++)#define for1(a, n) for (int (a) = 1; (a) <= (n); (a)++)typedef long long ll;typedef pair<int, int> pii;const int INF =0x3f3f3f3f;const int n=1000 ;int main(){ printf("2000\n"); for(int x=1;x<=n;x++) { printf("%d %d %d %d\n",x,1,x,2); } for(int x=n;x>=1;x--) { printf("%d %d %d %d\n",x,1,x,2); } return 0;}
0 0
- CodeForces 575DTablecity 奇偶分析
- CodeForces 25A IQ test 唯一奇偶
- CodeForces 25A IQ test 唯一奇偶(简单的题目)
- CodeForces 789C Functions again(奇偶分类与递推)
- 关于逆序数和置换奇偶性质的问题分析
- 巴切奇偶排序网络的原理分析
- 关于算法复杂度的分析与算法奇偶交换
- hdoj1079 Calendar Game(分析奇偶,找规律,博弈)
- codeforces 数论分析题
- Codeforces 512C Fox And Dinner 奇偶建图 网络流
- codeforces 510E Fox And Dinner 奇偶建图+最大流
- Fox And Dinner - CodeForces 510 E dinic 网络流 奇偶匹配
- Codeforces Round #290 (Div. 2)E. Fox And Dinner——最大流 奇偶建图
- codeforces#225-C - Propagating tree-dfs序(奇偶)+线段树
- CODEFORCES 272B Dima and Sequence <简单技巧 + 类比奇偶数>
- Codeforces 512C Fox And Dinner 奇偶建图 网络流
- codeforces Div.2 #840D Leha and another game about graph 顶点权值为度数对应奇偶
- codeforces-510E Fox And Dinner(带限制的二分图多重匹配+奇偶建图+打印路径)
- 运行jar包
- C++头文件的学习
- 硬币表示
- linux系统下批量解压方法汇总
- Git extensions安装
- CodeForces 575DTablecity 奇偶分析
- a5
- c++实验4【项目3:乘法口诀表】
- 如何清理Xcode缓存
- 《战拖有术》读书笔记(X)
- c++之常量(一)
- php文件require()引入注意事项
- JavaScript Boolean(布尔)对象
- Android 灵活的组件-RecyclerView