随笔分类 -  HDU

摘要:problem sort 题目大意 有n个数组,每个数组有a[i]个元素,每次可以将至多k个数组合并为一个数组,所花费代价为这些数组的元素和。给定代价上限,求将所有数组合并为1个数组的最小k。 解题分析 二分k后就成了k叉哈夫曼树问题。 对于k叉哈夫曼树,可以利用所合并元素的权值单调性,用两个双端队 阅读全文
posted @ 2016-09-19 20:43 rpSebastian 阅读(217) 评论(0) 推荐(0)
摘要:Problem Different GCD Subarray Query 题目大意 给定n个数的序列,有q个询问,每次询问一个区间中所有子区间所形成不同的gcd的数量。 解题分析 由于固定一个数为右端点,所能形成的gcd共有logn,所以可以预处理出每个数为右端点所能形成的gcd,相同gcd取左端点 阅读全文
posted @ 2016-09-12 20:45 rpSebastian 阅读(508) 评论(0) 推荐(0)
摘要:Problem This world need more Zhu 题目大意 给一颗n个点的有点权的树,有m个询问,对于每个询问u,v,k,首先将点u到点v的最短路径上的所有点按顺序编号,u的编号为1,求树链上所有点的新编号cnt满足cnt%k==0的点的权值的最大值。 n,m,k<=10^5 解题分 阅读全文
posted @ 2016-09-09 13:58 rpSebastian 阅读(967) 评论(0) 推荐(0)
摘要:Problem GCD Tree 题目大意 n个点的无向完全图,标号1~n,每条边u-->v 的权值为gcd(u,v),求其最大生成树,输出最大边权和。 n<=10^5,有多个询问。 解题分析 从小到大加入每个点,计算其对答案的贡献。 对于一个点i,只有向它的约数连边才有可能对答案有贡献。 用lct 阅读全文
posted @ 2016-09-01 23:26 rpSebastian 阅读(435) 评论(0) 推荐(0)
摘要:Problem Query on The Trees 题目大意 给一棵树,有点权,要求维护4种操作。 操作1:加一条边。 操作2:删一条边。 操作3:将一条路径上的点权增加w。 操作4:询问一条路径上的点权最大值。 解题分析 lct练习题 ps:lct模板抄自黄学长。 参考程序 1 #include 阅读全文
posted @ 2016-09-01 11:33 rpSebastian 阅读(596) 评论(0) 推荐(0)
摘要:Problem Toll Management IV 题目大意 给一张n个点m条边的无向图,有边权。数据保证前n-1条边构成了一棵最小生成树。 要求对于每条边求出其边权上下最多浮动范围,使得最小生成树的形态不变(每次只改变一条边的权值)。 n<=10000,m<=1000000 解题分析 我们称在最 阅读全文
posted @ 2016-08-22 00:23 rpSebastian 阅读(391) 评论(0) 推荐(0)
摘要:Problem Mountain 题目大意 给定一张n*m的地图,由 . 和 X 组成。要求给每个点一个1~n*m的数字(每个点不同),使得编号为X的点小于其周围的点,编号为.的点至少大于一个其周围的点。 n<=5 , m<=5。 解题分析 考虑从1~n*m,从小到大依次填数,则如果某个位置编号为X 阅读全文
posted @ 2016-08-19 16:06 rpSebastian 阅读(298) 评论(0) 推荐(0)
摘要:Problem Death Sequence 题目大意 排成一行的约瑟夫问题。 n个人排成一行,从第一个人开始,每个k个人报数,报到数的人被杀死,剩下的人重新排成一行再报数。 一共q个询问,每次询问第qi个死的人是谁。 n <= 3000000 , q <= 1000000 , k>=1 。 解题分 阅读全文
posted @ 2016-08-18 23:21 rpSebastian 阅读(609) 评论(0) 推荐(0)
摘要:Problem Sometimes Naive 题目大意 给你一棵n个节点的树,有点权。 要求支持两种操作: 操作1:更改某个节点的权值。 操作2:给定u,v, 求 Σw[i][j] i , j 为任意两点且i到j的路径与u到v的路径相交。 解题分析 容易发现对于一个询问,答案为总点权和的平方 减去 阅读全文
posted @ 2016-08-18 00:48 rpSebastian 阅读(793) 评论(0) 推荐(1)
摘要:Problem Jong Hyok and String 题目大意 给你n个字符串,有q个询问。 定义set(s)={(i,j)} 表示 s在第i个字符串中出现,且末尾位置为j。 对于一个询问,求set(Qi)=set(t) ,t的数量。 (n,q<=10^5 , 字符串总长<=10^5) 解题分析 阅读全文
posted @ 2016-08-16 22:53 rpSebastian 阅读(692) 评论(0) 推荐(0)
摘要:Problem Rikka with Sequence 题目大意 维护一个序列,支持三种操作。 操作1:区间加。 操作二:区间开根号(向下取整)。 操作3:区间求和。 解题分析 可以发现经过若干次操作后,整些区间内的数会趋向于相同。 可以再开一个标记,表示这个区间内的数是否相同,这样可以优化一下区间 阅读全文
posted @ 2016-08-11 19:15 rpSebastian 阅读(766) 评论(0) 推荐(0)
摘要:Problem To My Girlfriend (HDU 5800) 题目大意 给定一个由n个元素组成的序列,和s (n<=1000,s<=1000) 求 : f (i,j,k,l,m) 指必定选第i,j号元素,必定不选k,l号元素,选的元素总和为m的子集个数。 解题分析 一开始想了个n^3的DP 阅读全文
posted @ 2016-08-04 19:46 rpSebastian 阅读(605) 评论(0) 推荐(0)
摘要:Problem How Many Triangles (HDU 5784) 题目大意 给定平面上的n个点(n《2000),询问可以组成多少个锐角三角形。 解题分析 直接统计锐角三角形较困难,考虑问题的反面,统计直角三角形、钝角三角形、平角三角形(暂时这么叫吧QAQ)。 首先枚举三角形的一个端点A,对 阅读全文
posted @ 2016-08-02 19:37 rpSebastian 阅读(1206) 评论(0) 推荐(0)
摘要:Problem Little Devil I (HDU4897) 题目大意 给定一棵树,每条边的颜色为黑或白,起始时均为白。 支持3种操作: 操作1:将a->b的路径中的所有边的颜色翻转。 操作2:将所有 有且仅有一个点在a->b的路径中 的边的颜色翻转。 操作3:询问a->b的路径中的黑色边数量。 阅读全文
posted @ 2016-07-31 17:05 rpSebastian 阅读(602) 评论(0) 推荐(0)
摘要:Problem Aragorn's Story (HDU 3966) 题目大意 给定一颗树,有点权。 要求支持两种操作,将一条路径上的所有点权值增加或减少ai,询问某点的权值。 解题分析 树链剖分模板题。 实质上树链剖分进行了点对点的一次映射,保证了重链上的点在线段树上的位置是连续的。 树链剖分的两 阅读全文
posted @ 2016-07-31 02:22 rpSebastian 阅读(1261) 评论(0) 推荐(0)
摘要:Poroblem Redraw Beautiful Drawings (HDU4888) 题目大意 一个n行m列的矩形,只能填0~k的数字。 给定各行各列的数字和,判定有无合法的方案数。一解给出方案,多解输出给定字符串。 解题分析 一个经典的网络流建图。 由S向行连流量为该行数字和的边,由列向T连流 阅读全文
posted @ 2016-07-30 23:27 rpSebastian 阅读(296) 评论(0) 推荐(0)
摘要:Problem Turn the pokers (HDU 4869) 题目大意 有m张牌,全为正面朝上。进行n次操作,每次可以将任意ai张反面,询问n次操作可能的状态数。 解题分析 记正面朝上为1,朝下为0。 若最后有x个1,则对答案的贡献为C(n,x)。所以只需要知道最后可能的1的个数。 假设已经 阅读全文
posted @ 2016-07-30 18:31 rpSebastian 阅读(448) 评论(0) 推荐(0)
摘要:Problem Nice boat(HDU 4902) 题目大意 维护一个序列,两种操作。 第一种操作,将一段区间[l,r]赋值为x。 第二种操作,将一段区间[l,r]中大于等于x的数与x求gcd。 询问所有操作结束后的序列。 解题分析 用线段树开一个标记same,表示这段区间中的数是否相同,若相同 阅读全文
posted @ 2016-07-29 22:01 rpSebastian 阅读(411) 评论(0) 推荐(0)
摘要:Problem Jump (HDU4862) 题目大意 给定一个n*m的矩形(n,m≤10),每个矩形中有一个0~9的数字。 一共可以进行k次游戏,每次游戏可以任意选取一个没有经过的格子为起点,并且跳任意多步,每步可以向右方和下方跳。每次跳需要消耗两点间的曼哈顿距离减一的能量,若每次跳的起点和终点的 阅读全文
posted @ 2016-07-28 21:28 rpSebastian 阅读(459) 评论(0) 推荐(0)
摘要:Problem String problem (HDU5772) 题目大意 给定一个由数字组成的字符串(n<=100),挑选出一些字符组成一个新的字符串。 字符串的价值: sigma w[id(i)][id(j))] (i !=j) id(i)为某字符在原串中的位置,w[][]为给定矩阵。 字符串的 阅读全文
posted @ 2016-07-28 20:24 rpSebastian 阅读(709) 评论(0) 推荐(0)