首页 > 其他分享 >abc212G - Power Pair

abc212G - Power Pair

时间:2023-09-27 22:56:02浏览次数:52  
标签:frac Power sum dfs abc212G ans Pair mo lld

G - Power Pair

如果知道了原根的话这题就会简单很多
r是p的原根

\(r^a=x, r^b=y\)
那么$$r^{an} \equiv r^b (mod\ p) $$
根据原根的性质

\[an \equiv b(mod\ p-1) \]

\[an-k(p-1)=b \]

令n=p-1
由裴蜀定理得\((a,n)|b\)

\[ans=\sum_{a=1}^n \frac{n}{(n,a)} \]

\[=\sum_{d|n}\frac{n}{d} \sum_{i=1}^n[(i,n)==d] \]

\[=\sum_{d|n}\frac{n}{d} \sum_{i=1}^{\frac{n}{d}} [(i,\frac{n}{d})==1] \]

\[=\sum_{d|n}d \varphi(d) \]

那么最后这个直接dfs算即可。

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))

using namespace std;
typedef double db;
typedef long long ll;
const int N = 2e5 + 5;
const ll inf = 1ll << 60;
const ll mo = 998244353;
ll n, ans, tot;
ll p[N], c[N];
void solve() {
	ll mx = sqrt(n) + 1;
	fo(i, 2, mx) {
		if (n % i == 0) {
			p[++tot] = i;
			while (n % i == 0) {
				c[tot]++;
				n /= i;
			}
		}
	}

	if (n != 1) {
		p[++tot] = n%mo;
		c[tot] = 1;
	}
}
void dfs(int x, ll y) {
	if (x > tot) {
		ans = (ans + y )%mo;
		return;
	}
	
	dfs(x+1,y);
		
	ll t=1;
	fo(i,1,c[x]) {
		dfs(x+1, y*t%mo*t%mo*p[x]%mo *(p[x]-1)%mo);
		t=t*p[x]%mo;
	}
	
}
int main()
{

//	freopen("data.in","r",stdin);
	
	scanf("%lld", &n);
	n--;
	solve();
	
//	fo(i,1,tot) printf("%lld %lld\n",p[i],c[i]);

	ans = 1;
	dfs(1, 1);

	printf("%lld", ans);

	return 0;
}

 

标签:frac,Power,sum,dfs,abc212G,ans,Pair,mo,lld
From: https://www.cnblogs.com/ganking/p/17734590.html

相关文章

  • #POWERBI_指标监控(第二部分,周期内下降天数及日期明细)
    在指标监控的第一部分文章中,我们已经讲了,如何用DAX去查询一段周期内连续下降或者上升指标。需要复习的同学可以点击下方链接:https://www.cnblogs.com/simone331/p/17730677.html根据学友上篇文章的反馈,今天,我们来拓展学习一下,如何计算一个周期内(非连续),下降或上升天数统计,以及......
  • POWERBI_1分钟学会_连续上升或下降指标监控
    一:数据源模拟数据为三款奶茶销量的日销售数据源,日期是23.8.24-23.8.31。A产品为连续7天,日环比下降,B产品为连续3天,日环比下降,C产品为连续2天,日环比下降。二:建立基础度量值首先,我们建立两个基础度量值,计算我们的产品销量和日环比。产品销量=CALCULATE(SUM('数据源'[销量]))......
  • Linux常用命令(cat,more,less,head,tail,clear,poweroff,reboot,alias,unalias,uname,hostname,hist
    本章学习Linux基础命令数量为18个123456catmorelessheadtailclearpoweroffrebootaliasunaliasunamehostnamehistorywhitchwcwwhowhoami1.cat命令作用:连接文件并在标准输出上输出(常用于查看内容较少的,会把所以查看的内容加载到内存中)。常用......
  • 185_技巧_Power Query(M)语言快捷输入之搜狗输入法设置自定义短语
    185_技巧_PowerQuery(M)语言快捷输入之搜狗输入法设置自定义短语此前,我们发布过如何通过QQ拼音输入法来实现快速的输入PowerQuery(M)语言。参考:https://jiaopengzi.com/730.html今天我们来更新PowerQuery(M)语言在搜狗输入法中设置自定义短语的快捷输入。快捷输入效......
  • pycharm无法打开终端:open Local Terminal_Failed to start [powershell.exe]
    今天在运行pycharm的时候出现了这个问题openLocalTerminal_Failedtostart[powershell.exe]直接上解决办法1.进入设置2.选择tools下的terminal然后修改shellpath 如果没有的话需要找到本机的powershell的路径然后对其进行修改就能正常运行了  ......
  • 【POJ 3253】Fence Repair 题解(贪心算法+优先队列+哈夫曼树)
    农夫约翰想修理牧场周围的一小段围栏。他测量了围栏,发现他需要N(1≤N≤20000)块木板,每块木板都有一定的整数长度Li(1≤Li≤50000)单位。然后,他购买了一块长度刚好足以锯入N块木板的长木板(即,其长度为Li长度的总和)。FJ忽略了“切口”,即锯切时锯屑损失的额外长度;你也应该忽略它。FJ伤心地......
  • 根据周数计算月(Power Query)
    问题:如何根据周数计算月假设:以每周第一天为标准,一周从周一开始计let源=Excel.CurrentWorkbook(){[Name="表1"]}[Content],当前年=Table.AddColumn(源,"23年",eachDate.Month(Date.AddDays(#date([年],1,1),[周]*7-7))),通用年=Table.AddColumn(当前年,......
  • Power BI 网关无法添加My SQL数据集
    今天第一次发布数据类型为MySQL的数据集到PowerBI报表服务器,desktop的连接正常,但是发布到web端后,添加网关时却提示以下错误,如下图所示:错误信息:无法创建连接,原因如下:无法连接到数据源。这是因为数据源不可访问、发生连接超时或数据源凭据无效。请验证数据源配置,并联系数据源管......
  • PowerDotNet平台化软件架构设计与实现系列(16):财务平台
    不同行业基本都会有自己独特的业务,甚至同行的不同企业之间的业务逻辑也会相差千里,只有最大程度抽象出通用性、标准性和普适性的系统才能够成为平台系统,平台系统开发的成本和难度可想而知。个人深度参与或独立设计开发过的公共服务型平台系统,主要包括基础数据平台、支付平台、财务......
  • 1820BThe BOSS Can Count Pairs[分块]
    Problem-B-Codeforces题意是给n个a和b,1<=a,b<=n,问有多少ai*aj==bi+bj,i<j,2e5的数据规模看一眼数据规模,a,b都是小于等于n的,意味着如果ai*aj>n那么就对答案无贡献,或者说,对于一个ai,剩下数中可能能对答案产生影响的aj,一定是小于等于n/ai的。那么我们可以以ai为依据升序排序,......