首页 > 其他分享 >CF1872C-Non-coprime-Split-题解

CF1872C-Non-coprime-Split-题解

时间:2023-12-20 09:15:54浏览次数:22  
标签:Non CF1872C int 题解 coprime Split gcd

title: CF1872C Non-coprime Split 题解
date: 2023-09-18 21:09:14
categories: 
 - 题解

一个很怪的分讨想法。

当 \(l \neq r\) 时,区间内一定有一个偶数。设最大的偶数为 \(x\) ,那么当 \(x > 2\) 时,可以得到一组解 \((2,x-2)\),此时 \(\gcd(2,x-2) = 2\)。

当 \(l = r\) 时,问题转化为找 \(a+b=l\) 且 \(\gcd(a,b) \neq 1\) 的一组解。当 \(l\) 不为质数时,设有 \(l\) 的因数 \(x\),那么 \((x,l-x)\) 是一组解,此时 \(\gcd(x,l-x)\) 一定不为 1。

剩余情况无解,时间复杂度 \(O(t\sqrt l)\)。

code:

#include<iostream>
#include<cstdio>
using namespace std;
int t,l,r;
signed main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&l,&r);
		if(l!=r)
		{
			int cnt=r-r%2;
			if(cnt==2)puts("-1");
			else printf("%d %d\n",2,cnt-2);
		}
		else
		{
			bool f=0;
			for(int i=2;i*i<=l;i++)
			{
				if(l%i)continue;
				f=1;
				printf("%d %d\n",i,l-i);
				break;
			}
			if(!f)puts("-1");
		}
	}
}

标签:Non,CF1872C,int,题解,coprime,Split,gcd
From: https://www.cnblogs.com/jr-inf/p/17915359.html

相关文章

  • CF1870B-Friendly-Arrays-题解
    title:CF1870BFriendlyArrays题解date:2023-09-2010:32:12categories:-题解翻译给出长度为\(n\)的序列\(a\)和长度为\(m\)的序列\(b\),选出\(b\)中的任意个数(可以不选),让\(a\)的每个数都或上它们,求\(a_1\oplusa_2\oplus\dots\oplusa_n\)的最大值......
  • CF1861C-Queries-for-the-Array-题解
    title:CF1861CQueriesfortheArray题解date:2023-09-0607:53:53categories:-题解因为插入和删除操作都在队尾,所以对序列前缀分析一下:若一个序列的答案为YES,那么它前缀的答案也为YES。(对于没检查过的序列)若一个序列的答案为NO,那么它前缀的答案不确定。(对于没......
  • CF1703E-Mirror-Grid-题解
    title:CF1703EMirrorGrid题解date:2022-07-1511:54:20categories:-题解题目大意给出一个由\(0,1\)组成的矩阵,求最少改变矩阵中的多少个数,使得矩阵旋转\(0^\circ,90^\circ,180^\circ,270^\circ\)后相同。思路在一个\(n\timesn\)的矩阵中,对于任意一......
  • CF1593E-Gardener-and-Tree-题解
    title:CF1593EGardenerandTree题解date:2022-05-2721:30:48categories:-题解原题面题意:给出一个\(n\)个点的树,删除\(k\)次叶子节点,求剩下的节点数。思路:设\(cnt_i\)为\(k\)最小为多少时点\(i\)会被删除。当\(i\)将要被删除时,它一定是现在的叶子,联......
  • CF1866B Battling with Numbers 题解
    前置知识:如果\(p=x^a,q=x^b\),那么\(\gcd(p,q)=x^{\min(a,b)},\operatorname{lcm}(p,q)=x^{\max(a,b)}\)。对于每个\(x\ina_i\),令\(x\)在\(Y\)中的指数为\(d_i\)(实际上不一定),计算贡献时,考虑将\(b_i\)与\(d_i\)分别放入\(p\)和\(q\)中:如果\(b_i<d_i\),贡献为......
  • CF1814B Long Legs 题解
    建议降黄令\(m\)最后的值为\(a\),那么此时最佳答案为\(a-1+\left\lceil\frac{x}{a}\right\rceil+\left\lceil\frac{y}{a}\right\rceil\),每次加尽量大的\(m\)一定最优。当\(x,y\)增大时,答案显然不降,考虑找到\(a\)的上界。用\(O(n)\)的暴力跑极限数据,发现答......
  • CF468C Hack it! 题解
    题意:给出一个数\(a\),构造一组\(l,r\)使得\(\sum_{i=l}^rf(i)\equiv0\pmoda\)。其中\(a\leq10^{18}\),\(l,r\leq10^{200}\)。分析:以下用\((l,r)\)表示构造出来的一对\(l,r\),\(f(l,r)=\sum_{i=l}^rf(i)\)。考虑从某个值一步一步移动到模\(a\)余\(0\)的情况。......
  • AT_abc325_e [ABC325E] Our clients, please wait a moment 题解
    原题传送门最短路板题。乘坐的过程一定是先车再火车(如果有),假设换车地点为\(x\),那么最小代价为坐车从\(1\)到\(x\)与坐火车从\(x\)到\(n\)的最小代价之和,分开跑最短路即可,时间复杂度\(O(n^2\logn+n)\)。code:#include<iostream>#include<cstdio>#include<cstring>......
  • AT_abc323_f [ABC323F] Push and Carry 题解
    不难发现答案的下界为\(|x_b-x_c|+|y_b-y_c|\),这是每步都推箱子的情况。但很多时候并不能直接开始推箱子,所以人要先移动到箱子的后面(相对于目的地),再把箱子往目的地推。比如这种情况(B为箱子,C为目的地):B.......C推完箱子的一边后,还要走到另一边:↓B..................
  • USACO2023 Cu,Ag,Au 题解
    晚上没事干,于是写了。Cu:1h25minAg:2h40minAu:2h15min做最久的竟然是AgT1。CuT1诈骗题,做了50min。考虑如果越过了\(a_i\)往后走,那么\(a_i\)的高度至少翻了一倍。直接模拟即可。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;const......