题目链接:http://codeforces.com/contest/1100/problem/D

题目大意:给你一个999*999的图,然后有666个黑色旗子,一个白色棋子,每一次白色棋子只能在它附近的八个方位行进一步,而黑色棋子可以像象棋里面的车一样行走,然后首先输入白色棋子的方位,然后再给你666个黑色棋子的方位,你先走,然后黑色棋子再走,你走的每一步黑色棋子都能看见,然后问你怎么样才能胜利?胜利的条件是黑色棋子和白色棋子再同一行或者同一列。

具体思路:借鉴了别人的思路,我们可以首先让这个棋子回到(500,500)这个坐标,然后再看一下(1,499)*(1,499),(1,499)*(500,999),(500,999)*(1,499),(500,999)*(500,999)这四块区域中哪一块的的黑色棋子最少,那么我们就以起点(500,500)开始,到达最少的这块区域的对角的那块区域的角。因为我们需要使得白色有最大的可能性获胜,所以我们需要找到线最密集的地方。

注意:在输出的时候,如果是printf("%d %d\n")的话,我们需要在这个地方的下面再加一句fflush(stdout),这是为了清除缓存区的,还有一种方法可以避免这个的出现,就是直接用cout<<x<<" "<<y<<endl;endl能自动刷新缓存区,不需要再手动清除,因为说到底。"\n",就只是个换行。

AC代码:

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <ctime>
#include <algorithm>
#include <map>
#include <vector>
#include <queue>
using namespace std;
# define ll long long
# define pi acos(-1.0)
const int maxn = +;
int xx[maxn],yy[maxn];
int Map[maxn][maxn];
int q[];
void cal(int t1,int t2,int x,int y)
{
while(x!=t1||y!=t2)
{
if(y<t2)
y++;
else
y--;
if(x<t1&&Map[x+][y]==)
{
x++,Map[x][y]=;
}
else if(x>t1&&Map[x-][y]==)
{
x--,Map[x][y]=;
}
int num,x1,y1;
cout<<x<<" "<<y<<endl;
// printf("%d %d\n",x,y);
// fflush(stdout);
scanf("%d %d %d",&num,&x1,&y1);
if(num==-)
return ;
Map[xx[num]][yy[num]]=;
xx[num]=x1,yy[num]=y1;
Map[x1][y1]=;
}
}
int main()
{
int x,y;
scanf("%d %d",&x,&y);
for(int i=; i<=; i++)
{
scanf("%d %d",&xx[i],&yy[i]);
Map[xx[i]][yy[i]]=;
}
cal(,,x,y);
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
if(Map[i][j]==)
continue;
if(i<=&&j<=)
q[]++;
else if(i<=&&j>=)
q[]++;
else if(i>=&&j<=)
q[]++;
else
q[]++;
}
}
int maxx=min(q[],min(min(q[],q[]),q[]));
if(maxx==q[])
{
cal(,,,);
}
else if(maxx==q[])
{
cal(,,,);
}
else if(maxx==q[])
{
cal(,,,);
}
else
cal(,,,);
return ;
}

