- 博客(217)
- 资源 (1)
- 收藏
- 关注
原创 hdu 5180 状态压缩 dp 打表
hdu 5180 状态压缩 dp 打表题意:在n*n的国际象棋中,放置若干个国王和k个车,使得国王之间不互相攻击,车之间不互相攻击,车不可攻击到国王(这并不代表国王不能攻击到车)。国王能攻击到它上下左右,左上左下右上右下八个位置的棋子,车可以攻击到同一行或同一列中的棋子,求方案总数对1000000007取模后的值。 限制:1 思路:状态压缩,dp,打表套打表
2015-03-07 14:35:45 1363
原创 zoj 3435 spoj 7001 莫比乌斯反演
zoj 3435题意:给出3个数a,b,c, 定义一个立方体,这个立方体有a*b*c个点,每个点的坐标都是整数(x,y,z),求经过坐标(1,1,1)和另外任意一个点(x1,y1,z1)的不同的直线有多少条。限制:2 思路:有3种情况:1. x1,y1,z1都大于等于2:问题就变成求1 用莫比乌斯反演来做。设f(k)为gcd(x,y,z)=k
2015-03-05 15:08:00 864
原创 bzoj 2301 莫比乌斯反演
bzoj 2301 莫比乌斯反演题意:给出a,b,c,d, 求符合条件a 限制:1 思路:这道题可以化为:求 1 这个问题可以用莫比乌斯反演解决。设f(k)为gcd(x,y)=k的数对(x,y)的数目,设F(k)为gcd(x,y)为k的倍数的数对(x,y)的数目,显然F(k)=floor(t1/k)*floor(t2/k),由于这道题case数比
2015-03-05 14:28:32 1027
原创 poj 3904 莫比乌斯反演 或 容斥原理
poj 3904 莫比乌斯反演 或 容斥原理题目:给出n个数字a1,a2,...an, 求从中选出一个四元组(a,b,c,d), 使得gcd(a,b,c,d)=1,求符合条件的四元组的数目。限制:1 思路:莫比乌斯反演入门题设f(k)为gcd(a,b,c,d)=k的四元组的数目,设F(k)为gcd(a,b,c,d)为k的倍数的四元组的数目,F(k
2015-03-04 21:12:08 1779
原创 hdu 1695 莫比乌斯反演
hdu 1695 莫比乌斯反演题意:给出a,b,c,d,k, 求满足a 限制:a=c=1; 0 思路:其实是求满足1 莫比乌斯反演入门题设f(k)为gcd(x,y)=k的数对(x,y)的对数,我们要求的是f(1)设F(k)为gcd(x,y)为k的倍数的数对(x,y)的对数,可以想到F(k)=floor(b/k)*floor(d/k),由莫比乌
2015-03-04 20:32:26 3344
原创 素数筛
素数筛一个有用的性质:1~n的素数只需要用1~sqrt(n)的素数来筛,这个性质在局部筛的情况下很有用。两种素数筛的代码:/*素数筛 一个有用的性质:1~n的素数只需要用1~sqrt(n)的素数来筛,这个性质在局部筛的情况下很有用。 */#include #include #include #include using namespace std;
2015-03-04 17:59:37 849
原创 poj 1091 (容斥原理)
poj 1091 (容斥原理)题意:给出了n和m,要求出满足最大公约数(x1,x2,...,xn,m)=1的x1,...,xn的组数sum,其中必须满足0 限制:n 思路:容斥原理容斥有两种做法枚举最大公约数(x1,x2,...,xn,m)包含的质因子来容斥/*poj 1091 题意: 给出了n和m,要求出满足最大公约数(x1,x2,...,xn,m)=1的x1,.
2015-02-22 23:34:26 899
原创 hdu 5177 (1e18范围的卡特兰数)
hdu 5177 (1e18范围的卡特兰数)题意:求第n个卡特兰数,模3814697265625 (5^18)限制:有20组数据,1 思路:1. 卡特兰数的表达式:ans = 1/(n+1) * C(2*n,n)-> ans = 1/(n+1) * (2n)! / n! / n! ---1式2. 因为要模5^18,求逆元要求互质,所以先把"
2015-02-22 21:54:30 3150 2
原创 poj 3696 欧拉函数
poj 3696题意:给出一个数字L,求出最短的888...8能被L整除,输出最短的长度。限制:1 思路:设x为最小长度888...8=(10^x-1)/9*8由题意得:(10^x-1)/9*8 % L=0-> (10^x-1)*8 % (9L) = 0-> (10^x-1) % (9L/gcd(L,8)) = 0-> 10^x % (9L/gcd(
2015-02-22 16:41:49 1005
原创 欧拉函数
欧拉函数定义:欧拉函数phi(n),表示小于或等于n的数中与n互质的数的数目。欧拉函数的性质:1. phi(1)=12. 若n是素数p的k次幂:phi(n)=p^k-p^(k-1)=(p-1)p^(k-1)3. 若m,n互质,phi(mn)=phi(m)*phi(n)欧拉函数的递推式:令p为n的最小质因数若p^2|n,则phi(n)=phi(n/
2015-02-22 16:28:15 883
原创 hdu 5176 The Experience of Love
hdu 5176 The Experience of Love题目:一个叫Gorwin的女孩和一个叫Vivin的男孩是一对情侣。他们来到一个叫爱情的国家,这个国家由N个城市组成而且只有N-1条小道(像一棵树),每条小道有一个值表示两个城市间的距离。他们选择两个城市住下,Gorwin在一个城市Vivin在另外一个,第一次约会,Gorwin去找Vivin,她会写下路径上最长的一条小道(ma
2015-02-17 18:22:24 791
原创 bnuoj 17184 代数
bnuoj 17184 代数题意:现有N个未知数A[1],A[2],…A[N],以及M个方程,每个方程都是形如A[s]+A[s+1]+A[s+2]+…A[t-1]+A[t]=c。现在求解这个方程组。限制:1 思路:带权并查集。这道题想了好久没想通,最后才知道还可以用并查集做,涨知识了。感谢http://blog.csdn.net/balloons2012/a
2015-02-17 17:49:16 547
原创 codeforces 514E Darth Vader and Tree (dp+快速幂)
codeforces 514E Darth Vader and Tree (dp+快速幂)题意:有一棵树,每个节点有n个儿子,给出父亲到每个儿子的距离di,问离祖先距离不超过x的子孙有多少个(子孙包括祖先)对1e9+7取模。限制:1 思路:因为di 大概过程为:先用dp算出前100的答案,剩下的用快速幂来处理。/*codeforces 514E Darth
2015-02-16 12:50:45 1163
原创 codeforces 514D R2D2 and Droid Army
codeforces 514D R2D2 and Droid Army题目:思路:尺取法+堆#include#include#include#include#includeusing namespace std;#define LL __int64const int N=100005;int a[N][6];int n,m;LL
2015-02-16 12:39:55 1008
原创 codeforces 514C Watto and Mechanism (分段暴力)
codeforces 514C Watto and Mechanism (分段暴力)题意:给出一个包含n个单词的字典,给出m个待查询单词,如果单词在有且仅有一个字符不相同的情况下可以在字典里找到,则输出YES,否则输出NO限制:0 思路:分段暴力。以查询单词长度为500分段:查询单词长度查询单词长度>500则:暴力查询,复杂度为600*600*500=1.8
2015-02-16 12:14:32 1523 2
原创 codeforces 509F Progress Monitoring
codeforces 509F Progress Monitoring题意:used[1 ... n] = {0, ..., 0};procedure dfs(v): print v; used[v] = 1; for i = 1, 2, ..., n: if (a[v][i] == 1 and used[i] == 0): dfs(i);
2015-02-14 10:14:51 837
原创 codeforces 509D Restoring Numbers
codeforces 509D Restoring Numbers题意:v[i][j]=(a[i]+b[j])%k现在给出n*m矩阵v[][], 求a[],b[]和k, 任意一种情况都行。限制:1 思路:对于数组a[], 无论怎么变, 数组之间的差始终不变, b[]也同理利用这个求出k再设a[0]=0,b[0]=0,求出剩下的东西。{CSDN:COD
2015-02-14 10:04:15 1094
原创 codeforces 509C Sums of Digits
codeforces 509C Sums of Digits题意:给出n个数字各位的加和bi,求一个严格递增的数列。要求最后一个数字最小。如:3 2 1 -> 3 11 100限制:1 思路:贪心,要求最后一个数字最小,只要保证一路过来的数字都尽量小就行。令d=b[i]-b[i-1],如果d>0,则从最低位填起,尽量把低位填到9如果d0,然后就可以转
2015-02-14 09:35:03 984 1
原创 hdu 5172 GTY's gay friends
hdu 5172 GTY's gay friends题意:给出n个数, a[1],a[2],...a[n], m个询问, 对于每个询问[l,r], 问a[l],a[l+1],...,a[r]是不是集合{1,2,...,r-l+1}限制:1 思路:预处理出,对于每个位置,它前一个相同的数对的位置。如:给出的数组: 1 2 1 2 3预处
2015-02-13 16:42:04 740
原创 poj 1811, poj 2429 (pollard_rho算法)
poj 1811题意:给出一个整数n,判断n是不是素数,如果不是素数,输出最小的质因子。限制;2 思路:miller_rabin算法判素数pollard_rho算法求质因子复杂度O(log(n))/*poj 1811 题意: 给出一个整数n,判断n是不是素数,如果不是素数,输出最小的质因子。 限制; 2 <= N < 2^54
2015-02-12 20:14:20 983
原创 Miller_Rabin算法 (poj 3641)
Miller_Rabin算法 (poj 3641)二次探测法:定理:如果p是素数,x是小于p的正整数,且(x^2)%p=1,那么要么x=1,要么x=p-1。过程:要测试N是否为素数,首先将N-1分解为d*2^s。在每次测试开始时,先随机选一个介于[1,N-1]的整数a,如果对于所有的r(0 题目:poj 3641题意:给出p,a, 判断p是不是对于a的伪素数。限
2015-02-11 23:19:52 643
原创 poj 2689
poj 2689题意:给出(l,r), 求出区间[l,r]之间差最小,和差最大的相邻的素数对。限制:1 思路:筛法,对于2^32 只需要 2^16范围内的素数,就可以把后面的素数筛出。/*poj 2689 题意: 给出(l,r), 求出区间[l,r]之间差最小,和差最大的相邻的素数对。 限制: 1 <= l < r <= 21474836
2015-02-11 18:41:20 838
原创 N次剩余 (hdu 3930)
N次剩余 (hdu 3930)任务:给定N, a, p, 求出(x^N)%p=a 在模p意义下的所有解x。说明:令g为p的原根,因为p为素数,所以phi(p)=p-1。由原根的性质得:如果g为p的原根,则:g^i mod p != g^j mod p (p为素数), 其中i != j且i, j介於1至(p-1)之间所以,可以设g^y=x, g^t=a,则有:g^
2015-02-11 18:16:30 1720
原创 快速查找
快速查找1.c++中的unordered_map//c++中的hash//unordered_map 在某些oj上不能用#include #include using namespace std;using namespace std::tr1;int main (){ unordered_map mp; mp["asd"]=1; cout<<mp
2015-02-11 17:23:10 783
原创 用git.oschina.net push的时候不用输密码的方法
用git.oschina.net push的时候不用输密码的方法增加远程地址的时候带上密码。http://yourname:password@git.oschina.net/name/project.git补充:使用客户端也可以存储密码的。如果你正在使用ssh而且想体验https带来的高速,那么你可以这样做: 切换到项目目录下 :cd
2015-02-05 19:46:23 1364
原创 离散对数,giant-step baby-step,拓展giant-step baby-step (poj 2417, hdu 2815)
离散对数,giant-step baby-step,拓展giant-step baby-step (poj 2417, hdu 2815)普通giant-step baby-step:poj 2417题意:B^L==N(MOD P), 给出P,B,N, 求最小的非负L。限制:2 思路:离散对数,用giant-step baby-step解
2015-02-05 16:00:54 1090
原创 平方剩余 (poj 1808)
平方剩余 (poj 1808)题意:判断平方剩余,即判断(x^2)%p=a是否有解。限制:|a| 思路:用欧拉准则计算勒让德符号(用来判断平方剩余)代码,内含求平方剩余的解函数/*poj 1808 题意: 判断平方剩余,即判断(x^2)%p=a是否有解。 限制: |a| <= 1e9 && a % p !=0; 2 < p < 1
2015-02-05 11:55:12 1470
原创 原根小结 (poj 1284)
关于原根的一些知识点:定义1:设,,使得成立的最小的,称为对模的阶,记为。定理1:如果模有原根,那么它一共有个原根。定理2:若,,,则。定理3:如果为素数,那么素数一定存在原根,并且模的原根的个数为。定理4:设是正整数,是整数,若模的阶等于,则称为模的一个原根。 假设一个数对于模
2015-02-05 10:50:27 1495
原创 poj 3090 (欧拉函数,找规律)
poj 3090 (欧拉函数,找规律)题目:给出一个n*n的点阵,求从(0,0)出发斜率不相等的直线有多少条。限制:1 <= n <= 1000思路:先定义sum[i]sum[i] = 0, if(i == 1)sum[i] = sum[i-1] + phi[i], if(i >= 2)ans = sum[n] * 2 + 3
2015-02-05 10:40:31 831
原创 Penney's game (hdu 5169, zoj 3274)
Penney’s game (hdu 5169, zoj 3274)matrix67有一篇介绍Penney’s game的文章,可以看下:http://www.matrix67.com/blog/archives/6015Penney’s game 概率的计算方法:假如 a 和 b 是两个 n 位 01 串。如果 a 和 b 完全相等,那么记一个数字 1 ,如果不相
2015-02-03 16:21:56 1769 3
原创 hdu 5168 Legal path
hdu 5168 Legal path题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5168题意:一个有向图,给定起点终点,每条边上有权值。一条合法的路径定义为相邻边的权值之差不小于K的路径,即路径上每条边的权值至少要比上一条边的权值大K,如果上一条边存在。合法路径的长度定义为路径上的边权值总和。求从起点到终点的合法路径的
2015-02-02 00:10:06 1243 2
原创 hdu 5167 Fibonacci
hdu 5167 Fibonacci题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5167题意:fi[0]=0,fi[1]=1fi[i]=fi[i-1]+fi[i-2] i>1给出一个数n,问这个数能不能有fi[]相乘得来。限制:0 思路:1e9以内的斐波那契数只有44个,用记忆化搜索可以解决这道题。
2015-02-01 23:47:22 832
原创 poj 2115 (解单变元模线性方程)
poj 2115 (解单变元模线性方程)http://poj.org/problem?id=2115题意:给出a,b,c,k,求x,使得(a+c*x)%(2^k)=b限制:0 思路:拓展欧几里得单变元模线性方程令 A=c;C=((b-a)%(2^k)+2^k)%(2^k);B=2^k则这道题就化为Ax%n=B对于Ax%B=C-> Ax
2015-01-31 12:20:35 821
原创 hdu 5165 Funny Game (博弈)
hdu 5165 Funny Game题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5165题意:Bob有一个数组{a1,a2,...,an},数组中的每个元素都是介于1到n之间的整数。Bob还有m个函数,他们的定义域和值域都是集合{1,2,...,n}。Bob和Alice轮流开始玩游戏,Alice先开始。对于每一轮,玩家
2015-01-31 11:57:31 881
原创 中国剩余定理小结 (互质,非互质) (poj 1006,hdu 3579)
中国剩余定理小结 (互质,非互质) (poj 1006,hdu 3579)先证明下中国剩余定理条件:x%m_1=a_1x%m_2=a_2...x%m_n=a_nm_1,m_2,...,m_n两两互质证明:设M=m_1*m_2*m_3*...*m_nM_i=M/m_i因为gcd(M_i,m_i)=1,所以M_ix+m_iy=1(t_i*M_
2015-01-31 11:05:00 1238
原创 hdu 5164 Matching on Array (用map实现的ac自动机)
hdu 5164 Matching on Array (用map实现的ac自动机)题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5164题意:给出长度为n一个母串,给出m个长度为ki子串,匹配的条件是比率相同,如子串4 8 能和 1 2 4匹配。问所有子串在母串中出现多少次。限制:1 <= n,m <= 1e51 <= ki <= 300000思路:赤裸裸的ac
2015-01-30 10:30:00 918
原创 codeforces 508 D. Tanya and Password (fleury算法)
codeforces 508 D. Tanya and Password (fleury算法)题目链接:http://codeforces.ru/problemset/problem/508/D题意:给出n个长度为3的字符串,如:abc bca aab 如果一个字符串的长度为2的后缀等于,另外一个字符串的长度为2的前缀,则这两个字符串能连起来,比如:aabca,然后这n个字符串
2015-01-29 17:59:14 1024
原创 codeforces 508 E. Arthur and Brackets
codeforces 508 E. Arthur and Brackets题目链接:http://codeforces.ru/problemset/problem/508/E题意:有n对括号,按顺序,给出每对括号长度的范围,输出一种情况。限制:1 思路:贪心:能匹配的先匹配。括号匹配问题,果断先思考用栈能不能做。
2015-01-29 17:40:11 1409
原创 自然数幂和与伯努利数 小结
自然数幂和与伯努利数 小结最近在看自然数幂和这类问题,觉得ACdreamer这两篇博客写得不错,可以看下。http://blog.csdn.net/acdreamers/article/details/38929067http://blog.csdn.net/acdreamers/article/details/39941387先对伯努利数的一些性质总结一下:1. 伯努
2015-01-26 09:49:31 4049
原创 zoj 1864 自然数幂和
zoj 1864题目链接:点击打开链接题意:求自然数幂和。限制:0 思路:k不大,而且答案不取模,直接搞(n+1)^(k+1) - n^(k+1) = C(k+1,1)*n^k + C(k+1,2)*n^(k-1) + ... + C(k+1,k)*n + 1;(n+1)^(k+1) - 1 = ( (n+1)^(k+1) - n^(k+1) ) +
2015-01-26 09:36:40 1002
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人