博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3923 Invoker polya 定理
阅读量:7105 次
发布时间:2019-06-28

本文共 1870 字,大约阅读时间需要 6 分钟。

 

/*  * hdu3923.c  *  *  Created on: 2011-9-20  *      Author: bjfuwangzhu */ #include
#include
#define LL long long #define nnum 1000000007 LL x, y; LL modular_exp(int a, int b) {
LL res, temp; res = 1 % nnum,temp = a % nnum; while (b) {
if (b & 1) {
res = res * temp % nnum; } temp = temp * temp % nnum; b >>= 1; } return res; } int getPhi(int n) {
int phi, i, te; te = (int) (sqrt(n * 1.0)); for (i = 2, phi = n; i <= te; i++) {
if (n % i == 0) {
phi = phi / i * (i - 1); while (n % i == 0) {
n /= i; } } } if (n > 1) {
phi = phi / n * (n - 1); } return phi; } void extend_gcd(int a, int b) {
if (b == 0) {
x = 1LL, y = 0; return; } extend_gcd(b, a % b); LL tx = x; x = y, y = tx - a / b * y; } LL polya(int n, int m) {
int i; LL sum; for (i = 1, sum = 0; i <= m; i++) {
if (m % i == 0) {
sum += modular_exp(n, i) * getPhi(m / i) % nnum; sum %= nnum; } } if (m & 1) {
sum += modular_exp(n, (m + 1) / 2) * m % nnum; sum %= nnum; } else {
sum += modular_exp(n, m / 2) * (m / 2) % nnum; sum %= nnum; sum += modular_exp(n, m / 2 + 1) * (m / 2) % nnum; sum %= nnum; } extend_gcd(m << 1, nnum); x = (x % nnum + nnum) % nnum; sum = sum * x % nnum; return sum; } int main() {
#ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); #endif int i, t, n, m; LL sum; while (~scanf("%d", &t)) {
for (i = 1; i <= t; i++) {
scanf("%d %d", &n, &m); sum = polya(n, m); printf("Case #%d: %I64d\n", i, sum); } } return 0; }

转载于:https://www.cnblogs.com/xiaoxian1369/archive/2011/10/12/2208608.html

你可能感兴趣的文章
我的友情链接
查看>>
ASP 2.0 数据绑定函数Eval()的机制
查看>>
我的友情链接
查看>>
mysql优化
查看>>
使用Docker快速搭建Gitlab
查看>>
workerman运行分析--主进程流程
查看>>
一个简单的例子区分linux shell 正则表达式中的 *,+,?
查看>>
jQuery(三)jQuery事件执行/简单事件/复合事件
查看>>
运行Spark 任务出现的错误
查看>>
我的友情链接
查看>>
再说“使用CI操作oracle 10g的单表增删改查”
查看>>
普及一点平板电脑知识,给机油们说说国产平板的五大主流方案
查看>>
js正则实现用户输入银行卡号的控制及格式化
查看>>
MySQL
查看>>
2018-08-14期 Zookeeper客户端连接工具ZooInspector使用方法
查看>>
unity3D初识对象池技术
查看>>
emulator-arm.exe停止工作
查看>>
spring用动态代理还是cglib?
查看>>
共同抵制恶意APP CNCERT公布首批黑名单
查看>>
STP工作过程分析<欢迎指正>
查看>>