![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HDU
文章平均质量分 50
C_z_Q
ACM Retired
展开
-
HDU5802 Windows 10[贪心+DFS]
题意:给你一个p和q,问p到q最少需要几秒 1秒可以使p+1,或者停一次,也可以使p减去2*x,x是上一秒减去的数目。 思路:当p小于等于q的时候很明显答案就是q-p 当p大于q的时候,有两种方法:直接减到q或者减到q以下再加回来。 用DFS+贪心即可完成. 一直坑在一个点,就是减到q以下加回来的时候,加的时间可以用之前停顿的时间代替。 #include using namespace原创 2016-08-18 19:51:56 · 401 阅读 · 0 评论 -
HDU5857 Median[模拟]
题意:给你一个一串已经排好序的数,再给你两个区间L1,R1,L2,R2 问这两个区间组成的新的一串数的中位数是多少。 思路:刚开始想可以分成三种情况包含,分离和相交 后来仔细一想,包含和相交可以通过交换R1,R2来合并,这样就只有两种情况了,模拟即可。 因为我在写新串偶数情况时先将两个数加起来,这样的话就暴int了,改成long long就过了,WA了无数发.. #include usi原创 2016-08-19 21:27:08 · 567 阅读 · 0 评论 -
HDU 6024 Building Shops[dp]
题意:给定n个点(n 分析:dp[i]表示最后取的点为 i 时的最小代价,那么转移的话就是dp[i] = min(dp[i],dp[j]+sum[i - 1] - sum[j] - x[j]*(i-j-1) + w[i]); 其中,sum[i]为1-i的所有点的坐标之和,复杂度为O(n^2),好像能通过斜率优化到O(n),目前不会,,回头再补。 以下是代码。 #includ原创 2017-05-08 09:49:28 · 517 阅读 · 0 评论 -
HDU 6030 Happy Necklace[找规律][矩阵快速幂]
题意:问一个长度为n,由R和B构成字符串,在每个斐波那契长度的子串中,R的个数不少于B。 分析:直接搞不知道怎么搞,然后就手动打了打表,,打到了8,找了一个多小时= =。 最后发现规律是 a[n] = a[n - 1] + a[n - 3]; 因为n有1e18,所以还需要矩阵快速幂加个速。 以下是代码: #include #include #include #includ原创 2017-05-08 10:06:52 · 318 阅读 · 0 评论 -
HDU 6031 Innumerable Ancestors[树链剖分]
题意:给定一颗n个节点的树,然后是m个询问,每个询问是两个集合,问分别在这两个集合中取一个点,这两个点的LCA 的深度最大为多少。 分析:首先想到的肯定是for两个集合,O(k^2),肯定要爆炸。我们对这棵树进行树链剖分,剖完之后的树最多有logn条链,那么,我们将这两个集合中的点,根据他们所在的链分类,如果两个点位于同一条链,我们取深度更深的那个点,这样处理之后,每个集合中最多只有logn个点原创 2017-05-08 10:19:00 · 356 阅读 · 0 评论 -
HDU 6029 Graph Theory
题意:有n个点,对于每个点有两种操作,(1) 跟他之前的点都连一条边。(2) 不做操作。现在对于每个点都给定了操作,问能否从中选取几条边,每条边都没有公共端点,而且n个点都被边覆盖。 分析:首先,很容易想到,当n为奇数的时候,答案肯定是No。 然后是偶数,取一个cnt表示到当前,前面还有几个点没有连边,for一遍就好。 以下是代码: #include #include原创 2017-05-08 09:56:18 · 725 阅读 · 0 评论 -
HDU 6005 Pandaland[最小生成树][LCA]
题意:给定 MMM 条边,找一个路径最短的环,如果不存在环,输出 000。(1≤M≤4000)(1≤M≤4000)(1 \leq M \leq 4000)分析:通过观察可以发现,最短的环一定是在这个图的最小生成树上。 这样,我们可以通过枚举不在树上的边,求树上这条边的两点间距离,加上边的权值并取个最小值即可。 需要注意的是,题目给你的图可能有多个联通块。以下是代码。 #include<bits/原创 2017-10-06 19:51:41 · 587 阅读 · 0 评论