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 必要 ...
随机推荐
- 获取Class对象的方法及Class类型的一些讨论
(1)Class.forName(className) (2)classname.Class 如果是数组,则是数组类型[].class (3)对象.getClass() 例: String path ...
- (转)Jmeter内存溢出处理方式记录
方法一: 使用jmeter进行压力测试时 遇到一段时间后报内存溢 出outfmenmory错误,导致jmeter卡死了,先尝试在jmeter.bat中增加了JVM_ARGS="- Xmx20 ...
- [精校版]The Swift Programming Language
通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”.在 Swift 中,可以用一行代码实现: println("hello, world") 如 ...
- Windows 下 Composer 与 Laravel 4 的安装
1.安装Composer Composer是PHP的依附经管对象之一,官方网站 http://getcomposer.org/ .它支撑多种安装体式格式,对于在win下做开辟的草来说,最便捷的体式格式 ...
- android 在标题栏加上按钮
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowF ...
- 【转】如何在 Windows 中执行干净启动
完成故障排除后,请执行以下步骤将计算机重置为正常启动. Windows 8.1 和 Windows 8 从屏幕右边缘滑入,然后点按“搜索”.您也可以将鼠标指向屏幕的右下角,然后单击“搜索”. 在搜索框 ...
- 管道和FIFO
pipe 子进程从终端读取一个文件名, 通过管道将文件名传递给父进程 父进程收到文件名后, 读取文件内容并通过管道传递给子进程 子进程接收到文件内容并输出到终端 #include <stdio. ...
- MySQL性能优化的最佳20+套经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操 ...
- JAVA SSH 框架介绍
SSH 为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架. Struts Struts是一个基于Sun J2EE平台的MVC框架, ...
- OpenCV之mixChannels()函数使用说明
step 1: 函数功能说明 mixChannels主要就是把输入的矩阵(或矩阵数组)的某些通道拆分复制给对应的输出矩阵(或矩阵数组)的某些通道中,其中的对应关系就由fromTo参数制定. step ...