A. Bitwise Operation Wizard

原题链接

题解

1.坐标i,j中,一定有一个值为n-1
2.所以另外一个数就是n-1在二进制表示下0的位置变成1,1的位置变成0的数
3.如何找到最大值?答:自己和自己或找出最大的
4.如何找到另外一个数?答:找出和最大值或最大的,再找出这些数中最小的

code

#include<bits/stdc++.h>
using namespace std;

char query(int a,int b,int c,int d)
{
    printf("? %d %d %d %d\n",a,b,c,d);
    fflush(stdout);

    char x;
    cin>>x;
    fflush(stdout);
    return x;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;

        int maxs=0;
        for(int i=1;i<n;i++)
        {
            char res=query(maxs,maxs,i,i);
            if(res=='<')
            {
                maxs=i;
            }
        }

        vector<int> q;
        q.push_back(0);

        for(int i=1;i<n;i++)
        {
            int now=q[0];

            char res=query(now,maxs,i,maxs);
            if(res=='<')
            {
                q.clear();
                q.push_back(i);
            }
            else if(res=='=') q.push_back(i);
        }


        int mins=q[0];
        for(int i=1;i<q.size();i++)
        {
            char res=query(mins,mins,q[i],q[i]);

            if(res=='>')
            {
                mins=q[i];
            }
        }

        printf("! %d %d\n",mins,maxs);
    }
    return 0;
}

posted @   纯粹的  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示