Codeforces Round #504 E. Down or Right
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相关推荐
- Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)切题报告(A-B题)
这是我第二次参加CF比赛,也是第一次写博客,写得不好,望各位大佬海涵. A. Single Wildcard Pattern Matching 原题链接 这道题,这是难到让人无法直视,太水了. 题目大 ...
- Codeforces Round #504 E - Down or Right 交互题
1023E 题意: 交互题.在一个有障碍地图中,问如何走才能从(1,1)走到(n,n),只能向右或者向左走.每次询问两个点,回复你这两个点能不能走通. 思路: 只用最多2*n-2次询问.从(1,1), ...
- Codeforces Round 504
(交互题真神奇,,,我自己瞎写了一发目测样例都没过去就AC了...) (只出了两题的竟然没掉下蓝名真是可怕) A:我的代码太不美观了,放个同学的(因为我是c++63分的蒟蒻所以根本不知道那些函数怎么用 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- 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 ...
- Codeforces Round #270
Codeforces Round #270 题目链接 A:我是筛了下素数.事实上偶数仅仅要输出4和x - 4,奇数输出9和x - 9就可以 B:贪心的策略,把时间排序后.取每k个的位置 C:贪心.每次 ...
- 构造 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 的例子可以 ...
- [Educational Codeforces Round 16]A. King Moves
[Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board ...
最新文章
- javascript有用小功能总结(未完待续)
- .net动态控件的使用(listview ,treeview,tabControl)
- sigprocmask 阻塞进程
- el-table跨页选中
- RHEL6 grub修复
- 罗永浩称赚钱没有太大难度,是凡尔赛还是感慨?
- 牛腩新闻发布系统——触发器使用
- OSI参考模型与排错经验谈
- Guava学习笔记 第6个记录(Immutable(不可变)集合)
- [精华]世界500强面试题----[完整版]
- Linux:红帽操作系统介绍
- 华为OSN3500与路由器混合组网
- factoryreset恢复出厂设置测试
- iOS 常用第三方开源框架介绍
- Python dict字典keys()、values()和items()方法
- 蓝牙简单配对(Simple Pairing)协议及代码流程简述
- 一文讲清:对象存储、文件存储、块存储。绝对好文
- 固态硬盘使用的优化——适用于任何版本的固态
- 注意力机制的分类 | Soft Attention和Hard Attention
- 1. S3C6410 裸机开发环境
热门文章
- java和python可以在一个项目中同时使用么-可以同时用python和java开发一个app吗?...
- python和c学习-Cpython学习一:入门
- python读取txt数据-python读取文本文件数据
- python下载教程win10-win10系统下如何安装Python软件
- python编写爬虫的步骤-python学习: 写网络爬虫程序的三个难点
- python精通-11周精通python计划(完结)-网易云课堂
- 如何用python创建一个下载网站-用Python写一个简单的网页下载
- python创建csv文件并写入-Python 读写 CSV
- python语言必背代码-好用到哭!请记住这20段Python代码
- 学好python需要什么基础-自学Python需要怎样的基础和准备