CF1063C Dwarves, Hats and Extrasensory Abilities

CF1063C Dwarves, Hats and Extrasensory Abilities

题意:

首先题目会给出 n ,表示要输入多少点。 然后你输出n 个点的坐标,每输出一个点会告诉你这个点的颜色是黑色或者白色。 最后你需要输出两个点的坐标代表一条直线,这条直线能够将你刚刚给出的点分成两份,一份全都是黑色的点,另一份全都是白色的点。

所有的点不能重叠,所有点不能和最后输出的直线重叠,每个点的黑白是随机给出的,你需要保证你输出的数据有解并输出解。

题解:

基本上交互都跟二分有关系
我一开始一点头绪都没有,但我们可以这样想,我们可以在一条线上选黑白点,然后不断询问中点位置的颜色,不断二分距离范围。
就比如如果(0,0)是白色,下一次就问(1e9/2,0),如果是黑色,就问(1e9/2/2,0)是什么颜色,这样二分找,可以将黑白分隔开,最后答案就是最后两个黑白快的中点
log2(1e9)=29.897353,n最大30,有可能会被卡?我提交后还真是,在59这个点疯狂被卡,我猜应该是二分到最后刚好用完没地方了,导致最后答案与某个黑白块重叠,这咋整?
我突然想到一个方法,我们最后的答案想的是二分最后一下,得到一个整数解,但题目要求你输出的是直线,而这个直线与黑白所在直线的交点不用是整数点,所以我们可以输出最后一个白块下方的点,最后一个黑块上方的点,这样的直线也正好平分黑白点,而且不会占用整数点
在这里插入图片描述

代码:

