HDU
Ziiyan
这个作者很懒,什么都没留下…
展开
-
HDU - 2612 Find a way(BFS)
题目大意:Y 和 M 约定在一家 KFC 相见,地图上有许多家 KFC 都用 @ 表示,每移动一格耗时 11 分钟,找一条耗费时间最少的路,并输出两人耗时之和。 解题思路:t 数组记录到达当前位置需要几步,两次 BFS 即可求出两个人到达某个位置的步数和,最后遍历地图,找出所有 @ 对应位置次数和最少的地方,输出时间。 有的 @ 是无法达到的,在 t 中仍是初始化的 0,这要比可达的时间少,但显原创 2017-08-09 14:37:43 · 214 阅读 · 0 评论 -
HDU - 1069 Monkey and Banana
题目大意:给出一系列方块,要求上面的方块长宽都比下面的小,问最高能叠多高。每个方块可以翻转,并且个数不限。 解题思路:可以翻转意味着一组长宽高能有 6 种摆放方式,列出所有方式按照长宽排序,dp记录当前方块之前能够叠的最高高度。#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<stri原创 2017-08-31 11:10:22 · 166 阅读 · 0 评论 -
HDU - 1087 Super Jumping! Jumping! Jumping!(最长递增子序列)
题目大意:棋子要从 star 跳到 end,每个位置都有一个值,要求每次移动时值都递增,且不能返回,把 star 看作无穷小, end 看作无穷大,输出最大和。 解题思路:LIS 水过 dp 记录到达当前位置时最大和#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>原创 2017-08-31 16:41:40 · 223 阅读 · 0 评论 -
HDU - 1114 Piggy-Bank(完全背包)
题目大意:有一个小猪存钱罐,给出空和满时候的重量,并给出若干种面额的硬币大小和重量,个数不限,问装满小猪时,硬币最小总额是多少,若无法装满,输出impossible 解题思路:完全背包,dp 数组开小了 TLE 好几发……看了半天不知道哪里有问题 还以为会是越界什么的 居然是 TLE#include<iostream>#include<stdio.h>#include<algorithm>#原创 2017-08-31 19:17:09 · 189 阅读 · 0 评论 -
HDU - 1176 免费馅饼
题目大意:中文题 解题思路:列一个矩阵,把每秒的坐标情况都记录下来,然后从矩阵最后一行(即最后一秒)开始往前递推,输出初始位置 5 的馅饼数即可。#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>#include<queue>#i原创 2017-09-01 11:53:36 · 215 阅读 · 0 评论 -
HDU - 1260 Tickets
题目大意:给出 N 组测试样例,每组样例第一行表示 k 个人,第二行表示每个人购票所花时间,第三行 k-1 个数表示相邻两人一起购票需要的时间。8 点上班,问几点能下班。 解题思路:对于每个人,都有自己买 s[i] 或者是和前一个人一起买(除第一个人外)d[i] 两种方式。dp 记录当前人购票时花费最少时间,状态转移方程dp[i] = min(dp[i-1]+s[i], dp[i-2]+d[i])原创 2017-09-01 11:58:23 · 233 阅读 · 0 评论 -
HDU - 1257 最少拦截系统(LIS最长递增子序列)
题目大意:中文题 解题思路:LIS 输出最长上升子序列的长度即可,除该子序列外的数字前均有比自身大的数字,都会被顺便拦截掉。理解这个之后就好做了~#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>#include<queue>#i原创 2017-09-01 18:33:14 · 199 阅读 · 0 评论 -
HDU - 1160 FatMouse's Speed
题目大意:给出若干只老鼠的重量和速度,从数据中找出一组数据满足越重的老鼠速度越慢,数据量越大越好,输出个数和老鼠的序号,有多种答案,只需要输出一种 解题思路:先对这些数据排序(重量递增,重量相同时速度递减)然后递推 dp 记录包含当前老鼠时能够满足条件的数据最多有几个,path 记录满足条件数据的坐标,用于路径输出。感觉这题也是 LIS 的变型#include<iostream>#include原创 2017-09-01 18:42:43 · 211 阅读 · 0 评论 -
HDU - 1159 Common Subsequence(LCS最长公共子序列)
题目大意:给出字符串 X 和 Y,输出最长公共子序列的长度 解题思路:LCS 水过#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(a):(b原创 2017-09-01 18:58:39 · 254 阅读 · 0 评论 -
HDU - 1029 Ignatius and the Princess IV
题目大意:给出奇数个数,输出这些数中出现 (N+1)/2 次数的数。 解题思路:直接排序取中间的数即可,因为是奇数个数,出现 (N+1)/2 次的数已经超过一半,一定会出现在中位数上。#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>原创 2017-08-31 11:03:48 · 164 阅读 · 0 评论 -
HDU - 1003 Max Sum(连续子序列最大和)
题目大意:给一组数,求最大连续子序列和。 解题思路:UVA - 507 Jill Rides Again(连续子序列最大和) #include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>#include<queue>#define max(原创 2017-09-04 11:30:38 · 322 阅读 · 0 评论 -
HDU - 2859 Phalanx
题目大意:给出一个字母矩阵,求最大的对称子矩阵的大小,对称轴左下到右上。 解题思路:枚举每个字母,判断上和右的字母是否相同,while 直到不同跳出。 dp 表示当前字母为子矩阵左下角时,对称矩阵的大小。#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#incl原创 2017-09-04 11:14:38 · 197 阅读 · 0 评论 -
HDU - 1495 非常可乐(BFS)
题目大意:中文题。一开始以为一定要两个杯子相同,后来发现瓶子也是可以当杯子用的,只要均分就行……天真了 解题思路:六个入口 BFS,没什么难的,复制的时候漏改了调了好久才发现#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>#inc原创 2017-08-09 14:31:02 · 226 阅读 · 0 评论 -
HDU - 1213 How Many Tables
题目大意:T 个样例,每个样例输入 N 个人 M 个信息,信息有两个整数表示 A B 认识,A B 认识,B C 认识就当作 A C 认识,可以把 A B C 安排在一桌,问需要几张桌子。 解题思路:并查集,没什么特别的#include <iostream>#include <algorithm>using namespace std;int fa[1010];int gf(int x)原创 2016-12-11 18:48:43 · 231 阅读 · 0 评论 -
HDU - 1863 畅通工程
解题思路:并查集。根据造价排序,价格少的优先,如果不在同一个集合就合并,加上价格。最后判断有几个集合,若大于 1 个就说明所给方案不能连接所有村庄,输出 ?#include <iostream>#include <algorithm>using namespace std;struct node { int a, b, v;};node p[1010];int fa[1010];原创 2016-12-11 13:46:33 · 211 阅读 · 0 评论 -
HDU - 2099 整除的尾数
注意一下输出,当答案小于 10 的时候前面要添 0。 INPUT 2 9 0 0 OUTPUT 08 17 26 35 44 53 62 71 80 89 98#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib.h>#include<algorithm>us原创 2016-08-21 23:20:46 · 255 阅读 · 0 评论 -
HDU - 5319 Painter
题目大意:给出一个表格,两个颜色的刷子,可以沿‘\’画,或沿‘/’画,前者红色,后者蓝色,相交绿色。‘.’表示没画。给出画后的表格,问至少画几下。解题思路:每遇到一个颜色,就查找右下或左下是否可以一笔划过去,若不行则说明到该格就停笔,笔画数 +1。注意给的 n 是行数,列数要自己求,而且第一行和第一列不能存。#include<iostream>#include<cstdio>#include<c原创 2016-07-23 19:17:25 · 290 阅读 · 0 评论 -
HDU - 1021 Fibonacci Again
题目大意: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2),问 F(n) (n < 1,000,000) 是否能被 3 整除。解题思路:递推,要减小数据量否测会爆。找规律也行。以后数学题不会可以试试找规律 QwQ#include<iostream>#include<cstdio>using namespace std;int F[1000原创 2016-07-18 08:59:54 · 234 阅读 · 0 评论 -
HDU - 4730 We Love MOE Girls
题目大意:结尾有 desu 的替换为 nanodesu,没有的直接在末尾加上 nanodesu解题思路:检测覆盖#include<iostream> #include<cstdio>#include<string.h>#include<stdlib.h>#include<cmath>using namespace std;int cnt = 0;char str[1000];char原创 2016-07-18 08:41:10 · 265 阅读 · 0 评论 -
HDU - 1078 FatMouse and Cheese(记忆化搜索)
题目大意:n*n 棋盘,老鼠从(0,0)出发,可以上下左右移动吃奶酪,每次最多 k 步,且需要保证下一格奶酪比本格多,问最多能吃到多少。 解题思路:dp + 搜索 dp[][] = max(所有可以从当前点走到的点的dfs的结果集) 记得加上当前格子的值#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath原创 2017-09-04 10:34:52 · 184 阅读 · 0 评论 -
HDU - 1217 Arbitrage(floyd)
题目大意:n 种钱币间进行各种汇率交换,如果能赚就 Yes,否则 No 解题思路:国家为点,汇率为边建图,用 floyd 处理,最终自己到自己的权值大于 1 说明有一个环能赚#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<cmath>#include<string.h>#i原创 2017-09-22 16:21:45 · 231 阅读 · 0 评论