
HDU
文章平均质量分 74
stormjing7
这个作者很懒,什么都没留下…
展开
-
HDU-2612 Find a way(双向bfs)
Find a way题意:给你一维图,两个人Y,M,约在kfc(@)见面,求两个人走的步数和最小的走法做法:分别从两个人的位置进行bfs,将两次的结果写入ans数组,最后遍历ans数组,找出两个人都能到且步数和最小的kfc。代码:#include <iostream>#include <cstring>#include <string>#inclu...原创 2018-11-15 19:26:46 · 309 阅读 · 0 评论 -
HDU - 1175 连连看(BFS 扩展顺序不同导致WA ???)
HDU - 1175 连连看题目给一个迷宫,起点和终点,问是否能从起点走到终点,且转向次数不超过 2 次。分析题目并不难,很容易想到 bfs,不过要有很多细节要注意。定义 bfs 的每次的状态包括当前位置,当前已转向次数,来时的方向。可以先将终点位置值设为 0 ,即通路,便于写代码。但是 bfs之后要改回去。后面判断转向就用要去的方向与来时的方向一样不一样。注意细节。代码#in...原创 2019-07-17 17:03:49 · 207 阅读 · 0 评论 -
HDU - 1043 Eight (八数码:逆向BFS + 康拓展开)
HDU - 1043 Eight题目题目是八数码问题,肯定都玩过,输出数据是多组,每次给出初始状态,问能否达到123456780 的状态,如果能就输出上下左右的路径,不能就输出英文。分析看了一眼题,感觉 bfs 还可以,因为状态很好表示,代码...原创 2019-07-20 19:10:57 · 256 阅读 · 0 评论 -
HDU 6447 YJJ's Salesman(树状数组优化DP + 离散化)
HDU 6447 YJJ’s Salesman题目给一个二维数组,从(0,0)走到(1e9, 1e9)。每次只能走右,下,右下,三个方向。其中只有通过右下走到特定给出的点(村庄)时才会获得分值。问最后走到终点最大分值。分析很明显的 DP 题目。状态转移题目都给出了。但是 1e9 很明显会爆。想一下,题目让求最大分值,而最大分值只与特定的点有关。也就是说数组的列上如果没有村庄怎么走都没关系...原创 2019-08-21 18:05:40 · 249 阅读 · 0 评论 -
HDU 6446 Tree and Permutation (树上任意两点距离之和,DFS,思维)
HDU 6446 Tree and Permutation题目给一颗 n 个节点的带权树树,定义一个排列的距离为按排列顺序最短路径和。求 n 的全排列的距离和。例如: n = 4,其中一个排列为 4 1 2 3。那么这个排列距离为 4 -> 1 -> 2 -> 3。x ->y 指的是 x 到 y 的最短路径。分析对于全排列,分析任意两点距离对排列的贡献。假如 ...原创 2019-08-21 22:31:34 · 483 阅读 · 0 评论 -
2017ccpc杭州赛区 Problem D. Master of Random HDU 6267(规律 + 公式)
HDU 6267题目有 n 个点,标号 0 - n-1,每个点都有权值,用这 n 点建一颗树,父节点的标号一定小于子节点。问在所有建好的树中,所有子树的期望值。分析题目有点难懂。最后的答案是一个分数。分母是所有的树的所有子树。对于分子的计算,也就是所有子树值,这一类题目要想到考虑每一个节点对答案的贡献。通过打表观察可以发现,分母就是 n!。假设有 n 个节点,0 号节点 贡献 (...原创 2019-09-13 22:32:02 · 431 阅读 · 0 评论 -
HDU 6739 2019 ccpc秦皇岛 I. Invoker (dp + 思维)
hdu题目有几个技能,每个技能由三个无序字符组成(要按下这三个键),给你一个字符串代表释放技能的顺序,问你最少按多少键。(技能中间连接可以抵消)分析两个技能字符分别是 QEE ,EEE。那么可以少按两个键,因为中间可以抵消两个 E。因此算出来最多抵消的数目,原本应该按的数目(4 * len) 减去最多抵消的数目 ans 就是最终的答案(最少按键)每个技能有三个无序字符,也就是最多六种组合...原创 2019-09-28 17:53:45 · 539 阅读 · 0 评论 -
(HDU 5573) 2015 上海 icpc B. Binary Tree(二进制找规律)
HDU5573 Binary Tree题目有一颗满二叉树,编号1 ~ n,现在你要从根节点往下走,初始手里的值 V 为 0,每路过一个节点,可以选择 V 加上或者减去节点的编号值。问你走 k 层,值 V 能否达到 n。(题目保证可以达到)最后输出路径,怎么走的。1 <= N <= 1e9N <= 2k2^k2k <= 2602^{60}260;分析可以想到,...原创 2019-10-01 20:29:05 · 236 阅读 · 0 评论 -
HDU 6736【2019秦皇岛ccpc】 F. Forest Program(点的双连通分量)
HDU 6736 Forest Program题目给你一个无向图,保证每条边最多在一个简单环里。问你有多少删边方式使图不包括环。mod 998244353分析首先对于一个环里的边,一定要删去一个,那么如果环里有 n 条边,就有 2n−12^n - 12n−1 。再考虑不在环里的边,那么删不删不所谓,如果不再环里的边一共有 m 条边,就有 2m2^m2m。根据乘法法则,将上面的乘起来就是最终答案。现在问题变成了在无向图里面找...原创 2019-10-01 20:56:15 · 459 阅读 · 0 评论 -
HDU - 3486 Interviewe (RMQ + 枚举)
HDU - 3486 Interviewe题目给你 n 个数,让你分成 m 组,每组长度 n / m,剩下的人不要。每组最大值之和要大于给出的 k,问最小的 m 是多少。分析看到分组取最值,很明显 RMQ 问题,这里最小的 m 肯定是 1了,那么就从 1 开始枚举,只要遇到满足条件的就直接输出。注意要加个剪枝:枚举 m 的时候有可能两个 m值对应的分组长度是相同的。这时就不用再次计算了,直...原创 2019-07-10 20:53:56 · 291 阅读 · 0 评论 -
HDU - 3183 A Magic Lamp (RMQ + 贪心)
HDU - 3183 A Magic Lamp题目给一个最多 1000 位的整数,去掉 n 个数位,使剩下的数字尽可能小。分析去掉 n 个数位之后剩下的数位是固定的,之后对于高位贪心的尽可能取最小值即可。可以用RMQ预先处理最小值的下标。不过如果值相同,优先级左边的要比右边的高。剩下的数位有可能比较大,按字符串输出即可。#include <bits/stdc++.h>#de...原创 2019-07-09 17:05:34 · 197 阅读 · 0 评论 -
HDU-3949 XOR (线性基求异或第 k 小)
HDU-3949 XOR题目给出n个数,任选大于等于1个数进行异或,得到的结果加入一个集合,问这个集合中第k大的数是多少?分析线性基可以求一组数所有异或可能的取值的顺序,即第 k 大,第 k 小。上模板就行。代码#include <cstdio>#include <iostream>#include <cmath>#include <ve...原创 2019-07-12 22:23:18 · 508 阅读 · 0 评论 -
HDU-2036 改革春风吹满地(计算几何)
多边形面积公式如果逆时针给出点坐标,值为正,如果顺时针给出点坐标,值为负。包括凸凹多边形实质为==第一个点与第二个点 第二个点与第三个点 一直到第n个点与第一个点的 叉乘 == 的和。“ 改革春风吹满地,不会AC没关系;实在不行回老家,还有一亩三分地。谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句...原创 2018-12-03 20:07:07 · 301 阅读 · 0 评论 -
HDU-5532 Almost Sorted Array (最长上升子序列 or 模拟)
传送门Almost Sorted ArrayTime Limit: 4000/2000 MS (Java/Others)Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 7512Accepted Submission(s): 1763Problem Description...原创 2018-07-15 10:45:30 · 233 阅读 · 0 评论 -
HDU-1277全文检索 (字典树)
题目链接:acm.hdu.edu.cn/showproblem.php?pid=1277题目大意:给出一个信息流文件由数字组成,然后再给出若干关键字,检索那些关键字出现过。分析:用字典树,将关键字序列构造为字典树,然后用信息流文件当做模式串,迭代模式串的每一位,并在字典树中查找是否存在子串,存在就输出.(注意:要检查关键字是否重复输出)代码...原创 2018-07-10 22:44:47 · 434 阅读 · 0 评论 -
HDU - 1024最大m段字段和
题意:给你n个数,选m个子段,各个子段连续且不相交,长度可以为1,设maxn为各个子区间的和,求最大的maxn。分析:设dp[i][j]代表 j个数选取 i 个子段 ,maxn最大的值;得状态转移方程dp[i][j]=max(dp[i][j−1],dp[i][j−1]+a[j],dp[i−1][k]+a[j](0<k<j)dp[i][j] = max(...原创 2019-04-09 15:15:35 · 417 阅读 · 0 评论 -
HDU - 1069 Monkey and Banana(LIS变形)
题意:给你n种长方体,每种长方体有三个参数长宽高,每种数量不限,现在让你将长方体摞一块,要满足上方长方体的长和宽严格小于下方的,求最大高度。分析:这道题其实就是最长递增子序列LIS的变形,首先将同一个长方体不同摆放视为不同的,也就是一个长方体有6种方式,之后按长宽排序,接着就是求LIS的模板了,只要将递增改为递减即可,注意状态 转移方程:dp[i]=max(dp[i],dp[j]+blo...原创 2019-04-09 21:19:01 · 261 阅读 · 0 评论 -
HDU-2586 How far away ?(Tarjian_LCA)
HDU-258 How far away ?题目给一颗树,及其每条边权值,求多组两点最短路径,分析树上两点最短路径可以先把每个节点到跟节点的权值dis求出,设rt为u,v的LCA。u,v最短路径 : dis[u]+dis[v]−2∗dis[rt]dis[u] + dis[v] - 2 * dis[rt]dis[u]+dis[v]−2∗dis[rt]我用的离线Tarjian算法,所以要先...原创 2019-05-21 20:40:37 · 260 阅读 · 0 评论 -
HDU - 3308 LCIS(单点更新,区间合并,查询)
HDU - 3308 LCIS题目给你长度为 n 的序列,两种操作,1、更新某个点的值,2、查询某个区间里最长连续上升子序列长度。操作一共 m 次。(n,m<1e5n, m < 1e5n,m<1e5)分析经典的线段树区间合并题目首先要维护区间的三个值区间最长连续上升子序列长度区间以左端点开始的最长连续上升子序列的长度区间以右端点结束的最长连续上升...原创 2019-06-12 16:30:11 · 240 阅读 · 0 评论 -
HDU - 1542 Atlantis(区间修改,扫描线,离散化)
HDU - 1542 Atlantis题目在平面上给出 n 个矩形,求矩形并的面积。首先用扫描线按矩形的水平边分段,如上图。在同一段的面积一起计算,即同一种颜色。原创 2019-06-19 10:58:41 · 199 阅读 · 0 评论 -
HDU 4635 Strongly connected(Tarjian强连通分量)
HDU 4635 Strongly connected题目给你一个有向图,如果是强连通图,输出 -1,否则让你加一定的边并让图保持非强连通,输出能加的最多的边数。分析考虑有向图什么时候边数最多且非强联通。直接给出结论:只有两个 SCCSCCSCC 分量 a,b,两个分量都是强连通图且其中一个中全部点指向另外一个全部点。我们考虑直接构造这样的图,假设初始有 nnn 个 SCCSCCSCC...原创 2019-10-09 15:57:31 · 191 阅读 · 0 评论