首页 > 其他分享 >GCD Queries

GCD Queries

时间:2024-09-10 22:02:33浏览次数:1  
标签:GCD gy gx gb ga Queries define

GCD Queries

交互题。

发现一个结论:

对于三个数 \(a,b,c\),我们询问 \(ga=\gcd(a,c),gb=\gcd(b,c)\)。

  • 若 \(ga=gb\),则 \(c\not =0\)
  • 若 \(ga>gb\),则 \(b\not = 0\)
  • 若 \(ga<gb\),则 \(a\not = 0\)

也就是说,进行两次询问可以排除掉一个位置,那么我们一共只需要进行 \(2(n-2)\) 次询问。

#include<bits/stdc++.h>
// #define LOCAL
#define sf scanf
#define pf printf
#define rep(x,y,z) for(int x=y;x<=z;x++)
using namespace std;
typedef long long ll;
const int N=2e4+5;
int n;
int a[N];
int t;
int main(){
    #ifdef LOCAL
    freopen("in.txt","r",stdin);
    freopen("my.out","w",stdout);
    #endif
    cin>>t;
    while(t--){
        cin>>n;
        int x=1,y=2,gx,gy;
        rep(i,3,n){
            cout<<"? "<<x<<' '<<i<<endl;
            cin>>gx;
            cout<<"? "<<y<<' '<<i<<endl;
            cin>>gy;
            if(gx>gy) y=i;
            else if(gx<gy) x=i;
        }
        cout<<"! "<<x<<' '<<y<<endl;
        int op;
        cin>>op;
        if(op==-1) return 0;
    }
}

标签:GCD,gy,gx,gb,ga,Queries,define
From: https://www.cnblogs.com/liyixin0514/p/18407315

相关文章

  • 小小GCD、LCM拿下拿下
    目录最大公约数(GCD)最大公约数(GCD)求解:一、辗转相除法二、三目运算符三、位运算最大公约数(GCD)模板: 最大公约数(GCD)例题:最小公倍数(LCM)最小公倍数(LCM)求解:最小公倍数(LCM)模板:最小公倍数(LCM)例题:GCD、LCM是算法当中的基础之基础,分别对应最大公约数、最小公倍数,在算法竞赛......
  • Luogu P11036 GCD 与 LCM 问题 [ 蓝 ] [ 构造 ] [ 数论 ] [ adhoc ]
    LuoguP11036GCD与LCM问题:梦熊的题真是又神又逆天。思路观察到有个奇数的特殊性质,我们尝试从奇数构造入手。先来尝试带入极端数据,对于\(\gcd\),我们可以把\(b=1\)的情况先带进去看看。\[a+b+c+d=\gcd(a,b)+\operatorname{lcm}(c,d)\]\[a+1+c+d=1+\operatorname{lcm}(c,......
  • 线段树can you answer these queries-------hdu4027
    问题描述:给定一个数列,要求对指定区间内所有数开方,输出查询区间和输入:有很多个测试用例,每个用例第一行输出一个整数N,表示数列有N个数,1<=N<=100000;第二行输入N个整数E,E<2e63;第三行输入整数M,表示M种操作,1<=M<=100000;之后的M行,每行输入3个整数TXY。T=0,表示修改,将区间[L,R]内所......
  • CF2009G. Yunli's Subarray Queries 题解
    G1题目要求,对于一个子区间$a_{l\siml+k-1}$,最少要进行多少次单点修改,才能使$\forall\l<i\leql+k-1,a_i=a_{i-1}+1$,其中$k$是固定的。对于这种问题,我们通常有一个trick:将$a_i$变为$a_i-i$。这样的话,我们要求的答案就变为了$k$减去变化后的$a_{l\siml+k-1}$......
  • 如何快速求一个序列的gcd和lcm
    背景:教授在打某道关于序列gcd与lcm的题,但是看不懂题解,于是决定打表找规律;然而自己又懒得算数,于是写了个程序。使用说明:输入格式:nstra1a2...an,\(n\)为序列长度;str为操作种类,只有GCD和LCM;\(a\)为序列,其中所有元素都必须是自然数。如果输入不合法,程序会中断计算并返回错误......
  • G2. Yunli's Subarray Queries (hard version)
    G2.Yunli'sSubarrayQueries(hardversion)Thisisthehardversionoftheproblem.Inthisversion,itisguaranteedthat$r\geql+k-1$forallqueries.Foranarbitraryarray$b$,Yunlicanperformthefollowingoperationanynumberoftimes:S......
  • CodeForces 2009G Yunli's Subarray Queries 题解
    云璃!高质量Div.4,吊打某些Div.2Only/Edu/Div.3。本题是下面四道题目的有机结合,优雅且经典。LuoguP4168[Violet]蒲公英|LuoguP1997faebdc的烦恼|LuoguP3203[HNOI2010]弹飞绵羊|LuoguP3246[HNOI2016]序列建议先完成这四题。(必须指出:用蒲公英的分块方......
  • 题解:UVA1479 Graph and Queries
    分析先看删边操作。由于并不保证是森林,所以我们没有好的方法来在线维护删边相关的操作。所以,我们可以套路地把询问离线,然后倒着操作。删边变成加边。需要注意的是权值的修改,记录时要把当前权值和修改的权值反过来。然后我们发现这个操作很经典,维护方式和[HNOI2012]永无乡......
  • CF1575G GCD Festival 题解
    考虑欧拉反演\[\sum\limits_{d\midn}\varphi(d)=n\]则原式可以化为\[\begin{align*}&\sum\limits_{i=1}^n\sum\limits_{j=1}^n\gcd(a_i,a_j)\cdot\gcd(i,j)\\=&\sum\limits_{i=1}^n\sum\limits_{j=1}^n\gcd(a_i,a_j)\sum\li......
  • [bzoj2818]gcd
    https://darkbzoj.cc/problem/2818https://vjudge.net.cn/contest/649469#problem/Q给定整数N,求1≤x,y≤N且gcd(x,y)为素数的数对(x,y)有多少对.N≤10^7分析:线性筛出不大于N的所有素数,枚举gcd(x,y)(设为p),问题转化为求(x,y)=p的个数。设x=x'p,y=y'p,那么有(x,y)=1且1≤x,y≤N......