题目传送门

题意:

你可以询问一个三维坐标,机器会告诉你这个坐标在不在目标圆中,

并且(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. 回收卫星的更多相关文章

  1. 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 秒 内存限制:  ...

  2. EOJ Monthly 2019.2

    题解 A 回收卫星 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/s ...

  3. 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( ...

  4. EOJ Monthly 2019.2 (based on February Selection) F.方差

    题目链接: https://acm.ecnu.edu.cn/contest/140/problem/F/ 题目: 思路: 因为方差是用来评估数据的离散程度的,因此最优的m个数一定是排序后连续的,所以我 ...

  5. EOJ Monthly 2019.2 (based on February Selection) D.进制转换

    题目链接: https://acm.ecnu.edu.cn/contest/140/problem/D/ 题目: 思路: 我们知道一个数在某一个进制k下末尾零的个数x就是这个数整除kx,这题要求刚好末 ...

  6. EOJ Monthly 2019.2 (based on February Selection) D 进制转换 【数学 进制转换】

    任意门:https://acm.ecnu.edu.cn/contest/140/problem/D/ D. 进制转换 单测试点时限: 2.0 秒 内存限制: 256 MB “他觉得一个人奋斗更轻松自在 ...

  7. EOJ Monthly 2019.1 唐纳德先生与这真的是签到题吗 【数学+暴力+multiset】

    传送门:https://acm.ecnu.edu.cn/contest/126/ C. 唐纳德先生与这真的是签到题吗 单测试点时限: 6.0 秒 内存限制: 1024 MB 唐纳德先生在出月赛的过程中 ...

  8. EOJ Monthly 2019.3 A

    A. 钝角三角形 单点时限: 3.0 sec 内存限制: 512 MB QQ 小方以前不会判断钝角三角形,现在他会了,所以他急切的想教会你. 如果三角形的三边长分别为 a, b, c (a≤b≤c), ...

  9. eoj monthly 2019.11

    原题 T1 纸条 题目大意: 给出一个长度为n的字符串,其中m位未知,对于每一位未知的字母,有k个备选字母,最终答案为备选字母按字典序排序后的第x个. 题解: 签到题-- 按照题目意思直接写就可以了. ...

随机推荐

  1. expect自动远程拷贝脚本

    expect自动远程拷贝脚本,利用rsync命令,脚本内容如下: #!/usr/bin/expect -- proc Usage_Exit {self} { puts "" put ...

  2. [洛谷P4438] HNOI2018 道路

    问题描述 W 国的交通呈一棵树的形状.W 国一共有n - 1个城市和n个乡村,其中城市从1到n - 1 编号,乡村从1到n编号,且1号城市是首都.道路都是单向的,本题中我们只考虑从乡村通往首都的道路网 ...

  3. spark-2.1.1 yarn(高可用)搭建

    一.概述 spark分布式搭建方式大致分为三种:standalone.yarn.mesos.三种分类的区别这里就不一一介绍了,不明白可自行了解.standalone是官方提供的一种集群方式,企业一般不 ...

  4. C++的命令行参数(gflag)

    参考:https://www.cnblogs.com/myyan/p/4699940.html 这是一款google开源的命令行参数解析工具,支持从环境变量.配置文件读取参数(可以用gflags代替配 ...

  5. 小程序-登录-token

    1.前端调用wx.login()获取code值 2.前端通过调用wx.getUserInfo获取iv.rawData.signature.encryptedData等加密数据,传递给后端 3.服务器通 ...

  6. 使用 flex 弹性布局 ,相关教程记录

    一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box1{ dis ...

  7. JS&ASPDotNet_大文件上传问题

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  8. luogu P1028 数的计算 x

    P1028 数的计算 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它 ...

  9. 果蝇优化算法(FOA)

    果蝇优化算法(FOA) 果蝇优化算法(Fruit Fly Optimization Algorithm, FOA)是基于果蝇觅食行为的仿生学原理而提出的一种新兴群体智能优化算法. 果蝇优化算法(FOA ...

  10. linux 挂载磁盘指令

    fdisk -l    (先df -h,如果没有xvdb盘信息,则敲这条指令) fdisk /dev/xvdb (进入对话状态,一问一答,结束后要保存w或者删除q) mkfs.ext3 /dev/xv ...