D. Dasha and Chess(交互题)的更多相关文章

  1. CF1100D Dasha and Chess

    题目地址:CF1100D Dasha and Chess 这是我的第一道交互题 思路不难,主要讲讲这条语句: fflush(stdout); stdout是标准输出的意思.因为有时候,我们输出到std ...

  2. 交互题[CF1103B Game with modulo、CF1019B The hat、CF896B Ithea Plays With Chtholly]

    交互题就是程序与电脑代码的交互. 比如没有主函数的程序,而spj则给你一段主函,就变成了一个整体函数. 还有一种就是程序和spj之间有互动,这个用到fflush(stdout);这个函数就可以实现交互 ...

  3. CF1114E Arithmetic Progression(交互题,二分,随机算法)

    既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...

  4. Codeforces 1137D - Cooperative Game - [交互题+思维题]

    题目链接:https://codeforces.com/contest/1137/problem/D 题意: 交互题. 给定如下一个有向图: 现在十个人各有一枚棋子(编号 $0 \sim 9$),在不 ...

  5. Gym - 101375H MaratonIME gets candies 交互题

    交互题介绍:https://loj.ac/problem/6 题意:输出Q X ,读入><= 来猜数,小于50步猜出就算过样例 题解:根本不需要每次输出要打cout.flush()... ...

  6. Codeforces Round #523 (Div. 2) F. Katya and Segments Sets (交互题+思维)

    https://codeforces.com/contest/1061/problem/F 题意 假设存在一颗完全k叉树(n<=1e5),允许你进行最多(n*60)次询问,然后输出这棵树的根,每 ...

  7. Codeforces Round #371 (Div. 2) D. Searching Rectangles 交互题 二分

    D. Searching Rectangles 题目连接: http://codeforces.com/contest/714/problem/D Description Filya just lea ...

  8. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem K. KMC Attacks 交互题 暴力

    Problem K. KMC Attacks 题目连接: http://codeforces.com/gym/100714 Description Warrant VI is a remote pla ...

  9. CF1153E Serval and Snake(交互题)

    题目 CF1153E Serval and Snake 很有意思的一道交互题 做法 我们观察到,每次查询一行,当这一行仅包含一端是返回的答案是奇数 根据这个性质查询每一行每一列,我们大体能知道两端的位 ...

  10. Subway Pursuit (二分)(交互题)

    题目来源:codeforces1039B Subway Pursuit 题目大意: 在1到n里有一个运动的点,要求找到这个点,每次可以查询一个区间内有没有这个点,每次这个点往左或者往右移动1到k个位置 ...

随机推荐

  1. 3月web前端面试小结

    说一下box-sizing的应用场景 box-sizing的属性值分为两个,border-box和content-box,其中, border-box:width=content+padding+bo ...

  2. 作业五:分析system_call中断处理过程

    分析system_call中断处理过程 一.MesuSO增加getpid和getpid-asm 二.使用GDB跟踪系统调用内核函数sys_getpid 分析system_call中断处理过程 使用gd ...

  3. 每日scrum(5)

    进入冲刺第五天,软件的界面设计成为主打,收集学校的很多美图是我们组的任务: 问题在于软件已很难有很大的改进,大方向也都是变不了的 任务看板: 燃尽图:

  4. 修改servlet的模板代码

    实际开发中,这些生成的代码和注释一般我们都用不到的,每次都要手工删除这些注释和代码,很麻烦.下面以MyEclipse 2014(其实版本通用的,都可以修改)为例进行说明如何修改Servlet的模板代码 ...

  5. java 多维数据定义

            //一维数组定义与输出class  less02{ public static void main(String[] args)  {  int stu[]=new int[]{1,2 ...

  6. Gerrit 配置同步到多个仓库

    1.修改replication.config文件 [remote "xxx"] projects = Yilule.Core.Service #aliyun仓库 url = git ...

  7. C语言入门:01.C语言概述

    一.计算机和软件常识 1.计算机运行原理 (1)硬件基本组成:硬盘.内存.CPU (2)个部件之间的运作协调(下图)

  8. TCP/IP之大明内阁 转

    原创: 刘欣 码农翻身 2016-11-02 本文是<TCP/IP之大明王朝邮差>的前传,  讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的.大明天启年间,  明熹宗朱由校醉心于木工 ...

  9. Transactional注解中常用参数说明

    @Transactional注解中常用参数说明 参 数 名 称                                      功 能 描 述readOnly                 ...

  10. 从0到1搭建基于Kafka、Flume和Hive的海量数据分析系统(一)数据收集应用

    大数据时代,一大技术特征是对海量数据采集.存储和分析的多组件解决方案.而其中对来自于传感器.APP的SDK和各类互联网应用的原生日志数据的采集存储则是基本中的基本.本系列文章将从0到1,概述一下搭建基 ...