n对mod求模,它的值在0到mod-1之间,如果要求模整除的时候转化成mod可以用下面的式子: n = (n - 1 % mod + mod) % mod +1 这里先减一,模上mod再加一,这样如果是整除mod的话先减一模上之后就变成mod-1,最后+1就变成mod了 这里模mod的方法是先模mod再加mod再模mod,这是常用的做法,目的是为了使得模的结过为正数,而不是负数.…
+; int prime[maxn]; void marktable(int n){ memset(prime,,sizeof(prime)); ;i<=n;i++){ ]]=i; ;j<=prime[]&&prime[j]<=n/i;j++){ prime[prime[j]*i]=; ) break; } } } ][]; int fatCnt; int getFactors(long long x){ fatCnt=; long long tmp=x; ;prime[…
// |A| * A- = A* (伴随矩阵) = 逆矩阵 * 矩阵的值 #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<ctime> #include<iostream> #include<algorithm> using namespace std; ; ; int a[MAXN][MAXN], b[MAXN][…
最近正在学AC自动机,按照惯例需要刷一套kuangbin的AC自动机专题巩固 在网上看过很多模板,感觉kuangbin大神的模板最为简洁,于是就选择了用kuangbin大神的模板. AC自动机其实就是字典树和KMP的结合,然后去思考一下KMP的原理,然后就是在字典树上实现KMP 这里最重要的思想可能就是fail的思想,就像KMP一样,匹配失败后,有一个next的数组去回溯(最长公共前缀后缀) 如何理解了KMP的话,感觉这个不会很难理解,字典树是一个非常简单的东西就不用讲了吧. HDU - 222…
欢迎关注__Xiong的博客: http://blog.csdn.net/acmore_xiong?viewmode=list 最长回文                                                                Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)                                  …
/* 已知递推数列 F[i]=a*F[i-1]+b (%c) 解方程F[x]=t an+1 = b*an + c an+1 + c/(b-1) = b(an + c/(b-1)) an+1 + c/(b-1) = b^(n-1) * (a1+c/(b-1)) 根据这个数列可得 F[x] = (F[1] + b/(a-1))*a^(x-1) - b/(a-1) = t; (F[1] + b/(a-1))*a^(x-1) = t+b/(a-1) a^(x-1) = (t+b/(a-1)) / (F[…
给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值. 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1. 输入格式 第一行包含整数n和m. 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z. 输出格式 输出一个整数,表示1号点到n号点的最短距离. 如果路径不存在,则输出-1. 数据范围 1≤n,m≤1051≤n,m≤105,图中涉及边长均不小于0,且不超过10000. 输入样例: 3 3 1 2 2 2 3 1 1 3…
备忘. /*看到n可以取到2*10^9.说明普通方法一个个暴力计算肯定会超时的,那打表呢?打表我们要先写个打表的代码,这里不提供.打完表观察数据,我们会发现数据其实是有规律的.完全不需要暴力的把所有数据打出来了! 通过数据我们发现,第n个回文数的规律如下: 1位的回文数有9个 2位的回文数有9个 3位的回文数有90个 4位的回文数有90个 5位的回文数有900个 6位的回文数有900个 原因是什么呢,如四位数的回文数个数,我们只看字符串的一半,从1001到9999,只看一半就是共有90个回文数.…
网络 Time Limit: 1000 MS Memory Limit: 65535 K Total Submit: 103(32 users) Total Accepted: 54(31 users) Rating: Special Judge: No Description     一个电话公司建立了一个新的电话网,他们用1——N的整数标记了一些地方,每个地方有唯一的编号,网络中的每条电缆双向连接了两个地方,从每个地方可以通过电缆连接到任意其他的地方,因为它们之间不一定要有直接相连的电缆,可…
#include <iostream> #include <cstring> #include <cstdlib> #include <stdio.h> #include <string> #include <math.h> #include <stdlib.h> using namespace std; #define maxn 110100 *maxn]; *maxn]; void manacher(char *s){…