首页 > 其他分享 >「解题报告」ARC158D Equation

「解题报告」ARC158D Equation

时间:2023-03-13 10:34:48浏览次数:36  
标签:qpow frac int Equation ARC158D 解题 3n ans 2n

好神仙的题。

考虑形如 \(F(x, y, z) = x^i + y^i + z^i\) 的函数有一个性质:\(F(tx, ty, tz) = t^i F(x, y, z)\)。

原式要求 \((x+y+z)(x^n+y^n+z^n)(x^{2n}+y^{2n}+z^{2n})\equiv x^{3n}+y^{3n}+z^{3n}\),假如我们令 \(x = ta, y = tb, z = tc\),那么有 \(t^{3n+1}(a+b+c)(a^n+b^n+c^n)(a^{2n}+b^{2n}+c^{2n})\equiv t^{3n}(a^{3n}+b^{3n}+c^{3n})\)。

那么假如我们有一个 \((a, b, c)\),满足 \((a+b+c)(a^n+b^n+c^n)(a^{2n}+b^{2n}+c^{2n}) \ne 0\) 且 \(a^{3n}+b^{3n}+c^{3n}\),那么我们就能计算出 \(t\),那么 \((x, y, z) = (ta, tb, tc)\) 就是一组答案。

我们可以每次随机 \((a, b, c)\),然后判定答案合不合法即可。

我们可以证明,随机一次成功的概率大于等于 \(\frac{3}{4}\)。

考虑我们要满足的性质:

  1. \(a \ne b \ne c\)
  2. \(a^i + b^i + c^i \ne 0, \forall i \in \{1, n, 2n, 3n\}\)

前者概率为 \(O(\frac{1}{p})\),考虑后者。

我们可以证明,\(a^i + b^i + c^i = 0\) 的概率小于等于 \(\frac{1}{4}\)。

我们设 \(S\) 集合为所有的非零的 \(a^i\) 的取值,那么分几种情况:

设 \(m\) 为 \(S\) 集合的大小,可以发现,如果 \(x \in S\),那么 \(x^k \in S\),那么实际上 \(S\) 就是某个单位根集合,即有 \(x^m \equiv 1\)。

  1. \(m = 1 / 2\):那么说明 \(S = \{1\} / \{\pm 1\}\),由于 \(p \ge 5\),可以发现不可能等于 \(0\);
  2. \(m = 3\):说明有三个数 \((x, y, z)\),且 \(x + y + z = 0\),由于 \(x^3 \equiv 1\),且 \(p \ge 5\),那么有 \((-2x)^3 \ne 1\),即 \(-2x \ne 1\),则 \(x^3 - (-2y)^3 \ne 0\),即 \(x + 2y \ne 0\),这意味着如果有两个相同的数,和一定不等于 \(0\)。那么随机选取三个数,两两不相同的概率就是 \(\frac{3!}{3^3} = \frac{6}{27} < \frac{1}{4}\);
  3. \(m \ge 4\):那么固定 \((a, b)\),假如 \(-a^i-b^i \not \in S\),那么不可能等于 \(0\);否则,选中这个数的概率为 \(\frac{1}{m} \le \frac{1}{4}\)。

综上可知等于 \(0\) 的概率为 \(\frac{1}{4}\)。

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200005, P = 998244353;
int T;
int n, p;
mt19937 rd(chrono::system_clock::now().time_since_epoch().count());
int Rand(int l, int r) {
    return uniform_int_distribution<int>(l, r)(rd);
}
long long qpow(int a, long long b) {
    int ans = 1;
    while (b) {
        if (b & 1) ans = 1ll * ans * a % p;
        a = 1ll * a * a % p;
        b >>= 1;
    }
    return ans;
}
int main() {
    scanf("%d", &T);
    while (T--) {
        scanf("%d%d", &n, &p);
        while (true) {
            long long a = Rand(1, p - 1), b = Rand(1, p - 1), c = Rand(1, p - 1);
            if (a == b || a == c || b == c) continue;
            int x = (a + b + c) * (qpow(a, n) + qpow(b, n) + qpow(c, n)) % p * (qpow(a, 2ll * n) + qpow(b, 2ll * n) + qpow(c, 2ll * n)) % p;
            int y = (qpow(a, 3ll * n) + qpow(b, 3ll * n) + qpow(c, 3ll * n)) % p;
            if (x != 0 && y != 0) {
                int t = 1ll * y * qpow(x, p - 2) % p;
                vector<long long> ans = { 1ll * a * t % p, 1ll * b * t % p, 1ll * c * t % p };
                sort(ans.begin(), ans.end());
                printf("%lld %lld %lld\n", ans[0], ans[1], ans[2]);
                break;
            }
        }
    }
    return 0;
}

标签:qpow,frac,int,Equation,ARC158D,解题,3n,ans,2n
From: https://www.cnblogs.com/apjifengc/p/17210463.html

相关文章

  • [省选联考 2021] 解题报告
    这两天(2023-3-12/13)开了一场省选VP,感触比较大,同时也有颇多要总结的地方,因此写下这篇博客。省选\(-20\)多天,我还在补一些没有仔细学的新算法,虽然感觉新学了很多东西,但是......
  • 「解题报告」ARC134E Modulo Nim
    真的不想写这题,感觉这种题出的很怪。但是今天模拟赛出了,所以我还是写一下吧。首先我们只关心当前所有数的集合,有多少我们不关心。设这个集合为\(S\)。观察样例,感觉可以......
  • 「解题报告」CF1444D Rectangular Polyline
    这类型的题我们可以先找一些显然的必要条件,然后再去构造,很有可能就发现它是充分条件。考虑有什么必要条件:首先\(n=m\),要不然无法横纵首尾相连。其次所有横必定能划分......
  • 「解题报告」CF1067E Random Forest Rank
    感觉非常强大。求秩不好考虑,容易想到求行列式。如果行列式不等于\(0\)说明满秩。先考虑树邻接矩阵的行列式:行列式的定义式即枚举一个排列。排列可以划分成若干个置换环......
  • luogu「P4313」文理分科 解题报告
    题目描述文理分科是一件很纠结的事情!(虽然看到这个题目的人肯定都没有纠结过)小P所在的班级要进行文理分科。他的班级可以用一个\(n\timesm\)的矩阵进行描述,每个格子......
  • 【LeetCode回溯算法#07】子集问题I+II,巩固解题模板并详解回溯算法中的去重问题
    子集力扣题目链接给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。示例1:输......
  • CFR-857解题报告
    比赛传送门A.TheVeryBeautifulBlanket题意:构造一个\(n\timesm\)的矩阵,使得任意\(4\times4\)的子矩阵中,左上\(2\times2\)与右下\(2\times2\)的矩阵的异......
  • 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先(java解题)
    目录1.题目2.解题思路3.数据类型功能函数总结4.java代码1.题目定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于......
  • HDU2199 Can you solve this equation? (二分查找)
    Canyousolvethisequation?TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):12794    AcceptedS......
  • 「解题报告」CF1178B WOW Factor
    ¿题目链接这是一道非常富有启发性的题目,值得一做,闪耀着人类和机器人的智慧光辉的绝佳题目.首先注意到(vv)o(vv)的结构,可以考虑枚举中间的o,这样只需要算两边的选法......