hdu
TIMELIMITE
Time is not enough. I must hurry up !
展开
-
hdu 5929 Basic Data Structure 模拟
// hdu 5929 Basic Data Structure 模拟// 题目链接:// http://acm.hdu.edu.cn/showproblem.php?pid=5929// 题目大意:// 有这样一个栈,栈中只放入0或者1,有四种操作// 1)PUSH 1 or 0// 2)POP: 弹出栈顶元素// 3)REVERSE: 将栈中原创 2016-10-10 19:27:46 · 752 阅读 · 0 评论 -
hdu 3681 Prison Break bfs + 二分 + TSP
// hdu 3681 Prison Break bfs + 二分 + TSP//// 解题思路://// 因为G,Y不超过15,这样讲这些点单独记录下来,bfs求出// 两两之间的距离.二分用判断TSP判断.所转化的问题就是在// F和Y的集合中,找到TSP路径的最小值即可.//// 感悟://// 觉得这题,十分巧妙,仔细想来确实不是很难,但是不好// 想,总的来说还原创 2015-10-15 20:39:51 · 580 阅读 · 0 评论 -
hdu 3664 Permutation Counting 简单dp
// hdu 3664 Permutation Counting 简单dp//// 解题思路:// dp[i][j] 表示最大数为i的E的值为j的排列个数.// 则对于i+1来说有三种选择:// 放在该位 dp[i-1][j]// 与A[i] > i 交换 dp[i-1][j] * j;// 与A[i] < i 交换 dp[i-1][j-1] * (i - j);原创 2015-10-16 10:44:46 · 551 阅读 · 0 评论 -
hdu5452 Minimum Cut 树链剖分 + 标记贡献
// hdu5452 Minimum Cut 树链剖分 + 标记贡献//// 解题思路://// 比赛的时候,大神给出了思路.对于给定的一条边u,v// 一定会在树上与LCA(u,v)形成一个环.这条边所作出的贡献// 就是u-v路径上所有的边都加一.最后求出边的最小的权值// 然后加1.开始用了一个线段树维护.然后果断TLE了.在我// 绝望的时候,发现了一篇大神直接模拟的过法原创 2015-09-21 19:34:21 · 639 阅读 · 0 评论 -
hdu 4123 Bob’s Race 树形DP + RMQ
// hdu 4123 Bob’s Race 树形DP + RMQ//// 解题思路://// 先求出每个点到树中其他点的最大距离.这个可以看hdu// 的2196 那个computer.然后用两个RMQ,一个保持最大值,一个// 保持最小值.用所谓的尺取法,求连续的一段区间的最大值和// 最小值.然后就可以啦~~~//// 感悟:// // 开始训练的时候,这种dp没原创 2015-11-09 17:12:53 · 564 阅读 · 0 评论 -
hdu 2196 Computer 树形dp 树中点最大距离
// hdu 2196 Computer 树形dp//// 题目大意://// 求树上每个点到其他点的最大距离//// 解题思路://// 保存每个点到其子树的最大距离d[u][0]和次大距离d[u][1].对与// 最大距离d[v][2]的求法和它的父亲u有关.如果v是在u的最大距离的子// 树中,那么答案就是d[u][1] + dist[u,v]否则就是d[u][0]原创 2015-11-09 15:00:49 · 513 阅读 · 0 评论 -
hdu 3966 最纯洁的树链剖分
// hdu 3966 最纯洁的树链剖分 // 题目意思就不多说啦。经典的树链剖分的裸题,看了// 好久好久,才把树链剖分的基本思想看了一遍,然后// 自己yy拉好重链,写了个挺丑的线段树。然后七搞八搞// 总算是搞出来啦,仔细想来,点还是很简单的,看着// 牛人的那篇经典的入门的讲解,很奇妙,强烈推荐哟// 好吧,我等菜鸟继续加油哟。顺带提一下,此题区间更新// 单点查询。原创 2015-09-07 23:30:03 · 622 阅读 · 0 评论 -
hdu 5489 Removed Interval LIS变形
// hdu 5489 Removed Interval LIS变形//// 解题思路:// f[i]为以a[i]为结尾的LIS// g[i]为以a[i]为开头的LIS// 对于截掉一段L而言,我们可以设将i位置前的L去除,但是// 保留i的这样的状态.这样dp[i] = max(dp[j]) (1<=j<=i-L) + g[i]// 再对dp[i]选出一个max就是最后的原创 2015-09-29 16:04:09 · 554 阅读 · 0 评论 -
hdu 5493 Queue 线段树
// hdu 5493 Queue 线段树//// 解题思路://// 线段树中记录区间的位置的总数.对于第i个人他// 前面有k个或者后面有k个人,那么插入的位置,在他前面// 就是k,后面的这样计算,已经插入前i-1个人,则剩下n-(i-1)// 再-k,再减自己的位置.就是n-i-k.在前面预留n-i-k个位置// 因为求字典序最小,那么两者求一个min设为v就是啦.然后就原创 2015-09-28 22:52:43 · 457 阅读 · 0 评论 -
hdu 1542 Atlantis 矩形面积并
// hdu 1542 Atlantis 矩形面积并//// 解题思路:// // 将矩形沿着x轴或者y轴切割.然后求和// 具体做法:// 将每个矩形看成是两条线段.将x方向// 坐标离散化.给每个线段一个值,下面线段// 为1,上面线段为-1.将这些线段映射到线段// 树上.具体做法是,只要保存线段的左端点就// 可以了.然后是线段树的基本操作了.更新成原创 2015-10-31 02:11:39 · 446 阅读 · 0 评论 -
hdu 4777 Rabbit Kingdom 区间覆盖
// hdu 4777 Rabbit Kingdom 区间覆盖//// 题目大意://// 给n个数,有q个区间查询,求出[L,R]区间内有多少个互质的数//// 解题思路://// 首先我们将问题转化,互质个数 = 总的个数 - 不互质的个数.// 对于每个数,我们求一个L[i],R[i]表示分别到左右最近的与i不互质的// 的数的位置.这个用扫描的方式,记录一下一个数因原创 2015-11-01 20:33:13 · 497 阅读 · 0 评论 -
hdu 5869 Different GCD Subarray Query 预处理 + 离线
// hdu 5869 Different GCD Subarray Query 预处理 + 离线//// 题目链接://// http://acm.split.hdu.edu.cn/showproblem.php?pid=5869//// 题目大意://// 给定数组,求[L,R]段中所有子段的不同gcd的种类//// 解题思路:////原创 2016-09-11 22:02:11 · 923 阅读 · 2 评论 -
hdu 5875 Function 单调栈 + 暴力
// hdu 5875 Function 单调栈 + 暴力//// 题目链接://// http://acm.split.hdu.edu.cn/showproblem.php?pid=5875//// 题目大意://// 一数组,给定区间[l,r],求a[l] % a[l + 1] % ... % a[r]//// 解题思路:////原创 2016-09-11 15:53:52 · 1165 阅读 · 1 评论 -
hdu5876 Sparse Graph bfs + set
// hdu5876 Sparse Graph bfs + set//// 题目链接:// http://acm.split.hdu.edu.cn/showproblem.php?pid=5876//// 题目大意:// 给定图G,求反图中固定起点s到其余各点到最短路//// 解题思路:// 维护一个集合acc,在当前集合中表示可以拓展到点。原创 2016-09-11 00:23:34 · 901 阅读 · 0 评论 -
hdu 5877 Weak Pair dfs + 线段树(or树状数组)
// hdu 5877 Weak Pair dfs + 线段树(or树状数组)//// 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5877//// 题目大意:// n个节点到有根树,u是v的祖先,每个节点有个权值a[u].求// a[u] * a[v] <= k的有序对的数量。//// 解答://原创 2016-09-10 22:48:26 · 699 阅读 · 0 评论 -
hdu 5667 矩阵快速幂
// hdu 5667 矩阵快速幂// 题意给个式子,然后取个对数,以a为底,第i项设为f(i)// f(i} = b + c * f[i-1) + f(i - 2)// 我构造的矩阵为// | 1 0 0 | | b | | b |// | 0 0 1 | * | f(n-1) | = | f(n) |// | 1 1 c | | f(n原创 2016-04-22 21:42:32 · 526 阅读 · 0 评论 -
hdu 1532 网络流-最大流 DINIC
// hdu 1532 网络流-最大流 DINIC//// 网络流,刚开始接触感觉很好玩,但一直不得要领,现在呢// 还是不得要领,学习的过程就是慢慢熟悉吧,学习着刘老师// 的DINIC模板,好好加油#include #include #include #include #include #include #include #include #define cls(x原创 2016-03-18 18:18:45 · 507 阅读 · 0 评论 -
hdu1885 状压搜索 板子
// hdu 1885 状压搜索入门//// 题目意思很简单,四种钥匙四种门,在状态里面// 加入钥匙的二进制压缩,输出答案,就好了...// 记一下板子#include #include #include #include #include #include #include #include using namespace std;typedef long lon原创 2016-03-15 20:08:27 · 434 阅读 · 0 评论 -
hdu 5592 线段树 + 二分
// hdu 5592 线段树 + 二分 // 解题思路: // 设[1,n]区间逆序对数为f[i],p[i]为当前i位置的数字 // 则x = f[i]-f[i-1]就是[1,i]区间比p[i]大的数.则i - x就是 // 从[1,i]中这个数字排第几.二分这个数字得到答案为x,将x从 // 线段树中删除.单点更新,区间查询. // 提示:线段树中存的是[1,n]各个数字的出原创 2015-12-06 23:32:59 · 554 阅读 · 0 评论 -
hdu3706 Second My Problem First 滑动窗口最小值 单调队列
// hdu3706 Second My Problem First 滑动窗口最小值 单调队列// 题目意思就不用说了吧,我还傻逼的一开始用了个快速幂,结果果断TLE// 唯一坑的就是开的数组是long long 的 时候MLE了。。。// 想了个强转,然后过了。。。太坑了。// 以后要掌握算内存的习惯,要不然交了MLE就哭都来不及了// 看了看网上的题解,单调队列开的只有10的6次原创 2015-07-24 11:13:07 · 944 阅读 · 0 评论 -
hdu3410 Passing the Message 单调栈
// hdu3410 Passing the Message 单调栈// 题目意思:给你n个数,询问第i个数直到左边比它本身大的第一个数的这段// 区间内求一个最大的值 和 直到右边比它本身大的数的第一个数的这段区间内// 再求一个最大值。// 解题方法:// 单调栈,维护一个栈,使得站内元素单调递减即离栈顶越近,值越小// 从左往右扫一遍,最后一个比当前元素小的数组下标(出栈的元原创 2015-07-23 21:06:41 · 1161 阅读 · 0 评论 -
2015 Multi-University Training Contest 2 1004 苹果树 dp+单调队列
// 仅以此题,表示自己的成长之路// 多校的一道题目,// 题意在一个圆上有n棵苹果树,每个苹果树上有a[i]个苹果// 从起点0出发,告诉你圆的周长L,你有一个篮子,容量为k//求从起点0出发将所有苹果树 上的苹果都搬到0处所花费的最小的距离。// 解题思路// 最开始我想到的是训练指南上的捡垃圾的dp那道题目,// 不过一个是一维轴,一个是二维坐标,就类比了一下// 怪原创 2015-07-23 19:16:48 · 559 阅读 · 0 评论 -
hdu 5325 Crazy Bobo dfs
// hdu 5325 Crazy Bobo//// 题目大意:// // 给你一棵树,树上每个节点都有一个权值w,选择尽可能多的节点,// 这些节点相互联通,并且按照权值升序排序之后得到节点编号,// 需相邻节点之间的任意节点都要大于较小的节点。// // 解题思路:// 对于原创 2015-07-29 11:42:55 · 921 阅读 · 2 评论 -
hdu 2243 AC自动机 + 矩阵快速幂
// hdu 2243 AC自动机 + 矩阵快速幂//// 题目大意://// 给你一些短串,问在长度不超过k的任意串,包含至少一个这些短串的其中// 一个.问这样的串有多少个.//// 解题思路://// 首先, 包含和不包含是一种互斥关系,包含+不包含 = 全集u.全集的答案就是// 26 ^ 1 + 26 ^ 2 + .... + 26 ^ k.不包含的比较好求.构原创 2015-08-08 15:59:58 · 715 阅读 · 0 评论 -
hdu5033 Building 单调队列
// hdu5033 Building 单调队列//// 题目大意://// n栋大楼,有一个高度h和位置x,现在有一个人高度为0,有q个询问// 每个询问有一个位置x,求在位置x能看到天空的最大的角度。//// 解题思路://// 首先得想到将q个询问的位置作为一栋大楼放在整个大楼中考虑,这样// 问题就比较一致,也比较容易处理啦。原创 2015-07-27 17:52:13 · 849 阅读 · 0 评论 -
hdu2430 Beans 单调队列
// hdu2430 Beans 单调队列//// 题目意思:// 求一个sum%p<=k的max(sum/p)//// 结题报告:// 技巧,先求出前缀和,并记录前i项对p取余的值记为x,并记下位置pos// 按照先按x从小到大,如果x相同按pos从小到大排序。这样,问题就转换为// 求一个最小的pos使得pos到i的值最大。////原创 2015-07-25 17:38:26 · 1017 阅读 · 0 评论 -
hdu3530 Subsequence 单调队列
// hdu3530 Subsequence 单调队列// 题目大意:找到一个最大的子串,使得子串区间内最大值和最小值的差// 在low和up范围内,串的规模10w。// 解题思路:// 单调队列,单调队列可以保留i位置之前的最大值和最小值的下标,有了这些// 则,每次我们比较两个队列的队头,看差值是否大于up,(因为它是到i位置最大//原创 2015-07-25 16:11:25 · 1226 阅读 · 1 评论 -
hdu 2795 Billboard 线段树 点更新
// hdu 2795 Billboard 线段树 点更新//// 首先n最多是200000种,也就是说最多200000行,// 我们的线段树的区间保存的是L到R中最大的叶子节点的值// 初始情况下都是板子的宽度。这样,每次放一块广告的时候// 看1到h中最左边的叶子区间是什么就ok了,还是很好理解的//// 做题的感悟,这道题其实是去年暑假集训的时候做的,当时// 并不会,只会敲原创 2015-06-05 21:28:12 · 834 阅读 · 0 评论 -
hdu 1394 Minimum Inversion Number 线段树 点更新
// hdu 1394 Minimum Inversion Number 线段树 点更新//// 典型线段树的单点更新//// 对于求逆序数,刚开始还真的是很年轻啊,裸的按照冒泡排序// 求出最初始的逆序数,然后按照公式递推,结果就呵呵了//// 发现大牛都是用线段树和树状数组之类的做的,而自己又在学// 线段树,所以就敲了线段树。//// 线段树的节点保存一段区间( L,R原创 2015-06-03 20:33:01 · 703 阅读 · 0 评论 -
hdu 1166 敌兵布阵 线段树 点更新
// hdu 1166 敌兵布阵 线段树 点更新//// 这道题裸的线段树的点更新,直接写就可以了//// 一直以来想要进线段树的坑,结果一直没有跳进去,今天算是跳进去吧,// 虽然十分简单,十分的水,继续加油#include #include #include #include #include #include #include #include #include原创 2015-06-02 21:33:16 · 763 阅读 · 0 评论 -
hdu 2846 Repository 字典树
// hdu 2846 Repository 字典树//// 题目大意:// // 有n个字符串,m个待询问的字符串,问这些字符串里面以该询问的// 字符串为子串的字符串有多少个//// 解题思路:// // 字典树,将字符串的所有子串插入到字典树中,并设立一个No.标识// 以免重计数。最后查询就好了//// 感悟:// // 这题的数据量有点大,虽然原创 2015-08-01 21:31:15 · 612 阅读 · 0 评论 -
hdu 1247 Hat’s Words 字典树
// hdu 1247 Hat’s Words 字典树//// 题目大意:// // 在一些字符串中,找到这样字符串:由两个其他的字符串构成//// 解题思路://// 字典树,先将这些字符串插入到字典树中,然后枚举断点,如果// 字符串的前后两段都找到了,输出该串即可~//// 感悟://// 这道题目的话,就是字典树上的暴力嘛,细节方面还是要多多注意//原创 2015-08-01 23:14:21 · 667 阅读 · 0 评论 -
hdu3415 Max Sum of Max-K-sub-sequence 单调队列
//hdu3415 Max Sum of Max-K-sub-sequence//单调队列//首先想到了预处理出前缀和利用s[i] - s[j]表示(j,i]段的和//之后的问题就转换成了求一个最小的s[j]了,这样就可以单调队列//求最小值。//队列中维护的是区间的开始的位置j,我们插入队列中的是j-1,因为//这个时候s[i] - s[j-1]刚好就是[j,i]段闭区间的和/原创 2015-07-23 11:31:56 · 662 阅读 · 0 评论 -
hdu 4287 Intelligent IME 字典树
// hdu 4287 Intelligent IME 字典树//// 题目大意://// 智能abc输入法,2,3,4,5,6,7,8,9分别对应不同的字母// 现在输入n串数字,m串字母串,问n与m对应的串有多少//// 解题报告://// 字典树,先将数字插入到字典树中,并赋予val值,最后// 将字母对应数字,因为字母对应唯一的数字,这样换成数字就// 可以进行查原创 2015-08-03 13:32:16 · 930 阅读 · 0 评论 -
hdu 1711 KMP模板题
// hdu 1711 KMP模板题// 贴个KMP模板吧~~~#include #include #include #include using namespace std;const int MAX_N = 1000008;const int MAX_M = 10008;int T[MAX_N];int p[MAX_M];int f[MAX_M];int n,原创 2015-08-03 16:40:43 · 554 阅读 · 0 评论 -
hdu 1075 字典树
// hdu 1075 字典树//// 题目大意:// // 给你一个字典,即有两个字符串,一个是英文,一个是火星文,然后// 输入一段火星文,要你翻译成英文。// // 解题思路:// // 字典树,查字典嘛,有就输出查到的,没有原样输出。将火星文插入到// 字典树中,然后在字典输中查找。找到了,输出对应的英文,否则,原样输// 出。//// 感悟:// /原创 2015-08-03 15:23:09 · 601 阅读 · 0 评论 -
hdu 1671 Phone List 字典树
// hdu 1671 Phone List 字典树//// 题目大意://// 有一些电话号码的字符串长度最多是10,问是否存在字符串是其他字符串的前缀////// 解题思路://// 字典树,先插入第一个字符串,然后按照查询,插入的方式进行访问,发现了之后// 就不用再进行字典树的操作了////// 感悟://// 题目意思很清楚,我在细节方面思考了很久,原创 2015-08-01 12:15:59 · 721 阅读 · 0 评论 -
hdu 1251 统计难题 字典树
// hdu 1251 统计难题 字典树//// 题目大意://// 有一系列的单词表,以空行结尾,之后会有一些字母串,找出以这些字符串// 作为前缀的单词的个数////// 解题思路:// // 字典树 Trie,在插入字符串的时候每遇到一个节点,该节点的值++。查找的时候// 字符串时,如果找到了,那么返回当前的val,否则返回0,因为没有以这个字符串//原创 2015-08-01 11:00:56 · 795 阅读 · 0 评论 -
hdu5317 RGCDQ 统计
// hdu5371 RGCDQ//// 题目大意://// 给定一个闭区间[l,r],定义f(x)是x的不同的质因子的个数// 比如: 12 = 2 * 2 * 3,是两种,所以f(x) = 2,问max GCD(f[i],f[j])// i,j在[l,r]范围内,并且i!=j.//// 解题思路://// 首先伟大的W神发现了一个规原创 2015-07-29 00:17:18 · 941 阅读 · 3 评论 -
hdu 1754 I Hate It 线段树 点修改
// hdu 1754 I Hate It 线段树 点修改//// 不多说,裸的点修改//// 继续练#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2015-06-02 22:14:12 · 783 阅读 · 0 评论