自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whai的专栏

要有最朴素的生活和最遥远的梦想,即使明日,天寒地冻,路遥马亡。

  • 博客(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

汇编万年历

用汇编语言写的万年历,可输出1582年之后的年历。

2013-01-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除