ploya定理,然后公式利用欧拉函数优化,gcd必然是因子,这样只要枚举因子,每个因子利用欧拉函数计算出现次数
代码:
#include
#include
#include
using namespace std;
int t, n, p;
int pow_mod(int x, int k) {
x %= p;
int ans = 1;
while (k) {...
分类:
其他好文 时间:
2015-04-23 10:59:24
阅读次数:
115
题意:求字符串s的所有前缀出现次数之和。http://www.cnblogs.com/jklongint/p/4446117.html思路:用kmp做,简单且效率高。以前缀结尾的位置分类,令dp[i]为以结尾位置在i的前缀数量,那么dp[i] = cnt(j)(j~i是前缀),而由kmp的next函...
分类:
编程语言 时间:
2015-04-23 07:08:52
阅读次数:
170
题目大意:
一个"hat's word"是一个单词,可以恰好由字典中其他两个单词连接得到(比如字典中是hat's和word)。
给出字典中的单词,输出所有的hat's word。
思路:
建立字典树,将每个单词都插入到Trie树中,Count统计单词(不是前缀)出现次数。按顺序将每个单词
所有可能的长度拆分成前缀单词和后缀单词,判断这两部分是否都在字典树中,是就是hat's word,
进行输出,否则继续拆分当前单词或下一单词。...
分类:
其他好文 时间:
2015-04-22 14:01:55
阅读次数:
124
题目大意:
有N个士兵。用不同的整数表示不同的级别。级别高的士兵可以教级别低的士兵,他们可以共用一把
扫帚。一个士兵最多只能有一个学生或一个老师。问:最少需要几把扫帚。
思路:
对于士兵都不相同的士兵,只需要一把扫帚。那么问题转变为找出给出数理重复次数最多的个数。建
立字典树,将每个数当作字符串插入字典树中,记录每个数出现的次数,最后找出重复出现次数的最
大值即为所求。注意:04和4都表示4,插入的时候,应该清除掉前导零。...
分类:
其他好文 时间:
2015-04-22 11:39:40
阅读次数:
113
题目大意:求严格/非严格K小子串
首先建立Sam
然后BFS一遍求出每个点代表状态的出现次数
此时如果是严格的那么每个点代表状态的出现次数都应该是1
然后DFS一遍求出每个节点的后继状态个数
然后就随便搞了啊= =
妈了个鸡卡常数。。。#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-04-21 20:51:35
阅读次数:
149
#include
#include
//#include
using namespace std;
int main()
{
string str;
cout<<"input some text:"<<endl;
getline(cin,str);
//char str[200];
//cin.getline(str,200);
int cnt[256]={};
for(int i=...
分类:
编程语言 时间:
2015-04-20 18:36:16
阅读次数:
128
一、描述
题目1:判断一个数字是否是2的阶次方数,例如8,16,64,256都是2的阶次方数。
题目解析:如果一个数是2的阶次方数,那么这个数字的二进制数的首位为1,后面跟着若干个0,例如8用二进制表示为1000,64为1000000, 如果让这个数减1,然后和这个数做按位&运算即得0,即(number-1)&number==0,8&7=1000&0111=0000。
题...
分类:
编程语言 时间:
2015-04-19 11:35:08
阅读次数:
171
原题
一个有N个元素的集合,其中有相同元素。
需要得到按重复元素多少排序的新集合。
{"a","b","c","c","a","c"}
得到
{"c","a","b"}
求算法
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java...
分类:
编程语言 时间:
2015-04-17 23:53:54
阅读次数:
306
裸的回文串自动机
3676: [Apio2014]回文串
Time Limit: 20 Sec Memory Limit: 128 MB
Submit: 504 Solved: 152
[Submit][Status][Discuss]
Description
考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出
现值”为t在s中的出现次数乘以t的...
一、基本原理
存在一个样本数据集合(也称训练样本集),并且样本集中每个数据都存在标签。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。
我们一般只选择样本集中前k(k通常是不大于20的整数)个最相似的数据,最后选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
二、算法流程...
分类:
编程语言 时间:
2015-04-17 11:44:08
阅读次数:
162