HDU
ramay7
Life is not short,but float.
展开
-
HDU 4305 Lighting(生成树计数+点在线段判断)
题目链接: HDU 4305 Lighting 题意: 给出nn个点的横纵坐标和距离RR,只有当两个点满足距离≤R\leq R且这两个点连线上没有其他点时这两个点才能建边,求将这nn个点连通的生成数个数?答案对1000710007取模。 数据范围:n≤300,R≤2000n\leq 300, R \leq 2000。 分析; 同样一段代码G++G++能过,C++就TLEC++就TLE!太原创 2016-07-13 18:39:16 · 485 阅读 · 0 评论 -
HDU 1695 GCD(容斥原理、去重)
题目链接: HDU 1695 GCD 题意: 求x∈[a,b],y∈[c,d],且gcd(x,y)=k的(x,y)的无序对对数。a=c=1x\in [a,b],y\in[c,d],且gcd(x,y)=k的(x,y)的无序对对数。a=c=1 分析: 这道题之前有莫比乌斯反演做过,现在纯粹用容斥以及求[1,r][1,r]中和xx互质数个数也能做。因为这是无序的,我们不妨设d≤bd \leq b原创 2016-07-15 22:30:23 · 411 阅读 · 0 评论 -
HDU 3415 Max Sum of Max-K-sub-sequence(长度不超过k的最大连续子序列和,单调队列)
题目链接: HDU 3415 Max Sum of Max-K-sub-sequence 题意: 给nn个数,首尾相连,求长度不超过kk的最大连续子序列和。 数据范围:1≤n≤100000,1≤k≤n1\leq n\leq100000 , 1\leq k\leq n 分析: 因为考虑首尾相连,所以我们把nn个数看成2∗n2*n个数,其中data[n+]=data[i]data[n+]=原创 2016-07-28 00:33:06 · 2373 阅读 · 0 评论 -
HDU 4193 Non-negative Partial Sums(前缀和非负点个数,单调队列)
题目链接: HDU 4193 Non-negative Partial Sums 题意: 给一个nn个数的数环,求任意前缀和非负的点个数? 数据范围:n≤106n\leq 10^6 分析: 其实这道题和UVALive 6087 Fuel Stops是一样的。之前的做法也能做。 如果用单调队列做的话,需要转化成前缀和问题。对于位置ii的数,如果以它为结尾最长长度为nn的前缀和均非负,其实原创 2016-07-28 00:44:04 · 751 阅读 · 0 评论 -
HDU 5695 Gym Class(拓扑排序、优先队列)
题目链接; HDU 5695 Gym Class 题意: 定义序列每个元素的权值是在他之前包括自己的最小数。求序列权值和最大的拓扑排序。 数据范围:n≤105,m≤105n\leq 10^5,m\leq 10^5。 分析; 也就是每次从度为00的点中我们尽可能要得到编号大的点。优先队列搞下就好了。#include <iostream>#include <cstdio>#include原创 2016-07-18 22:06:47 · 450 阅读 · 0 评论 -
HDU 2647 Reward(拓扑排序)
题目链接: HDU 2647 Reward 题意: 有nn个人和mm条关系,表示A[i]A[i]的奖金必须比B[i]B[i]多,求总奖金和最小值。 数据范围:n≤10000,m≤20000n\leq 10000,m\leq 20000 分析; 把队列中的每个元素设有两个属性(pairpair):编号和奖金就好了。除了第一次0度的元素进队列,其余每次进队列奖金值+1就好了。#include原创 2016-07-18 22:16:37 · 311 阅读 · 0 评论 -
HDU 1811 Rank of Tetris(并查集+拓扑排序)
题目链接; HDU 1811 Rank of Tetris 题意: nn个人,编号0−n−10-n-1。mm组关系可以是:A>B,A=B,A<BA>B,A=B,A<B。 问最终的关系是否确定或者出现冲突? 数据范围:0≤N≤10000,0≤M≤200000\leq N\leq 10000,0\leq M\leq 20000 分析: 能想到并查集把A=BA=B的情况合并就好做了。#inc原创 2016-07-18 22:35:01 · 503 阅读 · 0 评论 -
HDU 3530 Subsequence(区间最值差>=m且<=k的最大长度、双单调队列)
题目链接: HDU 3530 Subsequence 题意: 给一个长度为nn的数组,求最大的区间长度,并且这个区间满足最大值与最小值之差diff∈[m,k]diff\in[m,k],即大于等于mm,小于等于kk. 数据范围:n≤105,m,k∈[0,106]n\leq 10^5,m,k\in [0,10^6] 分析: 因为是在做单调队列的题,所以往单调队列上想可能容易点。 首先我们考原创 2016-07-29 18:49:40 · 851 阅读 · 0 评论 -
POJ 1985 Cow Marathon & HDU 2196 Computer(树的直径)
题目链接; POJ 1985 Cow Marathon HDU 2196 Computer 题意: 两道题其实都是求树的直径。 分析: 树的直径:树中所有最短路径的最大值。 定理:在一个连通的无项无环图中,以任意结点出发所能到达的最远结点,一定是该图直径的端点之一。证明:假设直径是δ(s,e)\delta (s,e),任意结点为xx,其最远能到达的结点为yy。分两种情况: ①如果原创 2016-07-30 17:35:38 · 787 阅读 · 0 评论 -
HDU 4746 Mophues(有趣的前缀和/莫比乌斯反演)
题目链接: HDU 4746 Mophues 题意: 令gcd(a,b)=d,对d质因子分解得到质因子个数为k如果k≤C,则称k为C的lucky数字,给出n,m,p,求a∈[1,n],b∈[1,m]使得gcd(a,b)是p的lucky数字的数字对(a,b)有多少对?令gcd(a, b) = d,对d质因子分解得到质因子个数为k如果k\leq C,则称k为C的lucky数字,给出n,m,p,求a原创 2016-06-05 21:56:31 · 816 阅读 · 0 评论 -
HDU 3208 Integer's Power(容斥原理、指数和、高精度求开根)
题目链接: HDU 3208 Integer’s Power 题意: 定义数字xx的powerpower为满足:tk=x,t,k∈N+t^k=x,t,k\in N^+的最大kk。 给出2≤a≤b≤10182\leq a \leq b\leq 10^{18},求 ∑i=ai≤bi∗power(i)\sum_{i=a}^{i\leq b}i*power(i) 分析: 我们用solve(n)原创 2016-07-15 20:45:32 · 1045 阅读 · 0 评论 -
HDU 5749 Colmerauer(单调栈、思维、组合)
题目链接: HDU 5749 Colmerauer 题意: 给一个n∗mn*m的矩阵,定义长为aa宽为bb的矩阵的函数S(a,b)S(a,b)是矩阵中所有鞍点的权值和。一个矩阵的鞍点是所有满足在同一行中唯一最小,同一列中唯一最大的点。求: ∑i=1i=n∑j=1j=mi∗j∗S(i,j)(mod 232)\sum_{i=1}^{i=n}\sum_{j=1}^{j=m}i*j*S(i,j)\q原创 2016-07-26 21:17:46 · 560 阅读 · 0 评论 -
HDU 4283 You Are the One(区间dp、状态转移)
题目链接; HDU 4283 You Are the One 题意: 【非诚勿扰?】 有nn个人需要上台,每个人的初始diaosi值(题目就这么说的)是data[i]data[i],如果ii是第kk个上场的话就会产生(k−1)∗data[i](k-1)*data[i]的愤怒值,但是允许先将某些人带进小黑屋中,后进后出原则,求所有人都上场的最小愤怒值之和? 数据范围:n≤100,data[i原创 2016-07-24 23:30:59 · 547 阅读 · 0 评论 -
HDU 4135 Co_prime(容斥原理、[A,B]中和n互素数个数)
题目链接: HDU 4135 Co_prime 题意: 求区间[A,B][A,B]中和nn互素的数个数? 数据范围:1≤A≤B≤1015,1≤n≤1091 \leq A \leq B \leq 10^{15}, 1\leq n \leq 10^9 分析: 我们将nn进行素因子分解为p1,p2,p3,⋯,pkp_1,p_2, p_3, \cdots, p_k,先求解[1,r][1,r]中和原创 2016-07-14 09:13:45 · 579 阅读 · 0 评论 -
HDU 3501 Calculation 2(容斥原理、求[1,n - 1]中和n不互素的数字之和)
题目链接; HDU 3501 Calculation 2 题意: 求[1,n−1][1,n - 1]中和nn不互素的数字之和。 数据范围:1≤n≤1091\leq n \leq 10^9 分析: 和HDU 4135 Co_prime类似。我们只需求出不互素的数字的约数是由哪些nn的素因子组成。 找到最小素因子组成。共有n−1/muln-1/mul个数,最小的是mulmul且这些数是等差原创 2016-07-14 10:02:14 · 462 阅读 · 0 评论 -
HDU 1796 How many integers can you find(求1到n-1之间能被一个集合A内元素整除的数的个数)
题目链接: HDU 1796 How many integers can you find 题意: 求1−n−11-n-1之间能被一个集合AA内元素整除的数的个数,例如n=12,A={2,3}n = 12, A = \{2, 3\} 则能被AA集合元素整除的数的集合为{2,3,4,6,8,9,10}\{2, 3, 4 , 6, 8, 9, 10\}则结果为77。 分析: 容斥原理原创 2016-07-13 20:59:33 · 618 阅读 · 0 评论 -
HDU 1506 Largest Rectangle in a Histogram(最大矩形面积、单调栈)
题目链接: HDU 1506 Largest Rectangle in a Histogram 题意: 给出一排紧密并列的矩形的高,宽均为1,求从中可以划分出的最大的矩形面积? 数据范围:n≤105,hi≤109n\leq 10^5,h_i\leq 10^{9} 分析: 单调栈求出每个矩形可以向左向右延伸的最大长度。 单调栈、单调队列学习博客 时间复杂度:O(n)O(n)#inclu原创 2016-07-25 23:41:44 · 1349 阅读 · 0 评论 -
HDU 2865 Birthday Toy(Polya综合)
题目链接; HDU 2865 Birthday Toy 题意: 有一个nn个珠子的环,中心还有一颗珠子,用kk种颜色来染。要求相邻珠子的颜色不同,中心珠子的颜色不能和外围任意一颗珠子的颜色一样,考虑旋转,问本质不同的珠子个数? 数据范围:n≤109,k≤109n\leq 10^9, k \leq 10 ^ 9 分析: 和前面POJ 2888 Magic Bracket类似,这里把限制改成原创 2016-07-12 13:47:13 · 885 阅读 · 0 评论 -
HDU 2481 Toy(Polya综合)
题目链接: HDU 2481 Toy 题意: 有外围nn个点围着中心一个点,中心有nn条边和外围相连,外围的相邻点有一条边,现在需要从中去除nn条边,使得剩下的n+1n+1个点依然保持两两连通,考虑旋转,问有多少种方案?方案数对MM取模。 数据范围:3≤n≤109,2≤M≤1093 \leq n \leq 10^9, 2\leq M \leq 10^9. 分析: 我觉得这种考验智商的题目原创 2016-07-12 14:50:53 · 682 阅读 · 0 评论 -
HDU 2204 Eddy's 爱好(容斥原理、给定n求满足p=m^k <= n的p的个数)
题目链接: HDU 2204 Eddy’s 爱好 题意; 给一个nn,在p∈[1,n]p\in [1, n]范围满足mk=p(m≥1,k>1m^k=p(m \geq 1, k > 1的数字pp的个数。 数据范围:1≤n≤10181 \leq n \leq 10^{18} 分析: 一开始我一直是从枚举mm考虑,实在不知道怎么搞,耗时太多了。。。只能借助万能的网友。。。 我们可以枚举幂次原创 2016-07-14 13:52:34 · 2284 阅读 · 0 评论 -
HDU 4714 Tree2cycle(树形dp)
题目链接; HDU 4714 Tree2cycle 题意: 给一个nn个节点和n−1n-1条边的树。要求把这棵树变成一个环(所有的点都在环上),每破坏一条边和新建一条边的代价都是1,求最小的代价。 数据范围:n≤106n\leq 10^6 分析: 我们来考虑保留边的最大数量,记为leftleft。首先原来有n−1n-1条边,保留了leftleft条边,那就意味着要破坏n−1−le原创 2016-08-15 21:28:26 · 559 阅读 · 0 评论 -
HDU 4616 Game(树形dp,两遍dfs)
题目链接: HDU 4616 Game 题意: 给一个nn个节点和n−1n-1条边的树。每个节点代表一个房间,每个房间都放有一个价值为正的礼物,有的房间有陷阱,有的房间没陷阱,最多可以经过CC个陷阱(第CC个陷阱时就应该停止),可以从任意的房间开始行走,每个房间只能走一次,求获得的礼物的最大价值和? 数据范围:n≤5∗104,1≤C≤3n\leq 5*10^{4},1\leq C \le原创 2016-08-15 21:40:16 · 525 阅读 · 0 评论 -
HDU 3183 A Magic Lamp(贪心,删掉m个数字使剩下的数字字符串最小)
题目链接: HDU 3183 A Magic Lamp 题意: 给一个只含数字的字符串ss,从中正好删掉mm个数字,求剩下的最小的数字字符串(不含前导0)?无解输出-1. 数据范围:|s|≤1000|s|\leq 1000 分析: 贪心。 每次从前往后扫到第一个位置ii,满足s[i]>s[i+1]s[i] > s[i+1],然后删除ii,相当于将后面的字母前移一个位置,直到删原创 2016-08-11 11:05:31 · 813 阅读 · 0 评论 -
HDU 3486 Interviewe(RMQ)
题目链接: HDU 3486 Interviewe 题意: 要求从nn个人中,选择最少的人使得这些人的权值大于limitlimit,选择的人必须是连续的长度相同的区间中选择的,而且最后的不够区间长度的剩余人数舍弃。例如在7个人中选择2个人,在[1,3]和[4,6][1,3]和[4,6]各选1个人,然后第七个人舍弃。 数据范围:n≤20000n\leq 20000 分析: RMQ.原创 2016-08-11 11:19:59 · 474 阅读 · 0 评论 -
HDU 4003 Find Metal Mineral(树形dp,从根节点出发k个机器人遍历所有边的最小代价和)
题目链接; HDU 4003 Find Metal Mineral 题意: 给一个nn个节点和n−1n-1条边的树,每条边有权值,在给定的根节点rootroot有KK个机器人,要用这KK个机器人从根节点出发遍历所有的边,求最小代价?代价就是经过的所有边的权值和,机器人不必最终都回到根节点,机器人也可以重复走一些边。 数据范围:n≤104,k≤10n\leq 10 ^4,k\leq 10原创 2016-08-08 20:43:13 · 1053 阅读 · 0 评论 -
HDU 4352 数位dp
求区间内最大上升子序列为k的数字个数。 题目链接HDU 4352 XHXJ’s LIS题意把一个数字从左到右(从高位到低位)看成一个序列,求区间[L,R][L,R]内序列的最大上升子序列长度为KK的数字个数。数据范围:0<L≤R<263−1,1≤K≤100< L\leq R < 2^{63} - 1,1\leq K\leq 10分析把高位数字状压成最多是111111111(9个1)的二进制数,然原创 2016-09-02 16:16:15 · 592 阅读 · 0 评论 -
HDU 3709 Balanced Number(数位dp)
题目链接:HDU 3709 Balanced Number题意:如果一个数字以某一位为平衡点左右力矩相等,则称该数字为Balanced Number。求区间[L,R][L,R]中Balanced Number的数量。 数据范围:0≤L≤R≤10180\leq L\leq R\leq 10^{18}分析枚举平衡点并记录平衡点左右力矩之差为sumsum,这样子才能记忆化。还要注意0的情况。Code#i原创 2016-09-02 16:24:12 · 383 阅读 · 0 评论 -
HDU 3652 B-Number(数位dp)
题目链接:HDU 3652 B-Number题意求[1,n][1,n]中含有子串“13”并且能被13整除的数字个数。 数据范围:1≤n 1091\leq n\ 10^{9}分析记录高位模13的余数,和前一位数字,以及高位是否出现子串“13”即可。Code#include <stdio.h>#include <string.h>#include <math.h>#include <algori原创 2016-09-02 16:29:23 · 438 阅读 · 0 评论 -
HDU 4734 F(x)(数位dp)
题目链接HDU 4734 F(x)题意对于一个nn位的数字xx,从高到低依次为AnAn−1...A1A_{n}A_{n-1}...A_{1}。定义:f(x)=An∗2n+An−1∗2n−1+⋯+A1∗2f(x)=A_{n}*2^{n}+A_{n-1}*2^{n-1}+\cdots +A_{1}*2。给两个数字A,BA,B,求区间[0,B][0,B]内f(x)≤f(A)f(x)\leq f(A)的数字原创 2016-09-02 16:42:18 · 581 阅读 · 0 评论 -
HDU 4507 吉哥系列故事——恨7不成妻(数位dp,较难)
题目链接HDU 4507 吉哥系列故事——恨7不成妻题意定义和7有关的数字是满足下列条件之一的数字:整数中某一位是7;整数的每一位加起来的和是7的整数倍;这个整数是7的整数倍;给一个区间[L,R][L,R],求区间内所有和7无关的数字的平方和。对1e9+7取模。 数据范围:1≤L≤R≤10181\leq L\leq R\leq 10^{18}分析这个题目比较难了。。。我觉得。 无论是求和原创 2016-09-02 17:13:27 · 538 阅读 · 0 评论 -
HDU 3709 Balanced Number(数位dp)
题目链接: HDU 3709 Balanced Number 题意: 把一个数字都某一位看成一个支点,左右的权值和是各个位上的数字到支点的距离乘积之和。如果存在某个支点使得左右权值和相等,这个数字就称为Balanced Number。给定区间[L,R][L,R],求Balanced Number的数字个数。 数据范围:0≤L≤R≤10180\leq L\leq R \leq 10^{18}原创 2016-08-31 00:52:26 · 453 阅读 · 0 评论 -
HDU 4213 Bob’s Race(树形dp+单调队列)
题目链接: HDU 4213 Bob’s Race 题意: 给出一个nn个节点的树,先对每个点求最远可到的距离,然后有mm询问,每次询问找一个最长的区间使得区间的距离最值差小于等于limitlimit,输出区间长度。 数据范围:n≤5∗104,m≤500,单条边权:≤5000,limit≤107n\leq 5*10^4,m\leq 500,单条边权:\leq 5000,limit\leq原创 2016-08-08 22:49:10 · 508 阅读 · 0 评论 -
HDU 5661 Claris and XOR(异或,贪心)
题目链接: HDU 5661 Claris and XOR 题意: 给定区间[a,b][a,b]和[c,d][c,d],求x∈[a,b]x\in [a,b],y∈[c,d]y\in [c,d]使得x异或yx异或y的值最大?输出最大的值。 数据范围:a≤b≤1018,c≤d≤1018a\leq b \leq 10^{18},c\leq d \leq 10^{18}。 分析: 从后往原创 2016-08-08 19:55:17 · 860 阅读 · 2 评论 -
HDU 1003 Max Sum(最长连续子序列和)
题目链接; HDU 1003 Max Sum 题意: 求最长连续子序列和,并输出子序列的起始和终止位置。 数据范围:n≤105,−1000≤每个数≤103n\leq 10^5,-1000\leq 每个数\leq 10^3。 多解时,输出第一个序列的起始和终止位置。 分析: 直接看代码吧。 用sumsum记录当前连续子序列的和,当sum<0sum<0和sum>anssum>ans时需要原创 2016-07-21 00:42:28 · 596 阅读 · 0 评论 -
HDU 1087 Super Jumping! Jumping! Jumping!(求最大上升子序列和)
题目链接; HDU 1087 Super Jumping! Jumping! Jumping! 题意: 求最大上升子序列和。 数据范围:n≤1000n\leq 1000 分析: 用dp[i]dp[i]表示以ii为结尾的最大上升子序列和。那么 dp[i]=max(dp[i],dp[j]+data[i])(j<i且data[j]<data[i]dp[i]=max(dp[i],dp[j]+d原创 2016-07-21 10:22:10 · 422 阅读 · 0 评论 -
HDU 5534 Partial Tree(dp优化)
题目链接: HDU 5534 Partial Tree 题意: 有一棵树有nn个节点,对于度为dd的节点对树的价值贡献为f(d)f(d),给出f(1),f(2),⋯,f(n−1)f(1),f(2),\cdots ,f(n-1),(边是任意构造的)。求树的最大价值? 数据范围:n≤2015n\leq 2015 分析: 一个nn个节点的树会有n−1n-1条边,每条边可以贡献两个度,所原创 2016-08-17 00:41:41 · 474 阅读 · 0 评论 -
HDU 4756 Install Air Conditioning(树形dp+MST)
题目链接: HDU 4756 Install Air Conditioning 题意: 给nn个点的二维坐标,要将这nn个点连通,边权就是两点距离,其中00号节点是根,可能会破坏除根之外的任意两点的边(不能建边),要求将这nn个点连通的最坏代价? 数据范围:n≤1000n\leq 1000 分析: 上面的黑体字是因为原题中有这句话: But Tom200 is informe原创 2016-08-18 00:25:12 · 543 阅读 · 0 评论 -
HDU 4126 Genghis Khan the Conqueror(树形dp,MST,破坏原有最小生成树边后的最小生成树代价)
题目链接: HDU 4126 Genghis Khan the Conqueror 题意: 给nn个点和mm条无向边,需要将这nn个点连通。但是有QQ次破坏,每次破坏会把mm条边中的某条边的权值增大,求QQ次破坏每次将nn个点连通的代价的期望?(每次破坏后的最小生成树的代价累加除以QQ) 数据范围:n≤3000,Q≤104,单边权≤107,总边权≤109n\leq 3000,Q\leq原创 2016-08-18 00:14:25 · 985 阅读 · 0 评论 -
HDU 4313 Matrix(并查集/破坏边使得k个点两两不连通的最少代价)
题目链接: HDU 4313 Matrix 题意: 有nn个点和n−1n-1条无向边,需要破坏一些边使得给定的kk个点两两不连通,求最少的破坏代价? 数据范围:n≤105n \leq 10^5 分析;#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <climi原创 2016-08-03 13:14:09 · 590 阅读 · 0 评论 -
HDU 5779 Tower Defence(dp+组合数)
题目链接就: Tower Defence 题意: 小白最近痴迷于玩Tower Defence。他想要自己制作一张地图。地图是一张有n个点的无向图(图可以不连通,没有重边和自环),所 有边的长度都为1,满足从1号点到其他任意一个点的最短路都不等于k.小白想知道这样的图有多少个。如果两个顶点不连通,那么它 们之间的距离为无穷大。答案对109+710^9+7取模。 数据范围:n≤60,k≤6原创 2016-08-06 18:52:15 · 474 阅读 · 0 评论