EOJ Monthly 2019.2 A. 回收卫星
题意:
你可以询问一个三维坐标,机器会告诉你这个坐标在不在目标圆中,
并且(0,0,0)是一定在圆上的,叫你求出圆心坐标
思路:
因为(0,0,0)一定在圆上,所以我们可以把圆心分成3个坐标轴上
就是求x的时候,其他坐标都为0,而且可以确定一个在x的正半轴,一个
在负半轴,所以我们可以二分求出
另外注意数据(l+r)是数据会超过long long
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF=4e9; void ask(ll x,ll y,ll z)
{
printf("0 %lld %lld %lld\n",x,y,z);
fflush(stdout);
}
ll xx0()
{
ll l=-INF,r=;
ll op,ans;
while(l<=r)
{
ll mid=(l+r)>>;
ask(mid,,);
scanf("%d",&op);
if(op==)
l=mid+;
else r=mid-,ans=mid;
}
return ans;
}
ll xx1()
{
ll l=,r=INF;
ll op,ans;
while(l<=r)
{
ll mid=l+r>>;
ask(mid,,);
scanf("%d",&op);
if(op==)
r=mid-;
else l=mid+,ans=mid;
}
return ans;
}
ll yy0()
{
ll l=-INF,r=;
ll op,ans;
while(l<=r)
{
ll mid=l+r>>;
ask(,mid,);
scanf("%d",&op);
if(op==)
l=mid+;
else r=mid-,ans=mid;
}
return ans;
}
ll yy1()
{
ll l=,r=INF;
ll op,ans;
while(l<=r)
{
ll mid=l+r>>;
ask(,mid,);
scanf("%d",&op);
if(op==)
r=mid-;
else l=mid+,ans=mid;
}
return ans;
}
ll zz0()
{
ll l=-INF,r=;
ll op,ans;
while(l<=r)
{
ll mid=l+r>>;
ask(,,mid);
scanf("%d",&op);
if(op==)
l=mid+;
else r=mid-,ans=mid;
}
return ans;
}
ll zz1()
{
ll l=,r=INF;
ll op,ans;
while(l<=r)
{
ll mid=l+r>>;
ask(,,mid);
scanf("%d",&op);
if(op==)
r=mid-;
else l=mid+,ans=mid;
}
return ans;
}
int main()
{
ll x0,y0,x1,y1,z0,z1;
x0=xx0();
x1=xx1();
y0=yy0();
y1=yy1();
z0=zz0();
z1=zz1();
printf("1 %lld %lld %lld\n",(x0+x1)/,(y0+y1)/,(z0+z1)/); return ;
}
#include<bits/stdc++.h> #define ll long long using namespace std; const ll INF=2e9; ll a[]; void ask(int tp,int m) { for(int i=; i<=; i++)a[i]=; a[tp]=m; printf("0 %lld %lld %lld\n",a[],a[],a[]); fflush(stdout); } ll go(int tp) { ll l=,r=INF,mid,ans1=,ans2=; int op; while(l<=r) { mid=l+(r-l)/; ask(tp,mid); scanf("%d",&op); if(op)l=mid + ,ans1 = mid; else r=mid - ; } l=-INF,r=; while(l<=r) { mid=l+(r-l)/; ask(tp,mid); scanf("%d",&op); if(op)r=mid-,ans2 = mid; else l=mid+; } return (ans1+ans2)/; } int main() { ll x,y,z; x=go(); y=go(); z=go(); printf("1 %lld %lld %lld\n",x,y,z); return ; }
EOJ Monthly 2019.2 A. 回收卫星的更多相关文章
- EOJ Monthly 2019.2 题解(B、D、F)
EOJ Monthly 2019.2 题解(B.D.F) 官方题解:https://acm.ecnu.edu.cn/blog/entry/320/ B. 解题 单测试点时限: 2.0 秒 内存限制: ...
- EOJ Monthly 2019.2
题解 A 回收卫星 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/s ...
- EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)
传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...
- EOJ Monthly 2019.2 (based on February Selection) F.方差
题目链接: https://acm.ecnu.edu.cn/contest/140/problem/F/ 题目: 思路: 因为方差是用来评估数据的离散程度的,因此最优的m个数一定是排序后连续的,所以我 ...
- EOJ Monthly 2019.2 (based on February Selection) D.进制转换
题目链接: https://acm.ecnu.edu.cn/contest/140/problem/D/ 题目: 思路: 我们知道一个数在某一个进制k下末尾零的个数x就是这个数整除kx,这题要求刚好末 ...
- EOJ Monthly 2019.2 (based on February Selection) D 进制转换 【数学 进制转换】
任意门:https://acm.ecnu.edu.cn/contest/140/problem/D/ D. 进制转换 单测试点时限: 2.0 秒 内存限制: 256 MB “他觉得一个人奋斗更轻松自在 ...
- EOJ Monthly 2019.1 唐纳德先生与这真的是签到题吗 【数学+暴力+multiset】
传送门:https://acm.ecnu.edu.cn/contest/126/ C. 唐纳德先生与这真的是签到题吗 单测试点时限: 6.0 秒 内存限制: 1024 MB 唐纳德先生在出月赛的过程中 ...
- EOJ Monthly 2019.3 A
A. 钝角三角形 单点时限: 3.0 sec 内存限制: 512 MB QQ 小方以前不会判断钝角三角形,现在他会了,所以他急切的想教会你. 如果三角形的三边长分别为 a, b, c (a≤b≤c), ...
- eoj monthly 2019.11
原题 T1 纸条 题目大意: 给出一个长度为n的字符串,其中m位未知,对于每一位未知的字母,有k个备选字母,最终答案为备选字母按字典序排序后的第x个. 题解: 签到题-- 按照题目意思直接写就可以了. ...
随机推荐
- wepy-开发总结(功能点)
开发小程序中,遇到的wepy的几点坑,记录一下; 更详细的项目总结记录请见我的个人博客:https://fanghongliang.github.io/ 1.定时器: 在页面中有需要用到倒计时或者其他 ...
- pyqt5-橡皮筋控件QRubberBand
提供一个矩形或线来指示选择或边界 一般结合鼠标事件一同协作 继承于 QWidget import sys from PyQt5.QtWidgets import QApplication, QWidg ...
- 【华容道】题解(NOIP2013提高组day2)
分析 这道题很容易想到令f[x][y][x1][y1]表示空白块在(x,y).指定棋子在(x1,y1)时的最少步数,让空白块和四周的棋子交换,当空白块要和指定棋子交换时,把指定棋子移动,搞一下BFS就 ...
- 触发器insert
USE [stalentzx]GO/****** Object: Trigger [dbo].[GZ_HISTORY_INSERT] Script Date: 2019/12/24 13:11:40 ...
- Spring AOP expose-proxy
写在前面 expose-proxy.为是否暴露当前代理对象为ThreadLocal模式. SpringAOP对于最外层的函数只拦截public方法,不拦截protected和private方法(后续讲 ...
- RSA和AES工具类
AESUtil import com.xxx.common.BssException; import com.xxx.common.constants.CommonConstants; import ...
- 测试常用linux命令1
进程相关: 1,查看所有进程(包含历史进程): ps -ef 各个参数的含义依次是uid,pid,ppid,c(cpu利用率),stime(进程启动时间),tty,time,cmd 2,动态查看进程t ...
- mpvue 未找到app.json入口文件
[情况1] 通过 vue init mpvue/mpvue-quickstart myproject 创建一个mpvue项目,发现项目中没有app.json文件. 解决:npm run dev 编译一 ...
- PCIE手札
PCIE兼容了大部分PCI总线的特性,区别在于使用串行差分总线代替了并行总线,并实现了协议分层.PCIE的带宽与LANE数量和时钟频率相关,时钟频率支持2.5G和5G,Lane支持x1/x2/x4/x ...
- Fragment 基础使用及重叠问题
一 基本使用 Fragment依附于Activity使用,方面我们在一个页面里面切换显示多屏内容. Activity管理Fragment有两种方式,通过FragmentTransacation这个类来 ...