自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

w20810的专栏

人若无名,方可专心练剑

  • 博客(205)
  • 资源 (2)
  • 收藏
  • 关注

原创 LA 4670 Dominating Patterns (ac自动机)

题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2671题意:求哪些模式串在文本串里面出现的次数最多,输出次数和这些串。分析:在ac自动机里面标记模式串的id,用map记录。代码:#include #include

2015-09-03 21:27:12 470

原创 hdu 2222 Keywords Search (ac自动机)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2222题意:求有多少个模式串出现在文本串里面。分析:ac自动机模版题。说一下自己对ac自动机的理解,①fail指针指向的位置:父亲节点的fail指针指向的位置的一个孩子节点的位置,并且这个孩子节点所代表的字符与当前位置的字符相同。②fail指针的作用:利用fail指针可以在trie中找到一个最长前缀

2015-09-03 21:20:05 490

原创 uva Internet of Lights and Switches (异或运算+状态压缩)

题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=13&page=show_contest&contest=350题意:有N盏灯和M个开关,每一个开关控制多盏灯(比如N=4,"0011"就代表这个开关控制第3和第4盏灯),现在问你有多少种按开关的方法使得所有的灯都熄灭(每个开关只能按一次,并且按的开关的

2015-08-31 19:13:41 1310 3

原创 博弈简单题目

HDU 1846 有n个石头,2个人,每次只能拿m个,谁最后拿完谁赢。假如n%(m+1)==0,第一个人拿x个,那么第二个人拿m+1-x个,第一个人拿完之后,第二个人始终能拿。HDU 2147 有n*m个格子和一个棋子,棋子初始在(1,m),每次移动棋子只能到3个位置(左边,下边和左下),谁不能走谁就输。HDU 2188 和HDU1846一样HDU

2015-08-27 21:44:12 730

原创 UVA 11859 Division Game (Nim博弈)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32746题意:有一个n*m(1分析:考虑每个数包含的素因子个数(比如12=2*2*3包含3个素因子),则让一个数“变成它的素因子”等价于拿掉它的一个或者多个素因子。这样每一行对应一个正整数x(x表示可以拿的素因子总个数),可以拿某一行的任意多个因子。这就转化成基本

2015-08-26 21:17:00 714

原创 CSUOJ 1333 Funny Car Racing (spfa算法)

题目:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1333题意:分析:spfa代码:#include #include #include #include using namespace std;typedef long long LL;int N,M,X,Y;const int maxn = 306;const

2015-08-24 19:34:46 850

原创 CSUOJ 1336 Interesting Calculator (spfa算法)

题目:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1336 题意:分析:spfa资料1 spfa资料2代码:#include #include #include #include using namespace std;typedef long long LL;const int maxn = 1e5+6;cons

2015-08-24 19:27:38 640

原创 CSUOJ 1329 一行盒子(数组模拟链表)

题目:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1329题意:分析:数组模拟指针,每个节点有两个指针(前驱和后继),每个操作只需改变相关前驱指针和后继指针的值。代码:#include #include #include #include using namespace std;const int maxn = 1e

2015-08-23 12:36:52 790

原创 uva 11732 "strcmp()" Anyone? (trie+左儿子右兄弟表示法)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28438题意:定义了一个strcmp()函数,如图:然后给出n个字符串s(n分析:可以发现,对于不同的两个字符串比较的次数=最长公共前缀的长度*2+1,对于相同的两个字符串比较的次数=(字符串长度+1)*2。很容易想到用trie,但是最多可能有4000*100

2015-08-22 10:00:30 860

原创 hdu 5411 CRB and Puzzle (矩阵快速幂优化dp)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5411题意:按题目转化的意思是,给定N和M,再给出一些边(u,v)表示u和v是连通的,问走0,1,2.....M步的方案数。分析:这题和 hdu5318 The Goddess Of The Moon差不多,就是多了一个等比数列求和。代码:#include #include #inclu

2015-08-21 15:53:29 613

原创 hdu 5416 CRB and Tree (DFS)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5416题意:定给一棵树,有N-1条边,每条边有一个权值,查询两个点u到v的异或和为s的路的条数(u可以等于v)。分析:预处理出所有的顶点到root的异或和,然后对于每次查询枚举起点就行了。代码:#include #include #include #include using nam

2015-08-21 14:03:41 572

原创 2015年多校训练总结

昨天最后一场多校终于结束了,虽然被虐成狗,但是还是学了不少的东西,同时认识到了自己很多地方的不足。下个学期打算把没有学到的刷一下专题

2015-08-21 10:00:15 601

原创 hdu 5414 CRB and String (贪心)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5414题意:给定字符串s和t,可以在s里面选一个字符c,然后任选一个字符d(d!=c)将d插入到c的后面,问能不能将s变为t。分析:先考虑可以插的字符(串)的情况,若在字符串"sd"的字符s后面插字符串p(|p|>=1),只要p[0]!=‘s’就行,比如p="oola",第一个o插在's'后面,第二

2015-08-20 20:02:41 601

原创 hdu 5402 Travelling Salesman Problem (构造)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5402题意:给定N*M的矩阵,每一格子里面有一个非负整数,求从(1,1)到(n,m)这条路上的和,(每个格子只能走一次,求最大的和)。分析:官方题解当N为奇数或M为奇数时,可以遍历到所有格子。当N和M都为偶数的时候,那么讲棋盘黑白染色,假设(1,1)(1,1)和(n,m)(n,m)都为黑

2015-08-19 15:26:26 657

原创 hdu 5392 Infoplane in Tina Town (质因子分解求最小公倍数)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5392题意:至今没弄懂题意。按admin的意思猜的:求出每个循环的长度,然后求出这些长度的最小公倍数。结果%3221225473。分析:首先求出每个循环的长度len,由于结果很大,用gcd求最小公倍数的时候不能直接模3221225473(模下gcd是不正确的......),可以将所有的长度len分解

2015-08-16 14:31:57 956

原创 逆元小结

一、若a与n互素,那么可以用扩展欧几里德和欧拉函数求出a对于n的逆元。ax≡1(mod n),x为a对于n的逆元。用欧几里德求逆元x://a与n互素,逆元才有解 #include #include using namespace std;typedef long long LL;void exgcd(LL a,LL b,LL &d,LL &x,LL &y){ if(!b)

2015-08-15 16:45:18 1402 1

原创 LA 5902 Movie collection (树状数组)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27885题意:有n个物品从上到下放置,并且标号1~n,有n次查询,每次查询标号为x的物品现在的位置(0~n,即该物品上面有多少个物品),同时将该物品取出放到第0号位置。分析:将1~n件物品重新编号,1~n标为n~1,每次拿出一件物品x,再将其重新编号,如果是第一次

2015-08-15 14:37:52 884

原创 hdu 5389 Zero Escape (dp)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5389题意:定义数根:①把每一位上的数字加起来得到一个新的数,②重复①直到得到的数只有1位。给定n,A,B和n个一位数,求把这n个数分成两部分,使得这两部分的其中一部分的和的数根等于A另外一部分的和的数根等于B的方案数。分析:一个数a的数根s=(a-1)%9+1,为了方便直接用s=a%9,其中0代表

2015-08-14 22:28:00 776

原创 hdu 5371 Hotaru's problem (Manacher算法)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5371题意:在输入的串里面找的一个连续的串,这个串由三部分组成且长度相等,第一部分s1与第二部分s2组成的串回文,第一部分s1与第三部分s3相同。分析:由题可知,s1s2回文,s2s3回文。这里需要用Manacher算法处理出以每个位置为中心的最大回文半径。然后暴力枚举s1与s2交接处,判断是否存在

2015-08-12 20:03:39 703

原创 hdu 5372 Segment Game(树状数组+离散化)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5372题意:有两种操作,输入a b,①a==0,插入第i条线段[b,b+i],输出[b,b+i]内有多少条完全包含于[b,b+i]的线段②a==1,删除插入的第b条线段。分析:由于插入的线段长度是递增的,那么就不存在包含[b,b+i]的线段。那么完全包含于[b,b+i]的线段的数目=右端点小于等于b

2015-08-12 13:12:33 586

原创 LA 5092 && hdu 3723 Delta Wave (卡特兰数)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3723 and http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20568题意:有种折线每向右延伸一个单位长度,高度要么不变,要么加1,要么减1。而且任何时刻高度不能低于0。求这种折线最终高度为0的情况总数。分析:由于任何时刻斜

2015-08-09 23:00:58 662

原创 poj 3320 Jessica's Reading Problem(尺取法+map/hash)

题目:http://poj.org/problem?id=3320题意:给定N个元素的数组,找出最短的一段区间使得区间里面的元素种类等于整个数组的元素种类。分析:暴力枚举区间的起点x,然后找到最小的y,使得区间[x,y]满足条件,x向有移位后变成x',现在的y'肯定不至于在y的左边。存状态的话map和hash都可以。map代码:#include #include #includ

2015-08-07 23:17:43 691

原创 hdu 5358 First One (尺取法)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5358题意:分析:首先要知道[log2(x)]+1代表x的位数,而且根据题意不会超过35,那么枚举位数i:1~35。对于每一位i找到区间[x,y],使得S(x,y)的二进制表示的位数等于i,此时的贡献为i*(x+y)。那么对于每一个i,怎么找出所有符合条件的区间[x,y]?1~n枚举起点x,那么y会

2015-08-07 23:08:24 678

原创 hdu 5360 Hiking(优先队列+贪心)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5360题意:beta有n个朋友,beta要向邀请他的朋友go hiking,已知每个朋友的理想人数[L,R](现有L~R个人准备去,那么这个朋友就去)。求最多有多少人去。及beta邀请朋友的顺序。分析:每次邀请人的最优解就是:选会去的人里面R最小的那个人。代码实现的话,cur代表已经准备go hik

2015-08-06 23:00:56 819

原创 uva 11987 Almost Union-Find (并查集)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18692题意:设计一个并查集,支持三种操作①将两个集合合并②将一个集合的一个元素移到另外一个集合③查询集合元素个数和元素之和分析:由于操作②可能导致将整个集合移走(移走根节点),那么初始化的时候,以id+N为根节点就好了。代码:#include #inc

2015-08-06 10:09:37 487

原创 LA 3644 X-Plosives && LA 3027 Corporative Network (并查集入门)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=12648 and http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33982题意:两题都是比较裸的并查集。。。LA3644判断环路,LA3027算点到根节点的距离。分析:用带路径压缩的并查集查

2015-08-03 20:20:04 481

原创 LA3942 Remember the Word(字典树+记忆化搜索)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22109题意:给出一个由S个不同单词组成的字典和一个长字符串。把这个字符串分解成若干个单词的连接(单词可以重复使用),由多少种方法?比如,有4个单词a,b,cd,ab,则abcd有两种分解方法:a+b+cd和ab+cd分析:首先将输入的字典建成字典树。然后记忆化搜

2015-08-03 19:58:11 650

原创 uva11997 K Smallest Sums(优先队列)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18702题意:N行N列矩阵,每行选一个数求和,选出前N个最小的和。代码:/*简化问题: a和b两个序列都有n个元素,从a何b中各选一个元素求和,有n*n种情况,找出前n小的n个和。考虑所有情况: a[1]+b[1] a[1]+b[2] a[1]+b

2015-08-03 11:31:54 426

原创 LA3357 Pinary (递推)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32000题意:把所有不含前导0和连续1的二进制串从小到大排列,即1,10,100,101,1000,1001......求第K个串。k≤90,000,000。分析:dp[i][j]代表长度为i最后一位是j的串的个数。那么dp[i][1]=dp[i-1][0],

2015-08-01 14:51:47 477

原创 uva11235 Frequent values(线段树区间合并)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23846题意:查询给定区间出现次数最多的数出现的次数。分析:维护5个值,区间最大次数,左边的数的值及它覆盖的最右边的位置,右边的数的值以及它覆盖的最左边的位置。代码:#include #include using namespace std;#def

2015-07-31 21:32:20 432

原创 LA3938 "Ray, Pass me the dishes!" (线段树区间合并)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22105题意:给定整数n和m,给出一个n个元素的序列,查询m次给定区间[L,R]的最大连续和的位置[x,y],有多个区间输出x最小的,还有多个的话输出y最小的。分析:每个节点存8个信息,最大连续和、最大后缀和、最大前缀和、区间和、前缀末位置、后缀首位置、最大连续和

2015-07-31 19:55:26 744

原创 hdu5316 Magician(线段树区间合并)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5316题意:有n个精灵,每个精灵有一个能力值,有两种操作①改变某一个精灵的能力值②查询区间[L,R]里面位置奇偶相间的能力值的最大和。分析:这题线段树区间合并可以做。每个节点保存4个信息:①以奇位置开始偶位置结束的奇偶序列最大和②以奇位置开始奇位置结束的奇偶序列最大和③以偶位置开始偶位置结束的奇偶序

2015-07-31 19:31:33 730

原创 hdu5335 Walk Out (递推||广搜)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5335题意:给你N*M的01矩阵,求从(1,1)位置走到(N,M)的最小二进制数,输出不含前导0。分析:为了不让当前位置向上走,可以先将所有的起点预处理出来。当(1,1)为1,那么起点只有一个,就是(1,1);当(1,1)为0,起点就是从(1,1)可达的并且只走0的这些点,然后把这些起点离终点最近的

2015-07-31 10:22:42 531

原创 hdu5318 The Goddess Of The Moon (矩阵快速幂优化dp)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5318题意:给定n个数字串和整数m,规定若数字串s1的后缀和数字串s2的前缀相同且长度≥2,则s2可以拼接在s1的后面,每个串可以重复用,问拼接m个数字串有多少种方法。分析:定义dp[i][j]为拼接了i个串并且这个长串以s[j](输入的第j个数字串)结尾的方案数。那么有 for(int i=

2015-07-29 23:20:04 1034

原创 HNU13303 Counting substhreengs(递推)

题目:http://acm.hnu.cn/online/?action=problem&type=show&id=13303&courseid=0题意:给你一个字符串,由数字和其他字符组成,问有多少个子串,使得子串里面的数字和为3的整数倍(子串必须连续,而且里面不能有其他字符)。分析:开3个数组,dp0[i],dp1[i],dp2[i]。dp0[i]表示从字符串的最后一个位置到位置i有多少

2015-07-26 10:14:33 972

原创 hdu5296 Annoying problem (LCA+SET)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5296题意:给定N个点和N-1条边以及边的权值,再给定一个set,向set里面添加/删除节点求让set里面的节点连通的最小费用。分析:看大神博客知道的。这题主要求点到链的距离。先解决点到点的距离,假如dis[x]表示x到root的距离,那么点u和v的距离就是dis[u]+dis[v]-dis[lca

2015-07-26 00:30:55 1086

原创 hdu5308 I Wanna Become A 24-Point Master(构造)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5308题意:给定N个N,求出将这N个N构造成24的方法。分析:要是想到用尽量少的N构造出24点((N+N)/N * (N+N)/N * (N+N)/N * (N*N+N)/N),然后把多的N构造成0就好办了((N-N)*N*.....)。代码:#include #include #i

2015-07-24 22:12:38 610

原创 hdu5305 Friends(dfs+map/hash)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5305题意:给定N个人和M条朋友关系,是朋友关系的两个人之间有两种联系方式online和offline。使每个人的online的数量和offline的数量相等,求方案数。分析:由于M代码:#include #include #include #include #include us

2015-07-23 23:03:36 675

原创 hdu5297 Y sequence(容斥原理+迭代)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5297题意:给定整数n和整数r,在1、2、3、4、5.......的序列中删掉可以开2次方的数,3次方的数,4次方的数,.......r次方的数,剩下的数称为Y序列,求Y序列中第n个数是多少。分析:对于一个数x,如果求出x在Y序列的位置就好办了。     先不管序列中的1,假如r=3,可以开2次

2015-07-23 10:08:42 1549

原创 hdu5289 Assignment (区间查询最大值最小值,st算法...)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5289题意:给定长度为n的序列a和一个整数K,找出最大值和最小值的差值小于K的区间。输出满足条件的区间的个数。分析:枚举a[i],以a[i]为起点,然后二分找终点(大区间满足条件的话小区间肯定也满足),根据起点和终点的位置可以算出以a[i]为起点可满足条件的区间的个数。怎么判断区间是否满足条件?可以

2015-07-23 09:29:17 1014

2010~2014湖南省程序设计竞赛题目+数据+标程

此压缩包包含2010~2014年湖南省程序设计竞赛的题目和数据以及标程。赛前练一练,对比赛有帮助。

2015-12-13

空空如也

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

TA关注的人

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