CF1100D Dasha and Chess
题目地址:CF1100D Dasha and Chess
这是我的第一道交互题
思路不难,主要讲讲这条语句:
fflush(stdout);
stdout是标准输出的意思。因为有时候,我们输出到stdout的内容不能及时输出,使因为stdout的缓冲区没有满或者其他原因,fflush(stdout)就是强迫把stdout内容输出并清空stdout。
代码:
#include <bits/stdc++.h>
#define pii pair<int, int>
#define x first
#define y second
using namespace std;
const int N = 1006, K = 666;
pii a, b[K+6];
bool v[N][N];
int c[6];
inline void upd(int dx, int dy) {
a.x += dx;
a.y += dy;
if (v[a.x][a.y]) a.x -= dx;
printf("%d %d\n", a.x, a.y);
fflush(stdout);
int o, p, q;
scanf("%d %d %d", &o, &p, &q);
if (o == -1 && p == -1 && q == -1) exit(0);
v[b[o].x][b[o].y] = 0;
v[b[o].x=p][b[o].y=q] = 1;
}
int main() {
cin >> a.x >> a.y;
for (int i = 1; i <= K; i++) {
scanf("%d %d", &b[i].x, &b[i].y);
v[b[i].x][b[i].y] = 1;
}
while (a.x > 500) upd(-1, 0);
while (a.x < 500) upd(1, 0);
while (a.y > 500) upd(0, -1);
while (a.y < 500) upd(0, 1);
for (int i = 1; i <= K; i++) {
int k = 0;
if (b[i].x < 500) k |= 2;
if (b[i].y < 500) k |= 1;
c[k]++;
}
int t = 0, w = c[0];
for (int i = 1; i < 4; i++)
if (c[i] < w) w = c[t=i];
int dx = (t >> 1) ? 1 : -1, dy = (t & 1) ? 1 : -1;
while (1) upd(dx, dy);
return 0;
}
CF1100D Dasha and Chess的更多相关文章
- D. Dasha and Chess(交互题)
题目链接:http://codeforces.com/contest/1100/problem/D 题目大意:给你一个999*999的图,然后有666个黑色旗子,一个白色棋子,每一次白色棋子只能在它附 ...
- Codeforces 1100 - A/B/C/D/E/F - (Undone)
链接:https://codeforces.com/contest/1100 A - Roman and Browser - [暴力枚举] 题意:浏览器有 $n$ 个网页,编号 $1 \sim n$, ...
- Codeforces Round #532
以后不放水题了 C.NN and the Optical Illusion 复习一下高中数学即可 $\frac{ans}{ans+r}=\sin \frac{\pi}{n}$ 解方程 #include ...
- Codeforces Round #532 (Div. 2) Solution
A. Roman and Browser 签到. #include <bits/stdc++.h> using namespace std; ]; int get(int b) { ]; ...
- Codeforces Round #532 (Div. 2) 题解
Codeforces Round #532 (Div. 2) 题目总链接:https://codeforces.com/contest/1100 A. Roman and Browser 题意: 给出 ...
- hdu4405 Aeroplane chess
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- HDU 5742 Chess SG函数博弈
Chess Problem Description Alice and Bob are playing a special chess game on an n × 20 chessboard. ...
- POJ2425 A Chess Game[博弈论 SG函数]
A Chess Game Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 3917 Accepted: 1596 Desc ...
- HDU 4832 Chess (DP)
Chess Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
随机推荐
- C# 实现身份验证之WebApi篇
今天再来总结关于如何实现WebApi的身份验证,以完成该系列所有文章,WebApi常见的实现方式有:FORM身份验证.集成WINDOWS验证.Basic基础认证.Digest摘要认证 第一种:FOR ...
- 为什么wait()和notify()属于Object类
关于wait()暂停的是持有锁的对象,所以想调用wait()必须为:对象.wait(); notify()唤醒的是等待锁的对象,调用:对象.notify(); 如下: Object obj = new ...
- qml: 另类图像轮播;
一般来说,图像轮播都是采用ListView等model进行设计, 比较方便. 这里展示我自己设计的图像轮播 方案, 仅采用两个QImage实现: 下面展示代码以及简述:(注: 以下代码为本人原创, ...
- Storm中重要对象的生命周期
Spout方法调用顺势 declareOutputFields()(调用一次) open() (调用一次) activate() (调用一次) nextTuple() (循环调用 ) deactiva ...
- java io系列07之 FileInputStream和FileOutputStream
本章介绍FileInputStream 和 FileOutputStream 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_07.html File ...
- C#设计模式(14)——模板方法模式
1.模板方法模式介绍 提到模板我们经常会想到简历模板/PPT模板等,以简历模板为例,不同的人可以使用一样的简历模板,在填充内容时根据自己的名字/工作经历等填写自己的内容,从而形成不同的简历.在OO中模 ...
- Uncaught DOMException: Failed to construct 'WebSocket': The URL '/qibao/websocket/service1000' is invalid.
出现这个问题是构造 WebSocket失败了. js代码改成 //实现化WebSocket对象,指定要连接的服务器地址与端口 建立连接//等同于socket = new WebSocket(path+ ...
- bash guide
Table of Contents Basic Operations 1.1. File Operations 1.2. Text Operations 1.3. Directory Operatio ...
- 解决Lost connection to MySQL server during query错误方法
昨天使用Navicat for MySQL导入MySQL数据库的时候,出现了一个严重的错误,Lost connection to MySQL server during query,字面意思就是在查询 ...
- HDU 1019(求最小公倍数 **)
题意是求一组数的最小公倍数,不用存,每次输入即刻处理即可. 补充一点:两个自然数的最大公约数与它们的最小公倍数的乘积等于这两个数的乘积. 代码如下: #include <bits/stdc++. ...