首页 > 其他分享 >CF 1872 C

CF 1872 C

时间:2023-09-08 12:33:07浏览次数:34  
标签:typedef cout ll CF long cin 1872

C. Non-coprime Split

这道题可以先进行分类讨论。

  • 当\(r<=3\)时皆无解,先排除。
  • 当\(l≤x≤r\)中存在\(x\)为偶数时,就能直接找到答案\(a=b=x/2\)
  • 当\(l=r\)且\(l\)为奇数时,可以使用朴素求因数的方法判断是否存在\(j\)(\(2≤j≤\sqrt[2]{l}\))使\((a-j)\mod j=0\),若存在,则找到答案\(a=j,b=a-j\)。

不要先用筛子筛出所有质数再进行判断,会超时!!!

代码

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef pair<ll, ll> PII;

const ll N = 1e7 + 10;
ll a, b, t;

signed main()
{
    std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin >> t;
    while(t--)
    {
        cin >> a >> b;
        if(b < 4)
        {
            cout << -1 << endl;
            continue;
        }
        if(b - a || b & 1 == 0 || a & 1 == 0)
        {
            cout << ((b - (b & 1)) >> 1) << " " << ((b - (b & 1)) >> 1) << endl;
        }
        else
        {
            bool judge = 0;
            int si = sqrt(a);
            for(int j = 2;j <= si;j++)
            {
                if((a - j) % j == 0)
                {
                    judge = 1;
                    cout << j << " " << a - j << endl;
                    break;
                }
            }
            if(!judge)
            {
                cout << "-1" << endl;
            }
        }
    }
    return 0;
}

标签:typedef,cout,ll,CF,long,cin,1872
From: https://www.cnblogs.com/tongluosao/p/17687269.html

相关文章

  • 样本分析 99eddc2794077f97a5cfe3098f431c4cfc4fd6353957ee715b2eccbff066ce1d 由于.
     https://s.threatbook.com/report/file/99eddc2794077f97a5cfe3098f431c4cfc4fd6353957ee715b2eccbff066ce1d09:30:16:088, 99eddc2794077f97a5cfe3098f431c4cfc4fd6353957ee715b2eccbff066ce1d.exe, 1908:0, 1908, EXEC_create, C:\Users\bonelee\Desktop\99eddc2794077......
  • CF402D 题解
    2023-09-0418:42:46solution不难想到我们要先记录一下每一位的前缀\(\gcd\),我们发现我们选择一位的前缀\(\gcd\)除掉以后,前缀\(\gcd\)会变为\(1\)并且会导致这位之后的\(\gcd\)全部为\(1\)。所以每一位只能选择一次,并且我们从后往前扫肯定比从前往后扫要更优。我们......
  • CF1103C 题解
    2023-09-0514:52:07solution找路径很好找,我们随便跑个dfs树找个深度\(\ge\frac{n}{k}\)的路径输出即可。可是怎么找\(k\)个长度不是\(3\)的倍数的环呢?既然我们跑了dfs树,那么就没有横叉边,对于叶子节点非树边只有返祖边,然后一看这个很奇怪的条件——保证每个点度数大......
  • CF1851 部分题解
    2023-07-3019:35:02前言因为我实在是太菜了,没时间也不会做最后两题,所以这里只有前\(5\)道签到题的题解。之后我有时间看了后两题的题解再来更新吧~A先不用看那么多七七八八的,搞清楚下面几点即可:高度不能相同。高度差得被整除。高度差不能太大。好了,然后就可以\(AC\)......
  • CF232B Table
    2023-08-0716:29:49题意有一个\(n\timesm\)的矩阵,求使得每个\(n\timesn\)的矩阵中都有正好\(k\)个点的方案数,方案数对\(1e9+7\)取模。\(1\len\le100,n\lem\le10^{18},0\lek\len^2\)。思路通过观察样例并且自己手玩了一些数据后,我们发现,假设第\(i\)列放了\(k\)......
  • CF1833F Ira and Flamenco
    题目链接题解知识点:组合数学,枚举,双指针。注意到,长度为\(m\)且数字各不相同的子序列,那么最大值与最小值的差至少为\(m-1\)。因此,对于任意子序列,它是合法的,当且仅当,将其从小到大排序后是以\(1\)为等差的数列。因此,我们可以直接从原数组处理出所有不同数字的个数,并对数字从......
  • CF1829H Don't Blame Me
    比赛链接题解知识点:线性dp,位运算。考虑设\(f_{i,j}\)表示考虑了前\(i\)个数字,与和为\(j\)的方案数。转移方程显然。注意初值为\(f_{0,63}=1\)表示空集,此时注意\(k=6\)时要减去空集这一个方案。当然也可以选择不加入空集,但dp过程需要特别处理只选自己的方案。......
  • CF 842 vp记录
    A诈骗题,看起来有点高大上,其实只要将\(k\)减\(1\)即可。B此时序列中的递增子序列是不需要移动的,所以此时本题就满足一个贪心,设不在这个递增子序列中的数的个数是\(x\),则答案为\(\lfloor\frac{x}{k}\rfloor\)C这破比赛怎么这么喜欢排列。此时这个排列满足三个性质。每个......
  • 配置你的sublime来打cf
    第一步安装FastOlympic插件和FiraCode字体安装FastOlympic插件和FiraCode字体第二步配置competitive-companion和另一个插件来爬取测试数据U173674注意是在C盘下,然后就能愉快地用sublime打洛谷cf啦rp++......
  • CF1266D
    原题翻译其实这题的翻译反而不如原题好理解,建议先阅读原题后重新思考做法         \[\large{\color{#ff0000}{\text{分割线}}}\]                        翻译把原来简单的东西复杂了原题的题意是有若......