完全是套用polya模版……

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<string>
using namespace std;
int
prime[30005],m,mod=1000000007;
bool
f[30005];
__int64
extend(__int64 a,__int64 b,__int64 &x,__int64 &y)
{

    __int64
d;
    if
(b==0)
    {

        x=1;y=0;
        return
a;
    }

    else

    {

        d=extend(b,a%b,x,y);
        __int64
t=x;
        x=y;
        y=t-a/b*y;
    }

    return
d;
}

void
init()
{

    int
i,j;
    m=0;
    for
(i=2;i<=30000;i++)
        if
(f[i]==0)
        {

            prime[m++]=i;
            for
(j=i*i;j<=30000;j+=i)
                f[j]=1;
        }
}

__int64
euler(__int64 n)
{

    __int64
ans=1,i;
    for
(i=0;i<m&&prime[i]*prime[i]<=n;i++)
    {

        if
(n%prime[i]==0)
        {

            ans*=prime[i]-1;
            n/=prime[i];
            while
(n%prime[i]==0)
            {

                ans*=prime[i];
                n/=prime[i];
            }
        }
    }

    if
(n>1) ans*=n-1;
    return
ans%mod;
}

__int64
pows(__int64 a,__int64 b)
{

    __int64
ans=1;
    a=a%mod;
    while
(b)
    {

        if
(b&1) ans=(ans*a)%mod;
        b>>=1;
        a=(a*a)%mod;
    }

    return
ans;
}

int
main()
{

    init();
    int
t,i,j,n,s,k=0;
    __int64
ans;
    cin>>t;
    while
(t--)
    {

        cin>>n>>s;
        ans=0;
        for
(i=1;i<=s;i++)
        {

            if
(s%i==0)
                ans=(ans+pows(n,i)*euler(s/i))%mod;
        }

        if
(s&1)
        {

            ans=(ans+pows(n,(s+1)/2)*s)%mod;
        }

        else

        {

            ans=(ans+pows(n,s/2)*(s/2))%mod;
            ans=(ans+pows(n,s/2+1)*(s/2))%mod;
        }

        __int64
x,y;
        extend(s<<1,mod,x,y);
        x=(x%mod+mod)%mod;
        ans=(ans*x)%mod;
        printf("Case #%d: %d\n",++k,ans);
    }

    return
0;
}

转载于:https://www.cnblogs.com/xin-hua/p/3199065.html

hdu 3923 Invoker相关推荐

  1. HDU 6379 Invoker (2019-CCPC-秦皇岛站)DP

    Invoker Time Limit: 15000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tota ...

  2. 【Polay定理总结】【2019华为笔试】【普通涂色问题 组合数学】召唤师的技能——圆排列,翻转和项链排列

    题目描述: 华为用的这个, 其实是个杭电的题目: 题目链接:hdu 3923 Invoker dota游戏里面,召唤师可以控制冰雷火三种元素,并通过元素组合产生新的技能.现在我们修改了张新的地图, 地 ...

  3. 解题报告 (五) Burnside引理和Polya定理

    Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Bu ...

  4. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  5. HDU - 6739 2019CCPC秦皇岛赛区 I. Invoker(DP+思维)

    问题链接: http://acm.hdu.edu.cn/showproblem.php?pid=6739 问题简述: 在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技 ...

  6. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  7. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  8. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  9. hdu 1312 Red and Black 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...

最新文章

  1. jvm二:类加载,连接,初始化
  2. 我是如何在面试别人Spring事务时“套路”对方的
  3. [转载]常用CASE工具介绍
  4. python编写自制编译器_编译器构造-编译Python
  5. 纪念音视频界前辈-雷霄骅
  6. qt.pro转成vs程序
  7. 类string的构造函数、拷贝构造函数和析构函数
  8. PyCharm将制表符转换为空格并显示的配置方法
  9. HDU.1003 Max Sum
  10. 5G技术将如何改变我们的世界
  11. 三极管开关电路_9012三级管开关电路图大全
  12. 简易学籍管理系统(3)--插入结点并排序
  13. 解决 Minimum supported Gradle version is 5.1.1. Current version is 4.6
  14. 两个程序员老友的会面
  15. 计算机主页为什么打不开怎么办,电脑输入192.168.1.1管理页面打不开怎么办
  16. 【基础】HBuilderX 找不到手机或模拟器设备(安卓端)
  17. [面试笔试整理1]:深度学习机器学习面试问题准备(必会)
  18. hadoop安装与启动
  19. 云计算机社团,【社联】云社团丨以声传情,以舞会友(第一期)
  20. MySQL表字段类型

热门文章

  1. flutter绘图基础之三阶贝塞尔曲线cubicTo
  2. 使用Vs code上传github需要输入密码和用户名解决
  3. php学习----运算符
  4. Python之路(二)Python基础
  5. Oracle查看表空间,创建表空间
  6. scut AccountServer 使用mysql
  7. 第十周 11.1-11.7
  8. WordPress 常用快捷键列表
  9. 关于在群集环境下UDDI Web应用程序组件配置失败问题
  10. 去除网页上图片的虚框和a文字链接上的虚框