- 博客(152)
- 收藏
- 关注
原创 HDU5956 The Elder(树上斜率DP)
题目:Once upon a time, in the mystical continent, there is a frog kingdom, ruled by the oldest frog, the Elder. The kingdom consists of N cities, numbered from east to west. The 1-th city, which is
2016-10-31 10:57:47
2379
3
原创 HDU5943 Kingdom of Obsession(匹配问题)
题目:acm.split.hdu.edu.cn/showproblem.php?pid=5943题意:有n个人,每个人的标号以此是s+1到s+n,要求将所有人重新排序之后满足每个人的位置y能够保证被他的标号整除,就是数组重排之后满足每一位的a[i]%i==0。思路:首先很容易想到一定区间之内最多只有一个质数,所以多于一个质数的直接NO,那么这段区间不会很长,考虑直接二分图匹
2016-10-29 18:37:28
1118
原创 POJ1155 TELE(树DP)
题目:poj.org/problem?id=1155题意:有N个节点的一棵树,上面前n-m个节点是信号站,后m个节点是用户,每个节点之间传输有消耗,每个用户有费用,总信号从1节点传输出来,求在不赔本的情况下能够最多传输给多少个用户。思路:明显是树DP,考虑3000个节点,dp[i][j]就是第i个节点在传输给j个用户的情况下的最小花费是多少,记录每个节点取得的可能最大用户数
2016-10-27 19:05:11
356
原创 HDU5874 Friends and Enemies
题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5874题意:M个人互相之间不是朋友就是敌人,朋友有至少一个颜色一样的石头,敌人不能有任何颜色一样的石头。求N个石头是否满足情况。思路:就是M个节点的图是朋友就建边那么每条边代表有一样的石头,边越多石头颜色就越多,但是如果存在子图是完全图,这个子图中的所有边可以是一个颜色的
2016-09-10 20:08:25
748
原创 HDU5873 Football Games
题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5873题意:求M个队伍的小组赛每个队伍最后的得分是否合法思路:就是小组赛积分啦,看球都知道啦,这题抢到了一血,great。首先总分一定是m*(m-1),然后每x个队伍的分数之和一定不小于x*(x-1),就酱紫。排个序随便判断下,输入真脑残。代码://kop
2016-09-10 19:59:58
728
1
原创 HDU5872 Seats
题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5872题意:这题题意很乱,大致是说有M个部门但是M是多少不一定,每个部门最多h个人,但是到底多少人也不一定,知道总人数是L人,以及每排有k个座位。每个部门的人必须坐在同一排,求至少多少排能满足坐下所有人,呃,大致是这个样子。思路:考虑至少多少排那就是找到每一排尽可能多做人
2016-09-10 19:49:04
1752
5
原创 HDU5869 Different GCD Subarray Query(线段树&&离线处理)
题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5869题意:找区间内所有子串GCD的个数思路:线段树离线搞搞,区间GCD收敛的很快,所以直接暴力预处理出到每个数字截至的后缀串有哪些GCD以及它们的位置,就是每个数字向前看有哪些GCD出现,这个数量是很少的。扫一遍然后离线询问,对于每个询问按照右端点排序。找到每个位置的时
2016-09-10 19:25:48
1856
原创 HDU5792 World is Exploding (线段树&&逆序数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5792题意:找到数列中所有满足: a≠b≠c≠d,1≤ab≤n,1≤cd≤n,AaAb,Ac>Ad.的四元组个数。思路:明显只要线段树处理出每个数字前后比它大比它小的数字个数,类似求逆序数,然后直接计算即可把所有的升序对和逆序对乘积,然后减去每个数字重复出现的对数,就是减去它左边
2016-08-02 20:58:22
662
原创 HDU5785 Interesting(回文串&&前缀和)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5787题意:找出所有相邻的回文串,将它们最外侧的端点坐标乘积都加起来,(i,j),(j+1,k) 两个回文串,将所有的i*k加和。思路:回文串直接用Manacher求解,然后对于所有的回文串都包含许多小的回文串,例如(i,j)回文串同时代表(i+1,j-1)等许多回文串,所以需要将更
2016-08-02 18:52:57
1123
原创 HDU5787 K-wolf Number(数位DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5787题意:计算区间内满足:相邻k个数位不重复的数的个数。思路:明显的数位DP,注意储存时存后缀4位就行了。代码://kopyh#include #define N 19using namespace std;int n,m,sum,res,flag;long lo
2016-08-02 18:45:52
397
原创 HDU-5754 Life Winner Bo (博弈论)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5754题意:n*m的棋盘,一枚棋子要从左上到右下,两个人轮流移动,只能向包含当前行列的左下移动,谁移动到最后一步谁胜利,有四种棋子:1 king 向周围八个方向移动一步2 castle 向2*3的矩阵的另一个角移动3 knight 移动到同一行或者同一列的任意位置4 quee
2016-07-27 16:24:58
555
原创 十四届北师大校赛题解
A.Check In题目:https://www.bnuoj.com/v3/problem_show.php?pid=51635题意:找到所有是bnu的账号数量思路:所有是bnu的账号加入map中判重就行了代码://kopyh#include using namespace std;int n,m,sum,res,flag;mapmp;string
2016-06-10 12:33:32
1525
原创 2016"百度之星" - 初赛(Astar Round2A)
A.All X题目:http://acm.hdu.edu.cn/showproblem.php?pid=5690题意:F(x,m) 代表一个全是由数字x组成的m位数字。请计算,以下式子是否成立:F(x,m) mod k ≡ c思路:k小于1e4,所以取模得到的结果不会多,直接暴力出循环节判断就行了。代码://kopyh#include #define
2016-05-26 22:02:45
654
原创 Lightoj-1347 Aladdin and the Magical Lamp(后缀数组&&线段树)
题目:http://lightoj.com/volume_showproblem.php?problem=1347题意:求三个字符串的最长公共子串思路:三个字符串的总长度不超过150000所以可以用后缀数组把他们看作一个字符串来处理。把三个字符串连接成一个字符串然后跑一遍后缀数组,按rank[]排序后找到某个区间包含三个串的子串这个区间的height[]数组的最小值就是
2016-04-25 21:13:15
472
原创 Lightoj-1314 Names for Babies(后缀数组)
题目:http://lightoj.com/volume_showproblem.php?problem=1314题意:求母串中长度在p到q之间的不相同子串的个数。思路:求不相同子串个数和明显用后缀数组可以搞,对于每个后缀能够取得子串个数就是min(q,n-sa[i])-max(p,height[i]+1)+1 很好理解就是能够取得的最大长度减去重复或者是最小长度,因为要去
2016-04-25 20:12:00
329
原创 Lightoj-1428 Melody Comparison(kmp&&后缀数组)
题目:http://lightoj.com/volume_showproblem.php?problem=1428题意:求母串中的不相同的并且不包含匹配串的子串个数。思路:求不相同子串个数和明显用后缀数组可以搞,然后处理不包含匹配串的情况只要kmp跑一遍找到所有包含的位置,然后从而确定母串中所有位置能够匹配的最远距离。具体就是找到所有的匹配位置之后可以确定这些位置的
2016-04-25 18:58:32
405
原创 Lightoj-1334 Genes in DNA(kmp)
题目:http://lightoj.com/volume_showproblem.php?problem=1334题意:给出一个母串和一个匹配串,求匹配串的所有的前后缀组合在母串中有多少个子串与之相同。前后缀长度不能超过len-1。思路:通过kmp加上一个dp[]递推数组求出母串中所有位置能够匹配匹配串的几个前缀,然后倒置求出能够匹配的后缀数,把所有相邻位置的前后缀匹配
2016-04-22 14:35:04
406
原创 Lightoj-1268 Unlucky Strings(kmp&&矩阵快速幂)
题目:http://lightoj.com/volume_showproblem.php?problem=1268题意:给出a个字符,求用这a个字符组成的长度为n的字符串中不包含子串s的个数。思路:首先知道矩阵可以解决这样一类经典问题:给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值把给定的图转为邻接矩阵,即A(i,j)
2016-04-18 15:43:39
797
原创 HDU-5667 Sequence (矩阵快速幂)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5667题意:fn=⎧⎩⎨⎪⎪1,ab,abfcn−1fn−2,n=1n=2otherwise按这个表达式求出某一位的数字思路:公式整理一下如果只看指数的话就是f(n) = c*f(n-1)+f(n-2)+1,直接求出这个递推关系式就行了,矩阵快速幂直接求。c 1 1
2016-04-17 19:26:52
482
原创 Lightoj-1258 Making Huge Palindromes(kmp||回文串)
题目:http://lightoj.com/volume_showproblem.php?problem=1258题意:给出一个串,求在这个串后面最少加上几个字符能够构成回文串。思路:可以用Manacher直接求回文串,然后找到最大的后缀回文串就是了。也可以用kmp匹配正反串的最大匹配,前后缀最大匹配就是最长公共部分。代码:Manacher://kopyh
2016-04-16 18:41:13
469
原创 tsinsen-A1206 小Z的袜子(莫队算法)
题目:http://www.tsinsen.com/A1206题意:有许多袜子,每个有自己的颜色,排成一排。给出许多区间询问,求每个区间中任取两个袜子的颜色相同的概率,分数表示。思路:区间问题,按理说此类问题大多是应该是线段树,这道题是莫队算法的模版例题。先说莫队算法就是把所有的区间状态转换成二维坐标系上的点,然后通过求曼哈顿距离最小生成树完成所有状态之间的转移路径,从
2016-04-08 13:13:15
597
原创 Lightoj-1356 Prime Independence(质因子分解&&二分图最大独立集)
题目:http://lightoj.com/volume_showproblem.php?problem=1356题意:找出一个集合中的最大独立集,任意两数字之间不能是素数倍数的关系。思路:最大独立集,必然是二分图。最大数字50w,考虑对每个数质因子分解,然后枚举所有除去一个质因子后的数是否存在,存在则建边,考虑到能这样建边的数一定是质因子个数奇偶不同,所以相当于按
2016-04-06 19:12:53
1341
原创 POJ-2777 Count Color(线段树)
题目:http://poj.org/problem?id=2777题意:一个长L的木板,一开始颜色是1,不断的重新刷新其中一段的颜色,并且随时询问某一区间内的颜色数目。思路:颜色最多30种,所以可以用一个int按位表示,在线段树上跑,转移就是儿子节点的颜色按位或,理解线段树之后还是很简单的。代码://kopyh#include #define N 1123456u
2016-04-05 19:27:56
372
原创 HDU-5652 India and China Origins(并查集)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5652题意:两国之间有一个n*m的棋盘,中间一开始有一些山脉,后来每年新增一个山脉,求两国第一次被彻底隔绝的时间。未被隔绝返回-1。思路:500*500的大小,可以展开成250000个节点求并查集,先把所有的山脉都放上去,然后处理一下并查集,就是每个节点和旁边的4个节点是否都是平地,是就
2016-03-28 21:35:43
487
原创 ZOJ-3264 Present for MM (背包dp)
题目:http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3264题意:有三种关系,1:dd与mm,两个东西必须同时取。2:dd与gg,两个物体不能同时取。2:dd与影子,可以单取第一个物体,但是第二个必须取了第一个才能取。思路:背包问题,第一种直接把两个物体合并,第二种分别取,第三种取第一个或者
2016-03-28 19:18:41
428
原创 HDU-3652 B-number (数位dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3652题意:计算区间内是13的倍数并且包含13的数的个数。思路:数位dp,既要包含13又要是13的倍数,所以有2个状态。具体见代码注释。代码://kopyh#include #define INF 0x3f3f3f3f#define MOD 1000000007#defi
2016-03-25 13:59:14
309
原创 算法学社 -- "这是一道难题"第二期
算法学社 -- "这是一道难题"第二期针对算法学社新生的一套有奖答题,共9题,分为三个系列,系列内三题的数据难度依次递增。比赛地址A、B 光棍节系列题解:简单题#include #define PI acos(-1.0)#define INF 0x3f3f3f3f#define EPS 1e-6#define N 1123456using namesp
2016-03-21 15:10:25
355
原创 HDU-5242 Game (贪心&&树链剖分&&线段树)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5242题意:给出一颗以1节点为根的树,每个节点有各自的价值,有m次从根节点出发向下走到叶子节点的机会,每次会得到所有经过节点的权值,每个节点只有在第一次经过时有价值,求m次之后能够获得的最大权值。思路:典型的树链剖分题,只要找到所有重链的权值然后贪心找前m个的和就行了。具体解法就是先
2016-03-19 18:53:18
1072
原创 HDU-3613 Best Reward (Manacher)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3613题意:最大价值回文串组合,要求把整个字符串拆成两个串,求可能的最大价值和。每个串只有是回文串时才会有价值,价值是这个串中所有字母的价值之和,会给出每个字母的价值。注意必须分成两个串每个串的长度至少唯一。思路: Manacher算法是通过对称位置快速处理回文串的方法,求出一个
2016-03-07 20:18:59
347
原创 HDU-2609 How many (最小表示法)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2609题意:给出n个0/1串,通过循环可以相同的串算一类,求一共有几类串。思路:暴力点写就是把所有串都变成最小表示法,然后排个序扫一遍就行了。代码:#include #define PI acos(-1.0)#define INF 0x3f3f3f3f#define
2016-03-03 16:27:10
1166
原创 HDU-1358 Period (kmp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1358题意:给出一段序列,求这段字符串的所有前缀中有哪些是循环串,输出这些前缀的位置和循环周期。思路:与hdu3746基本相同,就是利用next[]数组来求循环节长度判断是否是循环串。代码:#include #define PI acos(-1.0)#define INF
2016-03-02 18:52:02
329
原创 HDU-3746 Cyclic Nacklace (kmp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3746题意:给出一段序列,求这段字符串变成循环串最少还要加多少个字符。思路:kmp的next[]数组运用,首先知道next[]数组的一般写法中存的是每个节点的失败指针,也就是与之相同的一个前缀的位置,所以next[len]存的就是这个串的前缀与后缀的最大匹配大小,所以循环节的大小也就
2016-03-02 18:41:11
308
原创 HDU-1686 Oulipo (kmp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1686题意:找W词在T串中出现了几次。思路:kmp模版题,构造next[]扫一遍T就行了。代码:#include #define PI acos(-1.0)#define INF 0x3f3f3f3f#define MOD 1000000007#define EPS 1e
2016-03-02 15:05:11
261
原创 HDU-1711 Number Sequence (kmp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1711题意:在a串中找b串的位置,没有就返回-1。思路:kmp模版题,构造next[]扫一遍a就行了。代码:#include #define PI acos(-1.0)#define INF 0x3f3f3f3f#define MOD 1000000007#define
2016-03-02 14:36:27
298
原创 POJ-1509 Glass Beads (字符串最小表示法&后缀自动机)
题目:http://poj.org/problem?id=1509题意:求一个字符串的最小表示法,就是找一个循环串从哪里开始可以有最小字典序的字符串。思路:首先有经典的解法,通过两个指针直接对比扫一遍寻找最小表示。同时这道题是后缀自动机的模版题,只要把字符串乘二接入后缀自动机,然后扫一遍尽可能字典序最小就行了,其实这两个方法都是贪心去找。代码:最小表示法:#
2016-03-02 13:41:46
396
原创 POJ-1743 Musical Theme (后缀数组 不重叠最长重复子串)
题目:http://poj.org/problem?id=1743题意:给出一段音符大小,求其中重复出现的最长的子串,如果一个串中的所有音符同时增大或者缩小一个数能够变成另一个串也算相同。要求两个串不重叠且至少长度为5.思路:标准后缀数组的模版题,因为可以通过加减一个数达到满足情况,所以不能直接用原始数组,要求出所有相邻元素之间的差值,然后差值数组作为seq,求出后缀数
2016-03-01 17:14:40
376
原创 POJ-3261 Milk Patterns (后缀数组 最长k次重复子串)
题目:http://poj.org/problem?id=3261题意:求n天牛奶质量序列中的最长k次重复子串,子串之间可重复。思路:标准后缀数组的模版题,利用后缀数组的height数组可以判断排名连续的k个后缀子串的前缀相同,则满足条件。因为序列最多有2000个,所以只要对于整个序列离散化之后求后缀数组。然后二分枚举子串长度res,通过height数组扫一遍判断是否存在大
2016-03-01 16:20:33
393
原创 算法学社 -- "这是一道难题"第一期
算法学社 -- "这是一道难题"第一期针对算法学社新生的一套有奖答题,共9题,分为三个系列,系列内三题的数据难度依次递增。比赛地址A、B、C 爱喝醋系列题解:一道典型的线段数题,只要建立一个根节点值都是1的线段数,进行区间更新操作,最后输出根节点值就行了。#include #define N 112345using namespace std;#d
2016-02-13 15:03:28
390
原创 菜鸟系列——最近公共祖先(LCA)
菜鸟就要老老实实重新学起:最近公共祖先(LCA)求树上亮点的最近公共祖先,就是求包含这两个点的最小的子树的根节点。Tarjan(离线算法):就是预先储存所有询问,然后深搜便利所有点,后序遍历找到每个询问中的点,对于每个询都是在两个点都找到的那一刻得到最近公共祖先,后序遍历中不断把点加入并查集中,已加入的最上面的点就是当前的根节点。模版:const int M
2016-01-12 14:28:12
491
原创 POJ 1330 Nearest Common Ancestors
题目:http://poj.org/problem?id=1330题意:给出一棵树,求其中两个点的最近公共祖先。思路:测试模版。代码:const int MAXN = 101001;const int MAXM = 101001;const int MAXQ = 101001;struct Tree{ int head[MAXN];//前向星存图
2016-01-12 13:17:44
324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人