Codeforces Round #504 E. Down or Right

题目描述:交互题。 有一个\(n \times n\)的方阵,有一些格子是障碍,从\((1, 1)\)出发,只能向右向下走,能走到\((n, n)\),你有\(4n\)次询问,每次询问\((r_1, c_1)\)能否走到\((r_2, c_2)\),但这两个点的曼哈顿距离要大于\(n-1\),最后输出一条从\((1, 1)\)到\((n, n)\)的路径。

solution
从\((1, 1)\)出发,优先向下走,向下走能到\((n, n)\)就向下走,走到对角线。然后从\((n, n)\)出发,优先向左走,\((1, 1)\)能到左边的点就向左走,走到对角线,这样构造能保证最终在对角线的点一定重合。
因为优先向下走能保证\(D_1-R_1\)最大,那后面一半的\(R_2-D_2=(n-1-R_1)-(n-1-D_1)=D_1-R_1\)最大,而优先向左走正是保证\(R_2-D_2\)最大,因此对角线的点一定重合。

时间复杂度:\(O(2n)\)

#include <bits/stdc++.h>
using namespace std;int n;
vector<char> ans;
char st[10];bool ask(int r1, int c1, int r2, int c2)
{printf("? %d %d %d %d\n", r1, c1, r2, c2);fflush(stdout);scanf("%s", st);return st[0]=='Y';
}
void solve()
{scanf("%d", &n);int x=1, y=1;for (int i=1; i<=n-1; ++i)if (ask(x+1, y, n, n)) x++, ans.push_back('D');else y++, ans.push_back('R');x=n, y=n;for (int i=1; i<=n-1; ++i)if (ask(1, 1, x, y-1)) y--, ans.push_back('R');else x--, ans.push_back('D');printf("! ");for (int i=0; i<n-1; ++i) putchar(ans[i]);for (int i=n*2-2-1; i>=n-1; --i) putchar(ans[i]);puts("");fflush(stdout);
}
int main()
{solve();return 0;
}

转载于:https://www.cnblogs.com/GerynOhenz/p/9498978.html

Codeforces Round #504 E. Down or Right相关推荐

  1. Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)切题报告(A-B题)

    这是我第二次参加CF比赛,也是第一次写博客,写得不好,望各位大佬海涵. A. Single Wildcard Pattern Matching 原题链接 这道题,这是难到让人无法直视,太水了. 题目大 ...

  2. Codeforces Round #504 E - Down or Right 交互题

    1023E 题意: 交互题.在一个有障碍地图中,问如何走才能从(1,1)走到(n,n),只能向右或者向左走.每次询问两个点,回复你这两个点能不能走通. 思路: 只用最多2*n-2次询问.从(1,1), ...

  3. Codeforces Round 504

    (交互题真神奇,,,我自己瞎写了一发目测样例都没过去就AC了...) (只出了两题的竟然没掉下蓝名真是可怕) A:我的代码太不美观了,放个同学的(因为我是c++63分的蒟蒻所以根本不知道那些函数怎么用 ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

  6. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  7. Codeforces Round #270

    Codeforces Round #270 题目链接 A:我是筛了下素数.事实上偶数仅仅要输出4和x - 4,奇数输出9和x - 9就可以 B:贪心的策略,把时间排序后.取每k个的位置 C:贪心.每次 ...

  8. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  9. [Educational Codeforces Round 16]A. King Moves

    [Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board ...

最新文章

  1. javascript有用小功能总结(未完待续)
  2. .net动态控件的使用(listview ,treeview,tabControl)
  3. sigprocmask 阻塞进程
  4. el-table跨页选中
  5. RHEL6 grub修复
  6. 罗永浩称赚钱没有太大难度,是凡尔赛还是感慨?
  7. 牛腩新闻发布系统——触发器使用
  8. OSI参考模型与排错经验谈
  9. Guava学习笔记 第6个记录(Immutable(不可变)集合)
  10. [精华]世界500强面试题----[完整版]
  11. Linux:红帽操作系统介绍
  12. 华为OSN3500与路由器混合组网
  13. factoryreset恢复出厂设置测试
  14. iOS 常用第三方开源框架介绍
  15. Python dict字典keys()、values()和items()方法
  16. 蓝牙简单配对(Simple Pairing)协议及代码流程简述
  17. 一文讲清:对象存储、文件存储、块存储。绝对好文
  18. 固态硬盘使用的优化——适用于任何版本的固态
  19. 注意力机制的分类 | Soft Attention和Hard Attention
  20. 1. S3C6410 裸机开发环境

热门文章

  1. java和python可以在一个项目中同时使用么-可以同时用python和java开发一个app吗?...
  2. python和c学习-Cpython学习一:入门
  3. python读取txt数据-python读取文本文件数据
  4. python下载教程win10-win10系统下如何安装Python软件
  5. python编写爬虫的步骤-python学习: 写网络爬虫程序的三个难点
  6. python精通-11周精通python计划(完结)-网易云课堂
  7. 如何用python创建一个下载网站-用Python写一个简单的网页下载
  8. python创建csv文件并写入-Python 读写 CSV
  9. python语言必背代码-好用到哭!请记住这20段Python代码
  10. 学好python需要什么基础-自学Python需要怎样的基础和准备