hdu 4187 Alphabet Soup
这题的主要就是找循环节数,这里用找字符串最小覆盖来实现,也就是n-next[n],证明在这http://blog.csdn.net/fjsd155/article/details/6866991
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<string>
#include<vector>
using namespace std;
__int64 mod=;
int dis[],data[],next[];
__int64 euler(__int64 n)
{
int i;
__int64 ans=;
for(i=;i*i<=n;i++)
if(n%i==)
{
ans*=i-;
n/=i;
while(n%i==)
{
ans*=i;
n/=i;
}
}
if(n>) ans*=n-;
return ans%mod;
}
int get_next(int n)
{
int i=,j=-;
next[]=-;
while(i<n)
{
if(j==-||dis[i]==dis[j])
{
i++;
j++;
next[i]=j;
}
else j=next[j];
}
i=n-j;
if(n%i)
return n;
return i;
}
__int64 pows(__int64 a,__int64 b)
{
__int64 ans=;
a%=mod;
while(b)
{
if(b&) ans=(ans*a)%mod;
b>>=;
a=(a*a)%mod;
}
return ans%mod;
}
__int64 polya(__int64 m,__int64 n)
{
int i,j;
__int64 ans=;
for(i=;i*i<=n;i++)
{
if(n%i==)
{
ans=(ans+pows(m,n/i)*euler(i)%mod)%mod;
if(i*i!=n)
ans=(ans+pows(m,i)*euler(n/i)%mod)%mod;
}
}
return (ans*pows(n,mod-))%mod;
}
int main()
{
int n,i,j,k,t,m,s,p;
while(cin>>s>>p)
{
if(s==-&&p==-) break;
for(i=;i<p;i++) cin>>data[i];
sort(data,data+p);
for(i=;i<p;i++)
dis[i]=data[i]-data[i-];
dis[]=-data[p-]+data[];
int len=get_next(p);
printf("%I64d\n",polya(pows(s,len),p/len));
}
return ;
}
hdu 4187 Alphabet Soup的更多相关文章
- hdu - 4782 - Beautiful Soup(模拟)
题意:输出一堆乱排版的html标签,去多余空字符,转换为按缩进输出. 题目链接:pid=4782">http://acm.hdu.edu.cn/showproblem.php?pid= ...
- HDU 4782 Beautiful Soup --模拟
题意: 将一些分散在各行的HTML代码整理成标签树的形式. 解法: 模拟,具体见代码的讲解. 开始没考虑 '\t' .. 代码: #include <iostream> #include ...
- HDU 4782 Beautiful Soup (模拟+注意细节)
思路就是用栈模拟,不用开实体的栈,直接记一个top指针就行. 说说这题的细节: 1.tag标签里的内容不要动,原样输出.比如<p aa bb cc>,就这样输出就行,不要删空格.题目中说了 ...
- Hessian 二进制RPC协议框架
Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议. 和其他Web服务的实现框架不同的是,Hessian是一个使用二进制轻量级的Web服务协议的框架,免除了许多附加的 ...
- java开发常用jar包介绍(转载)
jta.jar 标准JTA API必要 commons-collections.jar 集合类 必要 antlr.jar ANother Tool for Language Recognition ...
- A trip through the Graphics Pipeline 2011_03
At this point, we’ve sent draw calls down from our app all the way through various driver layers and ...
- 常见 jar包详解
常见 jar包详解 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期 ...
- WebService第二天
WebService第二天 课程安排:(CXF+HESSIAN) 框架CXF概述(是什么,SOA概述,下载安装) CXF快速入门(服务端.客户端开发,日志拦截器,SOAP版本相互调用的) CXF与sp ...
- JAR包介绍大全用途作用详解JAVA
jta.jar 标准JTA API必要commons-collections.jar 集合类 必要antlr.jar ANother Tool for Language Recognition 必要 ...
随机推荐
- Windows Phone 7 中拷贝文件到独立存储
private void CopyToIsolatedStorage(){ using (IsolatedStorageFile storage = IsolatedStorageFile.Ge ...
- 【风马一族_xml】xmlp之dtd1
什么是XML约束? 在xml技术里,可以编写一个文档来约束一个xml文档的写法,这称之为xml约束 2. 为什么要使用xml约束? 参看提示栏 3. xml约束的作用? 约束xml的写法 对xml进行 ...
- ◆linux分区的加密与自动解密◆——Super孟再创辉煌
首先制作分区的加密挂载: 分区的自动解密:
- silverlight将字符串转化为控件
silverlight的System.Windows.Markup命名空间下,提供了XamlReader.Load()方法可以将字符串转换为控件. 代码 StringBuilder sbGrid = ...
- WPF 绑定一(数据源为控件)
xaml: <Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.co ...
- openerp模块收藏 基于Lodop的报表打印模块(转载)
基于Lodop的报表打印模块 原文:http://shine-it.net/index.php/topic,7397.0.html 前段时间写了个小模块,来解决OE中报表打印不方便的问题.借鉴了 @b ...
- openerp学习笔记 跟踪状态,记录日志,发送消息
跟踪状态基础数据: kl_qingjd/kl_qingjd_data.xml <?xml version="1.0"?><openerp> <d ...
- JSON对象配合jquery.tmpl.min.js插件,手动攒出一个table
jquery.tmpl.min.js 首先下载这个插件 1.绑定json那头的键 //TemplateDDMX 这个是这段JS的ID,这个必须写!!!!!! //${}为json的键的值,必须要填写正 ...
- 大陆Azure 改版
好吧主页的又改版了这下终于容易区分大陆与国际版的区别了.2014年12月12日起改版. 主页再次沦落为找不到东西的后果,其实很少进入这个主页,一般也直接使用http://manage.windowsa ...
- Keil uVision4 代码编辑器中文字符乱码问题
MDK-ARM 使用中一直有个很纠结的问题,中文字符支持不好. 比如写代码注释,使用中文删除字符就会只删除一半问题.复制粘贴代码中间有中文就会出现乱码问题. 想过换IAR,新学个IDE也麻烦,上面的问 ...