首页 > 其他分享 >Codeforces Round 864 (Div. 2)

Codeforces Round 864 (Div. 2)

时间:2023-04-10 18:27:08浏览次数:61  
标签:int Codeforces cin 864 -- Ask Div D2 D1

题解报告

基本的一些理解和问题都在注释中
A:Li Hua and Maze
就是判断把其中一个点围起来所需要的最小的格子,考虑下边界的情况就行了

#include <bits/stdc++.h>
using namespace std;
int main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int T;cin>>T;
    while(T--)
    {
        int N,M;cin>>N>>M;
        int X1,Y1,X2,Y2;
        cin>>X1>>Y1>>X2>>Y2;
        int res1=4,res2=4;
        if(X1==1||X1==N)res1--;
        if(Y1==1||Y1==M)res1--;
        if(X2==1||X2==N)res2--;
        if(Y2==1||Y2==M)res2--;
        cout<<min(res1,res2)<<endl;
    }
    return 0;
}

B:Li Hua and Pattern
就是把不同的加起来,然后看看够不够变,如果够的话剩下的能不能完全用上
注意一奇偶就没什么问题

#include <bits/stdc++.h>//注意奇偶的判断就好
using namespace std;
const int maxn=1e3+10;
int num[maxn][maxn];
int main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int T;cin>>T;
    while(T--)
    {
        int N,K;cin>>N>>K;
        for(int i=0;i<N;i++)
            for(int j=0;j<N;j++)cin>>num[i][j];
        int res=0;
        for(int i=0;i<(N+1)/2;i++)
        {
            for(int j=0;j<N;j++)
            {
                if((N&1)&&i==(N+1)/2-1&&j>N/2)break;
                if(num[i][j]!=num[N-i-1][N-j-1])res++;
            }
        }
        if(K<res)cout<<"NO"<<endl;
        else{
            if(N&1)cout<<"YES"<<endl;
            else{
                if((K-res)%2==0)cout<<"YES"<<endl;
                else cout<<"NO"<<endl;
            }
        }
    }
    return 0;
}

C:Li Hua and Chess
按照题目意思,一个点到 \((1,1)\) 的距离 \(Dx+1\) 不是该点的 \(X\) 坐标就是 \(Y\) 坐标,然后通过 \((1,Dx)\) 和 \((Dx,1)\) 来判断是 \(X\) 坐标还是 \(Y\) 坐标就好了,注意边界的判断

#include <bits/stdc++.h>
using namespace std;
int Ask(int X,int Y)
{
    int res;
    cout<<"? "<<X<<" "<<Y<<endl;//每次输出后要cout.flush()
    cout.flush();cin>>res;
    return res;
}
void Res(int X,int Y)
{
    cout<<"! "<<X<<" "<<Y<<endl;
    cout.flush();
}
int main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int T;cin>>T;
    while(T--)
    {
        int N,M;cin>>N>>M;
        int D1=Ask(1,1);
        if(D1>=N){
            int D2=Ask(1,D1+1);
            Res(D2+1,D1+1);
        }else if(D1>=M){
            int D2=Ask(D1+1,1);
            Res(D1+1,D2+1);
        }else{
            int D2=Ask(1,D1+1);
            int D3=Ask(D1+1,1);
            if(D2<D1)Res(D2+1,D1+1);
            else if(D3<D1)Res(D1+1,D3+1);
            else Res(D1+1,D1+1);
        }
    }
    return 0;
}

其它题目不会,开摆!!!

标签:int,Codeforces,cin,864,--,Ask,Div,D2,D1
From: https://www.cnblogs.com/WUTONGHUA02/p/17303866.html

相关文章

  • Codeforces Round 864 (Div. 2) E. Li Hua and Array
    CodeforcesRound864(Div.2E.LiHuaandArray)(暴力修改线段树+lca和数论的结合)Exampleinput5481637215234113234output1021Solution首先你得知道什么是欧拉函数我们\(O(n)\)求出\([1,5e6]\)范围内的每个数的欧拉函数后可以求一下最大的跳......
  • cf-div2-856c
    题目链接:https://codeforces.com/contest/1816/problem/C我是傻逼,否了自己的第一直觉。。。思路:构造方法:以最后一个值的数值\(x\)为基准,把所有的的数字(除第一个)调整为\(x\)。以n的奇偶性分为两种情况。当n为奇数时:\(第一个数字y小于等于x,构造成功。否则就除了第一个数字外......
  • Codeforces Round 863 (Div. 3)
    题解报告基本的一些理解和问题都在注释中A:InsertDigit找到第一个小于输入数字的数的位置塞进去就好了,可以细推,但是粗略想想也能知道#include<bits/stdc++.h>usingnamespacestd;intmain(void){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int......
  • Codeforces Round 865 (Div. 2)
    CodeforcesRound865(Div.2)A.IanVisitsMaryvoidsolve(){intx=read(),y=read();if(__gcd(y,x)!=1){cout<<2<<endl;cout<<1<<""<<y-1<<endl;cout<<x<<"&q......
  • 练习记录-cf-div2-865(A-C)
    反转就是写的非常烂Awa10其他还行吧丢人A.IanVisitsMary如果这两个数的gcd是1可以直接过去如果是0那就绕一个1过去变成三角形不然就用(1,b-1)到(a,1)这样就是两次的1不会遇到#include<bits/stdc++.h>#defineclosestd::ios::sync_with_stdio(false),cin.ti......
  • Codeforces Round 864 (Div. 2) C和D
    比赛地址C.LiHuaandChess题意:给出一个棋盘长宽n,m,有一颗棋子在棋盘上,向八个方向走一步的路程代价都为1,现在进行最多3次询问,问能否确认棋子的位置Solution第一次做交互题,想很好想,先询问(1,1),得到x,再询问(1+x,1+x),得到y,最后询问(1+x,1+x-y),如果得到的是0,则输出这个点,反之输......
  • 练习记录-cf-div2-856(A-C)
    vp的写出4道C感觉目前不是能力范围以后有机会留下来打比赛的话再说A-PrefixandSuffixArray给出字符串的前缀和后缀问是不是回文 我采用枚举长度为n-1和1的拼凑但是这并不奏效一直wa3后来改用拼两个n/2的就过了如果有大佬看到了希望能解答一下qwq#include<b......
  • 练习记录-cf-div2-864(A-D)
    状态不怎么好场上就写出3道还磨磨蹭蹭推错结论qwq 警钟长鸣A.LiHuaandMaze一开始以为要切割发现就把其中一个包起来就行了计算包某个块需要的最小块数#include<bits/stdc++.h>#defineclosestd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)usingn......
  • Codeforces Round 860 (Div. 2)
    CodeforcesRound860(Div.2)Date:04/08/2023Link:CodeforcesRound860(Div.2)A|ShowstopperBrief:两组数\(\{a_i\}\)和\(\{b_i\}\),长度都为\(n\).\(\foralli\),可以交换\(a_i\)和\(b_i\),问是否可以使得\(a_n=\max(a_i)\),\(b_n=\max(b_i......
  • 【cf864】赛后结
    属实是失踪人口了,想了一下还是把题解打到这儿。conteset地址:https://codeforces.com/contest/1797 A.题目大意:n*m的方格上给两个点,询问最少增加的障碍格子使得这两个点不连通。解题思路:水题,但是手速有点慢。直接问靠不靠墙,靠几面墙,不靠墙答案4,靠一面答案3,靠两面答案2,取两个点......