hdu 3923 Invoker
完全是套用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相关推荐
- HDU 6379 Invoker (2019-CCPC-秦皇岛站)DP
Invoker Time Limit: 15000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tota ...
- 【Polay定理总结】【2019华为笔试】【普通涂色问题 组合数学】召唤师的技能——圆排列,翻转和项链排列
题目描述: 华为用的这个, 其实是个杭电的题目: 题目链接:hdu 3923 Invoker dota游戏里面,召唤师可以控制冰雷火三种元素,并通过元素组合产生新的技能.现在我们修改了张新的地图, 地 ...
- 解题报告 (五) Burnside引理和Polya定理
Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Bu ...
- ACM比赛经验、刷题记录及模板库总结(更新中)
前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...
- HDU - 6739 2019CCPC秦皇岛赛区 I. Invoker(DP+思维)
问题链接: http://acm.hdu.edu.cn/showproblem.php?pid=6739 问题简述: 在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技 ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- hdu 1312 Red and Black 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...
最新文章
- jvm二:类加载,连接,初始化
- 我是如何在面试别人Spring事务时“套路”对方的
- [转载]常用CASE工具介绍
- python编写自制编译器_编译器构造-编译Python
- 纪念音视频界前辈-雷霄骅
- qt.pro转成vs程序
- 类string的构造函数、拷贝构造函数和析构函数
- PyCharm将制表符转换为空格并显示的配置方法
- HDU.1003 Max Sum
- 5G技术将如何改变我们的世界
- 三极管开关电路_9012三级管开关电路图大全
- 简易学籍管理系统(3)--插入结点并排序
- 解决 Minimum supported Gradle version is 5.1.1. Current version is 4.6
- 两个程序员老友的会面
- 计算机主页为什么打不开怎么办,电脑输入192.168.1.1管理页面打不开怎么办
- 【基础】HBuilderX 找不到手机或模拟器设备(安卓端)
- [面试笔试整理1]:深度学习机器学习面试问题准备(必会)
- hadoop安装与启动
- 云计算机社团,【社联】云社团丨以声传情,以舞会友(第一期)
- MySQL表字段类型