题目传送门

题意:

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

并且(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. 链接收藏:bullet物理引擎不完全指南

    这个也是博客园的文章,编辑得也很好,就不copy了,结尾还有PDF: https://www.cnblogs.com/skyofbitbit/p/4128347.html 完结

  2. Java——网络

    [通信协议分层]   (1)为什么要分层?  

  3. 【bzoj1336/1337/2823】最小圆覆盖

    题目描述: 给出平面上N个点,请求出一个半径最小的圆覆盖住所有的点 输入: 第一行给出数字N,现在N行,每行两个实数x,y表示其坐标. 输出: 输出最小半径,输出保留三位小数. 样例输入: 4 1 0 ...

  4. kohana学习经验

    1.sql查询文件缓存使用 $tokens = DB::select('id', 'token') ->from('member') ->where('id', 'in', $users) ...

  5. 二、angular7的基础知识学习

    <p> hello works </p> <div *ngIf="isShow">我是测试内容</div> <p> &l ...

  6. three arrays

    three arrays 字典树上贪心 #include<bits/stdc++.h> using namespace std; ][][]; ][]; ]; ]; ][]; ][]; i ...

  7. 你还没搞懂this?

    一.前言 this关键字是JavaScript中最复杂的机制之一.它是一个很特别的关键字,被自动定义在所有函数的作用域中.对于那些没有投入时间学习this机制的JavaScript开发者来说,this ...

  8. Understanding the Module Pattern in JavaScript

    Understanding the Module Pattern in JavaScript Of all the design patterns you are likely to encounte ...

  9. django小知识

    def __str__: return self.name 在显示的时候,将原来显示的额object对象,显示成这个类的名字

  10. Jmeter源码框架

    首先jmeter框架入口类: NewDriver类(src/core/org/apache/jmeter/NewDriver.java) public static void main(String[ ...