#include <bits/stdc++.h>
#include <unordered_map>
#define debug(a, b) printf("%s = %d\n", a, b);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
clock_t startTime, endTime;
//Fe~Jozky
const ll INF_ll= 1e18;
const int INF_int= 0x3f3f3f3f;
void read(){};
template <typename _Tp, typename... _Tps> void read(_Tp& x, _Tps&... Ar)
{x= 0;char c= getchar();bool flag= 0;while (c < '0' || c > '9')flag|= (c == '-'), c= getchar();while (c >= '0' && c <= '9')x= (x << 3) + (x << 1) + (c ^ 48), c= getchar();if (flag)x= -x;read(Ar...);
}
template <typename T> inline void write(T x)
{if (x < 0) {x= ~(x - 1);putchar('-');}if (x > 9)write(x / 10);putchar(x % 10 + '0');
}
void rd_test()
{
#ifdef ONLINE_JUDGE
#elsestartTime = clock ();freopen("data.in", "r", stdin);
#endif
}
void Time_test()
{
#ifdef ONLINE_JUDGE
#elseendTime= clock();printf("\nRun Time:%lfs\n", (double)(endTime - startTime) / CLOCKS_PER_SEC);
#endif
}
map<int,int>mp;
int main()
{rd_test();int n;cin>>n;int l=0,r=1e9;printf("0 1\n");mp[0]=1;fflush(stdout);int lf=-1,f=-1,rf=-1;string s;cin>>s;if(s=="black")lf=0;else lf=1;for(int i=1;i<n;i++){int mid=l+r+1>>1;printf("%d 1\n",mid);fflush(stdout);mp[mid]=1;cin>>s;if(s=="black")f=0;else f=1;if(f==lf)l=mid;else if(f==rf)r=mid;else if(rf==-1){rf=f;r=mid;}}printf("%d %d %d %d\n",l,0,r,2);//Time_test();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blazor——Asp.net core的新前端框架

Blazor是微软在Asp.net core 3.0中推出的一个前端MVVM模型&#xff0c;它可以利用Razor页面引擎和C#作为脚本语言来构建WEB页面&#xff0c;如下代码简单演示了它的基本功能&#xff1a;和Angular JS和VUE的模型非常类似&#xff0c;Blazor 支持大多数应用所需的核心方案&#…

CF1149B Three Religions

CF1149B Three Religions 题意&#xff1a; 给定长度为 n 的母串和三个子串s1,s2,s3s_1,s_2,s_3s1​,s2​,s3​ 。初始时子串均为空。有 q 次询问。你需要支持两种操作&#xff1a;向某个子串末尾添加一个字母&#xff0c;或者删去某个子串末尾的字母。在每次操作后&#xff…

【译文】领域模型的五个特征

我在这篇博客文章中&#xff0c;我试图给领域模型下一个非常合适的定义&#xff0c;我发现我的这些定义都不太妥当&#xff0c;不过&#xff0c;我们还是可以先来看一下wiki百科对领域驱动模型下的定义&#xff1a;问题解决和软件工程中的领域模型可以被认为是感兴趣的领域&…

Codeforces Round #556 (Div. 1Div. 2)

Codeforces Round #556 (Div. 1&&Div. 2) 题号题目知识点AStock Arbitraging贪心BTiling Challenge贪心CPrefix Sum Primes构造DThree Religions线性dpETree Generator™FAbandoning RoadsGElection Promises

使用ASP.NET Core 实现Docker的HealthCheck指令

写在前面HealthCheck 不仅是对应用程序内运行情况、数据流通情况进行检查&#xff0c; 还包括应用程序对外部服务或依赖资源的健康检查。健康检查通常是以暴露应用程序的HTTP端点的形式 实施&#xff0c;可用于配置健康探测的的场景有 &#xff1a;容器或负载均衡器 探测应用状…

VS Code 中有哪些好用的 Azure 插件?

在之前的文章中&#xff0c;我们提到了 Amazon、Google、IBM、Red Hat、Salesforce、Pivotal 等大厂都在 VS Code 中有提供相应的开发工具&#xff1a;亚马逊上了 VS Code 的船&#xff0c;还有哪些大厂也上了船&#xff1f;微软必定更是把 VS Code 作为其最重要的开发者平台了…

CF1592E Bored Bakry

CF1592E Bored Bakry 题意&#xff1a; 给你长度为n的数组a&#xff0c;现在定义一段区间[l,r]为good&#xff0c;如果al&al1&...&ar>al⊕al1⊕...⊕ara_{l}\& a_{l1}\&...\&a_{r}>a_{l}⊕a_{l1}⊕...⊕a_{r}al​&al1​&...&ar​&…

邀请 | 关于微软容器服务,你需要知道的二三事

容器是近年来特别火的话题&#xff0c;那么&#xff0c;什么是容器&#xff1f;为什么我们需要容器服务&#xff1f;微软容器服务特点是什么&#xff1f;今天我们用一种特殊的方式为大家介绍这三大话题。什么是容器这个部分&#xff0c;我们用一个故事进行开场。很久以前&#…

Codeforces Round #746 (Div. 2)

Codeforces Round #746 (Div. 2) 题号题目难度AGamer HemoseBHemose ShoppingCBakry and PartitioningDHemose in ICPC ?EBored Bakry二进制思想F1Alice and Recoloring 1F2Alice and Recoloring 2

CF1592D Hemose in ICPC ?

CF1592D Hemose in ICPC ? 题意&#xff1a; 给你一棵n个节点的树&#xff0c;定义dis(a,b)a,b两点之间路径的gcd的最大值 最多可以询问12次&#xff0c;每次询问给出一个点集合&#xff0c;系统返回当前点集的所有点对中的最大Dist&#xff0c;最终需要输出a&#xff0c;b两…

UWP 推荐 | 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10

前不久&#xff0c;本公号作者 Bravo Yeung 写了一篇不错的关于 RSS 的文章 .Net开发者必知的技术类RSS订阅指南。RSS 现在用的人很少了&#xff0c;而且就算是我&#xff0c;也不过是在一周前才开始正视 RSS 。只因为接触到了一个很好很强大的社区 RSS Hub &#xff0c;当时看…

King Gym - 102471H

King Gym - 102471H 题意&#xff1a; 给你一个数组b&#xff0c;让你找到一个最长的最长的king子序列&#xff0c;如果长度大于等于n/2&#xff0c;输出长度值&#xff0c;否则输出-1 一个序列(a1,a2,...,an)(a_{1},a_{2},...,a_{n})(a1​,a2​,...,an​)是king序列当且仅当…

常见跨域解决方案以及Ocelot 跨域配置

常见跨域解决方案以及Ocelot 跨域配置Intro我们在使用前后端分离的模式进行开发的时候&#xff0c;如果前端项目和api项目不是一个域名下往往会有跨域问题。今天来介绍一下我们在Ocelot网关配置的跨域。什么是跨域跨域:浏览器对于javascript的同源策略的限制,例如a.cn下面的js不…

E - Flow Gym - 102471E

E - Flow Gym - 102471E 题意&#xff1a; n个点&#xff0c;m条边&#xff0c;从点1到点n有k条相同长度的路径&#xff0c;每个边都有对应的容量&#xff0c;你可以进行任意次操作&#xff0c;每次将一个边的容量-1&#xff0c;将另一个边的容量1&#xff0c;问最少操作多少…

解读大内老A的《.NET Core框架本质》

老A说的一句话让我很受启发&#xff0c;想要深入了解框架&#xff0c;你要把精力聚焦在架构设计的层面来思考问题。而透彻了解底层原理&#xff0c;最好的笨办法就是根据原理对框架核心进行重建或者说再造。看起来没有捷径&#xff0c;也是最快的捷径。相信很多读者已经看过老A…

2019 ICPC Asia-East Continent Final

2019 ICPC Asia-East Continent Final 题号题目知识点ACity贪心BBlack and WhiteCDirichlet kkk-th rootDFireEFlow思维FGameGHappinessHKing随机思维IMoonJPermutationKAll Pair Maximum FlowLTravelMValue状压贪心

Mono和.NET Core 从比翼双飞到合体

.NET 开源之路就是 Mono和.NET Core 从比翼双飞到合体&#xff1a;2001年12月-2002年2月。一个新的平台诞生了。与惠普、英特尔和其他公司一起, 创建了 ECMA-335 标准, 该标准定义了支持多种编程语言的公共语言基础结构&#xff0c;C# 和 Visual Basic. Net。 F # 于2007年晚些…

7-3 打怪升级 (25 分)

7-3 打怪升级 (25 分) 题意&#xff1a; 很多游戏都有打怪升级的环节&#xff0c;玩家需要打败一系列怪兽去赢取成就和徽章。这里我们考虑一种简单的打怪升级游戏&#xff0c;游戏规则是&#xff0c;给定有 N 个堡垒的地图&#xff0c;堡垒之间有道路相连&#xff0c;每条道路…

Skywalking部署常见问题以及注意事项

Skywalking部署常见问题以及注意事项IntroSkyWalking 创建与2015年&#xff0c;提供分布式追踪功能。从5.x开始&#xff0c;项目进化为一个完成功能的Application Performance Management系统。他被用于追踪、监控和诊断分布式系统&#xff0c;特别是使用微服务架构&#xff0c…

CF1486B Eastern Exhibition

CF1486B Eastern Exhibition 题意&#xff1a; 二维平面上有 n 个点&#xff0c;要找一个点&#xff0c;使得所有点到它的曼哈顿距离&#xff08; x 和 y 的坐标差距之和&#xff09;之和最小。请问有几个满足该要求的点&#xff1f; 题解&#xff1a; 我们先考虑一维的情况…