Description

Constantine刚结束在MySky Island的度假,正准备离开的时候,他想送给她的好朋友YY一份特别的礼物——MySky Island上特别的手工艺品宝石纪念币。宝石纪念币的一面上刻着小岛的名字MySky,或者收礼物的人,比如”to YY”。不过特别的是,每枚纪念币的反面,依次均匀的镶着一圈共n颗彩色的宝石。例如,下面是一个n=7时的简单例子:

因为纪念币是圆的,所以如果两种“宝石颜色的排布”如果经过旋转后对应位置的颜色相重合,就认为他们是相同的排布方式(请注意:纪念币只有一面镶宝石,所以两种排布若经过翻转以后是可以重合的,但只经过旋转无法使两者重合,则认为他们是不同的排布)。例如下面的两种排布方式就是相同的:

另外,由于MySky Island当地的习俗,每枚钱币上的宝石都只能嵌奇数颗宝石,不然就认为是不吉利的。宝石纪念币是现场制作的,游客可以选择自己喜欢的颜色的宝石。所以Constantine选出了他最喜欢的17种颜色(你如果要问为什么选这么多的话,只能告诉你因为17是他的幸运数字)。他想知道,如果他要求纪念币把这17种颜色的宝石都用上的话,可以制作出多少枚不同的纪念币。由于答案可能很大,你只需要计算答案的最后120位就可以了。

Input

输入文件只有一行,包含一个正奇数n 1< = N < =10^9

Output

输出文件包含1行,表示不同纪念币的枚数的最后120位。这120位从高位到低位依次输出,位数不足的用0在高位补足。

用burnside引理转化,矩阵乘法计算长度为n的序列,染上17种颜色且每种颜色都用上的方案数

def phi(x):
i=2
y=x;
while i*i<=x:
if x%i==0:
y=y//i*(i-1)
while x%i==0:
x//=i
i+=1
if x>1:
y=y//x*(x-1)
return y
def mul(a,b):
global mod
c=[0]*324
for i in range(18):
for k in range(i+1):
v=a[i*18+k]
if not v:
continue
for j in range(k+1):
c[i*18+j]+=v*b[k*18+j]
for i in range(324):
c[i]%=mod
return c
def cal(n):
global mod,ps,ans
if n<17:
return 0
x=[0]*324
for i in range(18):
x[i*19]=1
for i in range(32):
if n>>i&1:
x=mul(x,ps[i])
return x[17*18]
n=int(input())
ps=[[0]*324]
mod=10**120*n
for i in range(1,18):
ps[0][i*19]=i
ps[0][i*19-1]=1
for i in range(32):
ps.append(mul(ps[i],ps[i]))
ans=0
i=1
while i*i<=n:
if n%i==0:
j=n//i
ans+=cal(i)*phi(j)
if i!=j:
ans+=cal(j)*phi(i)
i+=1
for i in range(1,18):
ans*=i
ans=str(ans%mod//n)
print(""*(120-len(ans))+ans)

bzoj2026: [SHOI2009]Coin的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  2. [LeetCode] Coin Change 硬币找零

    You are given coins of different denominations and a total amount of money amount. Write a function ...

  3. 洛谷P2964 [USACO09NOV]硬币的游戏A Coin Game

    题目描述 Farmer John's cows like to play coin games so FJ has invented with a new two-player coin game c ...

  4. [luogu2964][USACO09NOV][硬币的游戏A Coin Game] (博弈+动态规划)

    题目描述 Farmer John's cows like to play coin games so FJ has invented with a new two-player coin game c ...

  5. LeetCode Coin Change

    原题链接在这里:https://leetcode.com/problems/coin-change/ 题目: You are given coins of different denomination ...

  6. ACM Coin Test

    Coin Test 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 As is known to all,if you throw a coin up and let ...

  7. HDOJ 2069 Coin Change(母函数)

    Coin Change Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. leetcode:Coin Change

    You are given coins of different denominations and a total amount of money amount. Write a function ...

  9. UVa 674 Coin Change【记忆化搜索】

    题意:给出1,5,10,25,50五种硬币,再给出n,问有多少种不同的方案能够凑齐n 自己写的时候写出来方案数老是更少(用的一维的) 后来搜题解发现,要用二维的来写 http://blog.csdn. ...

随机推荐

  1. 玩转X-CTR100 l STM32F4 l OLED显示-SSD1306无字库

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      OLED显示屏具有自发光特性,不需要背光, ...

  2. <NET CLR via c# 第4版>笔记 第13章 接口

    13.1 类和接口继承 13.2 定义接口 C#用 interface 关键字定义接口.接口中可定义方法,事件,无参属性和有参属性(C#的索引器),但不能定义任何构造器方法,也不能定义任何实例字段. ...

  3. Linux->卸载Mysql方法总结

    如何在Linux下卸载MySQL数据库呢? 下面总结.整理了一下Linux平台下卸载MySQL的方法. MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries).R ...

  4. mongodb添加延时节点

    1.      简介 延时节点是主节点过去某个时间点的“数据快照”,通常用来做数据备份,如果主节点有误操作而删除了数据,可以通过延时节点来恢复数据.例如,当前时间是10:00,并且延时节点设置1个小时 ...

  5. Jmeter实现MySQL的增删改查操作

    环境: JDBC驱动:mysql-connector-java-5.1.7-bin Jmeter:Jmeter3.0 1.导入JDBC驱动:测试计划-->浏览-->选择mysql-conn ...

  6. PAT  说反话-加强版   (20分)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母 ...

  7. 安装SharePoint Server的主机重命名

    今天我头脑一热, 把安装在WS 2008 R2上的有Stand-alone SharePoint Server 2010的机器重命名了一下, 结果SharePoint Central Admin都进不 ...

  8. 习题3.5 求链表的倒数第m个元素(20 分)浙大版《数据结构(第2版)》题目集

    请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素. 函数接口定义: ElementType Find( List L, int m ); 其 ...

  9. Monocular 集成harbor helm 仓库

      harbor 已经支持了helm 仓库(使用chartmuseum),Monocular 是一个不错的helm 仓库可视化工具 测试Monocular集成harbor 私服功能 使用docker- ...

  10. ThinkPHP 5 中的 composer.json

    本篇并不是揭 ThinkPHP 5 的问题. 只是通过 composer.json 来学习 compoer.json 元旦那天, ThinkPHP 5.1 正式发布,值得庆祝. 之后的第二天有人反馈 ...