
HDU
Tuesday..
这个作者很懒,什么都没留下…
展开
-
HDU 1754_I Hate It
【题意】给定区间求最大值【分析】线段树单点更新【代码】#include#includeusing namespace std;const int maxn=1<<21;const int INF=0x3fffffff;int Max=0;int mid;struct Node{ int l,r;//左孩子,右孩子 int value;}N[maxn];原创 2015-12-13 16:09:11 · 393 阅读 · 0 评论 -
HDU 1695 GCD【莫比乌斯反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695题意:1≤x≤m,1≤y≤n1\le x \le m, 1 \le y \le n ,求gcd(x,y)=kgcd(x, y) = k的(x,y)(x,y)的对数。分析:首先根据莫比乌斯反演我们有 F(n)=∑n|df(d)⇒f(n)=∑n|dμ(d/n)F(d)F(n) = \sum_{n|d}原创 2016-05-29 22:55:26 · 695 阅读 · 0 评论 -
HDU 4746 Mophues【莫比乌斯反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4746题意:1≤x,y≤n1\le x,y \le n , 求gcd(x,y)gcd(x,y)分解后质因数个数小于等kk的(x,y)(x,y)的对数。分析:莫比乌斯反演。 还是一个套路,我们设 f(d)f(d):满足gcd(x,y)=dgcd(x,y)=d且x,yx,y均在给定范围内的(x,y)(x,原创 2016-05-30 21:42:16 · 2097 阅读 · 0 评论 -
HDU 5212 Code【莫比乌斯反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5212题意:给定序列,1≤i,j≤n1 \le i,j \le n,求gcd(a[i],a[j])∗(gcd(a[i],a[j])−1)gcd(a[i],a[j]) * (gcd(a[i], a[j]) - 1)之和。分析:同样我们设 f(d)f(d):满足gcd(x,y)=dgcd(x,y)=d且x,原创 2016-05-30 23:05:02 · 1311 阅读 · 0 评论 -
HDU 5672 String【尺取法】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5672题意:有一个10≤10\leq长度≤1,000,000\leq 1,000,000的字符串,仅由小写字母构成。求有多少个子串,包含有至少k(1≤k≤26)k(1 \leq k \leq 26)个不同的字母?分析:很典型的尺取法。 不断依次移动区间的头尾,使区间满足条件,并找到这样的区间个数。 注原创 2016-04-23 09:33:24 · 1117 阅读 · 0 评论 -
HDU 5673 Robot【卡特兰数】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5673题意:有一个机器人位于坐标原点上。每秒钟机器人都可以向右移到一个单位距离,或者在原地不动。如果机器人的当前位置在原点右侧,它同样可以向左移动单位距离。一系列的移动(左移,右移,原地不动)定义为一个路径。问有多少种不同的路径,使得nn秒后机器人仍然位于坐标原点?答案可能很大,只需输出答案对1,000,原创 2016-04-23 10:45:52 · 602 阅读 · 0 评论 -
HDU 5583 Kingdom of Black and White
接过队友的锅敲这道题,结果没太想清楚着急直接敲调试了好久。。又被队友嫌弃。。真心为我的代码能力担忧。。 “不要头脑一热就开始写” 下来检查发现当时的代码都写错了。。话说区域赛的数据为何这么弱。。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5583题意:给定01串,连续的相同字符的长度的记为距离。改变一个字符,使得最后的距离平方和最大。分析:对于每原创 2016-04-24 15:00:49 · 428 阅读 · 0 评论 -
HDU 5572 An Easy Physics Problem【计算几何】
计算几何的题做的真是少之又少。 之前wa以为是精度问题,后来发现是情况没有考虑全。。。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5572题意:给定起点A和方向V,路径中遇到圆柱体会发生折射,问能否到达终点B。分析:将路径表示为a+t∗va + t * v得到关于tt的二元方程组,求出Δ\Delta。 Δ\Delta小于等于0时,表示不会发生折射原创 2016-04-24 23:02:28 · 705 阅读 · 0 评论 -
HDU 5735 Born Slippy【巧妙暴力枚举】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5735题意:给定树及每个点的权值,对于每个节点从该结点开始从下到上找若干祖先结点,使得得到的序列中相邻结点之间对于特定的位运算的和最大。求每个节点得到的结果加上自身权值的值。分析:首先我们可以得到最直接的状态定义dp[i]:=到达i结点时能得到的最大值dp[i]:=到达i结点时能得到的最大值。 状态转移原创 2016-07-24 10:09:59 · 692 阅读 · 0 评论 -
HDU 4777 Rabbit Kingdom【树状数组】
题意:给定序列,若干询问,求给定询问区间中互质的数的个数。分析:智商太低理解了好久好久,最后还是看别人代码明白的。 设l[i]l[i]为位置为ii的元素左边第一个与w[i]w[i]不互质的数,r[i]r[i]为右边第一个与w[i]w[i]不互质的数,那么(l[i],r[i])(l[i], r[i])区间内的所有数均与w[i]w[i]互质。 假设我们从头开始扫,为了防止重复计算,我们不管ii左边的原创 2016-07-12 12:53:30 · 761 阅读 · 0 评论 -
HDU 4778 Gems Fight!【博弈+DP】
这个题真的想得超级久都没有思路,想明白了又因为位运算少加个括号调试了将近一个小时,大家都秒出的题我又基本是最后几个交的。今天各种智商不在线。伤心难过受打击。。题意:有B(0≤B≤21)B(0\le B \le 21)个背包,有G(0≤G≤8)G(0 \le G \le 8)种颜色的宝石,这两个人轮流选择某一个背包,把这个背包包里的宝石放到一个共享的地方里,当这里某一种颜色的宝石等于SS,那么就可以产原创 2016-07-11 20:59:02 · 642 阅读 · 0 评论 -
HDU 5046 Airport【DLX重复覆盖】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5046题意:给定nn个城市的坐标,要在城市中建kk个飞机场,使城市距离最近的飞机场的最长距离最小,求这个最小距离。分析:最小化最大值,显然二分最大距离。然后我们将距离在范围内的两个城市建边,看能否选出kk个城市,使得覆盖了所有城市。 将点之间的关系转化成01矩阵的覆盖问题,重复覆盖,建好边套个DLXDL原创 2016-07-09 10:43:06 · 889 阅读 · 0 评论 -
HDU 3389 Game【阶梯博弈】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3389题意:nn个盒子,编号1−n1-n排列,每个盒子都有若干卡片,每次对于满足B<A,(A+B)%2=1且(A+B)%3=0B<A ,(A+B)\%2=1 且(A+B)\%3=0的两个盒子,可以将AA中任意数目的卡片移到BB中,两人轮流操作,问最后谁无法操作?分析:首先手算一下小数据,我们会发现最终盒子原创 2016-07-31 20:58:13 · 793 阅读 · 0 评论 -
HDU 5667 Sequence【矩阵快速幂+费马小定理】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5667题意:Lcomyn 是个很厉害的选手,除了喜欢写17kb+的代码题,偶尔还会写数学题.他找到了一个数列:fnf_n=1,ab,abfcn−1fn−2,n=1n=2otherwise\begin{matrix} 1 ,&n=1 \\ a^b,&n=2 \\ a^bf_{n-1}^cf_{n-2},&o原创 2016-05-03 10:30:36 · 541 阅读 · 0 评论 -
HDU 5676 ztr loves lucky numbers【DFS】
题目链接;http://acm.hdu.edu.cn/showproblem.php?pid=5676题意:由4和7组成的且4和7出现次数相同的数称为幸运数字,给定n,求不大于n的最大幸运数字。分析:可以对于每个数都按位dfs找一发。一旦发现当前位无法满足就回溯,直到找到满足条件的最小的。 也可以先按位dfs把所有结果都找出来存起来,然后对于每个询问直接二分即可。代码:#include<cstdi原创 2016-05-01 19:06:02 · 382 阅读 · 0 评论 -
HDU 4193 Non-negative Partial Sums【单调队列】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4193题意:给定序列,可以把后面的连续的部分移到最前面来,问多少种移法使得最终得到的序列的前ii项和均大于等于0(1≤i≤n1 \le i \le n)?分析:先将数组前后拼接起来,记录每个位置的前缀和。然后去找长度为n的滑动窗口,在这个窗口内,要保证前ii项和大于等于0,也即区间[i,n+i][i,n原创 2016-03-30 11:47:15 · 475 阅读 · 0 评论 -
HDU 1024 Max Sum Plus Plus【DP,最大m子段和】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024题意:给定序列,给定m,求m个子段的最大和。分析:设dp[i][j]dp[i][j]为以第j个元素结尾的i个子段的和。 对于每个元素有和前一个元素并在一起构成一个子段,和单独开启一个子段两种可能,状态转移方程dp[i][j] = max(dp[i][j - 1], dp[i - 1][k]) +原创 2016-04-03 11:48:32 · 410 阅读 · 0 评论 -
HDU 1074 Doing Homework【状态压缩DP】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074题意:给定作业截止时间和完成作业所需时间,比截止时间晚一天扣一分,问如何安排作业的顺序使得最终扣分最少?分析:最多只有15节课,可以将完成作业的情况进行状态压缩,用二进制表示,枚举出状态,进行dp。 然后注意要取字典序最小的。 dp最初忘记1<代码:#include<iostream>#inc原创 2016-04-04 11:10:50 · 582 阅读 · 0 评论 -
HDU 5641 King's Phone【模拟】
题意:给定一串密码, 判断是否合法。长度不小于4不能重复经过任何点不能跳过中间点,除非中间点已经经过一次。分析:3*3直接记录出可能出现在两点之间的点,直接模拟就好。 注意审题,别漏了判断。代码:#include <cstdio>#include<algorithm>#include<cstring>#include<map>const int maxm = 15, mod = 1原创 2016-03-13 08:30:30 · 346 阅读 · 0 评论 -
HDU 5642 King's Order【数位dp】
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=677&pid=1003题意:求长度为n的序列中,每个字符(a~z)连续出现不超过3次的种数。分析:数位dp,设dp[i][j]dp[i][j]表示进行到第ii个字符,其中当前字符出现jj次,然后每次状态转移一下就好了~代码:#include <cstdio>原创 2016-03-13 09:07:30 · 512 阅读 · 0 评论 -
HDU 5640 King's Cake【模拟】
题意:给定长方形,每次从中切去一个最大的正方形,问最终可以得到多少正方形。分析:过程类似求gcd,每次减去最小的边即可。代码:#include <cstdio>#include<algorithm>#include<iostream>using namespace std;int main (void){ int T;cin>>T; int n, m; while(原创 2016-03-13 08:25:29 · 603 阅读 · 0 评论 -
HDU 5643 King's Game 【约瑟夫环】
题意:变形的约瑟夫环,最初为每个人编号1到n1到n,第i次删去报号为i次删去报号为i$的人,然后从它的下一个人开始重新从1开始报号,问最终剩下第几号人?分析:首先看一下裸的约瑟夫环问题: 共n个人,从1开始报数,报到k的人从环中退出,问最后剩下的一个人的编号是?为取模方便,假设下标从0开始,倒推分析: 假设该轮有nn个人,那么上一轮(n+1)(n+1)人,编号为00的人上一轮编号为k,也即编原创 2016-03-13 12:53:00 · 3110 阅读 · 0 评论 -
HDU 5644 King's Pliot【费用流】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5644题意:每天都有p[i]p[i]个飞行员进行阅兵,飞行员只工作一天。 mm个休假公式,花费tt[i]tt[i]元让飞行员在休假ss[i]ss[i]天后回来上班。 可以花费QQ元雇佣新的飞行员,但是直到P天后才能上班。分析:首先某一天雇佣的飞行员有三种可能: 1.原来就有的:从ss到第一天的结原创 2016-03-13 23:16:20 · 709 阅读 · 0 评论 -
HDU 2586 How far away ?【LCA】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586题意:无向图,给定边及边权重,任意两点之间都有一条唯一的道路,道路上每个点只能出现一次。给定询问,求询问的结点之间的距离。分析:路上每个点只能出现一次~可以转化成有根树,问题也即为求最近公共祖先问题~~ 这里每条边加上了距离,求出lca后,用u、v的距离根的距离和减去2倍的根到最近公共祖先的距离即原创 2016-03-25 00:07:58 · 407 阅读 · 0 评论 -
HDU 5521 Meeting【最短路】
今天旁观了Angry_Newbie的模拟区域赛(2015shenyang) 倒着看最先看的M题,很明显的最短路问题,在我看懂的时候他们已经开始敲B了。 后来听说D过了很多人。。 D题一看是个博弈,给了很多组样例,找找规律懵一懵就ac了。然后我就滚粗了。。。 而他们也早就A了D,很快他们又A了B。。。 后来就全程看着罗大神敲无限TLE的M。感觉算法肯定没错,但是想不到哪里还可以优化。 后来原创 2016-04-09 00:07:08 · 594 阅读 · 0 评论 -
HDU 5512 Pagodas【博弈】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5512题意:给定集合,最初有两个数a,b,如果两个人依次使用集合中的元素相加减,如果得到的数均不在在[1,n][1,n]中,则该人输,否则将新数放到集合中,游戏继续。分析:看8 6 8这组,发现只有偶数才能被取到,大胆猜能选的数都是最初的两个数的gcd,判断下选出的数的个数模2即可。代码:#include原创 2016-04-09 00:22:27 · 551 阅读 · 0 评论 -
HDU 5584 LCM Walk【搜索】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584题意:分析:这题比赛的时候卡了很久,一直在用数论的方法解决。 其实从终点往前推就可以发现,整个过程中的点的gcd都是一样的,利用这个性质倒着搜索一遍就好了。 相同的gcd均为gcd(6,10)gcd(6,10) 以(6,10)(6,10)为例,假设倒数第二个点到达(6−x∗gcd,10)(6-原创 2016-04-27 11:13:57 · 646 阅读 · 0 评论 -
HDU 5573 Binary Tree【构造】
几天前模拟区域赛的一道题,今天发现在草稿箱里直接补个博客。 感觉这还是一道很有意思的构造题。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5573题意:给你一个二叉树,根节点为1,子节点为父节点的2倍和2倍+1,从根节点开始依次向下走k层,问如何走使得将路径上的数进行加减最终结果得到n。分析:首先明确由1.2.4...2k1.2.4...2^k可以构原创 2016-04-27 21:57:39 · 1304 阅读 · 0 评论 -
HDU 5722 Jewelry【线段树,矩形面积并】
题意:给定序列,求满足区间内存在一种珍珠正好出现xx次的区间个数。分析:枚举左端点,找右端点的可行区间。 对于每一个珍珠,从头开始枚举左端点,对于每一个左端点ll,维护满足区间[l,r][l,r]内该种珍珠正好出现xx次的右端点rr,由于存在一个连续的区间内,区间内珍珠的数目是不变的,那么我们把这些得到的满足条件的区间并起来, 就得到了左端点对应的可行右端点的区间,求区间并我们可以用线段树,类似求原创 2016-07-18 19:41:26 · 554 阅读 · 0 评论