
HDU-ACM
HDU刷题集
拒绝摆烂
这个作者很懒,什么都没留下…
展开
-
ACM-HDU-1007
ACM-HDU-1007题意大概:求n个点中最近两个点的距离的一半思路:用结构体来存x,y值,对结构体的x或y进行排序,从头到尾判断是否有x,y个相等的两个点,有就输出0.00否则就用分治思想的函数:先按x坐标将进行排序,排好序的(x,y)点,分成两部分(左右),基点定为node[mid],mid=(l+r)/2,递归的分下去直到某一部分(左或右)只剩下2个或者3个点(可以直接算出距离比较得出min),最后min只会在3种情况中出现:①.min在右半部分,②,min在左半部分,③.min是跨越左右原创 2021-03-10 09:24:35 · 402 阅读 · 1 评论 -
ACM-HDU-1010 WA and TLE
ACM-HDU-1010 WA and TLE思路:这道题很多小伙伴拿着就去BFS了,但是它并不是求最短路径,用DFS的小伙伴也有TLE的还有WA的(例如我),想懂了之后其实就是DFS+奇偶剪枝(代码上注释了的)+在时间范围内判断能否到达终点,如果在规定时间恰到终点就一直退出递归(用标记量),而WA的小伙伴就是测试数据的问题,查了很久,发现很多人都说有空格的问题,果断换成cin就没事儿了.需要知识:在一个矩阵中每次走一步,那么minlength=abs(startx-endx)+abs(starty-e原创 2021-03-08 16:33:24 · 274 阅读 · 0 评论 -
ACM-HDU-1005 WA
ACM-HDU-1006思路:因为n<=100000000,所以无论用单纯的递归,还是dp(可能是我的代码太菜了…),都不行,这道题需要知道:f[x]只能取0~6的值,但是f[x]是由f[x-1]与f[x-2]与A,B决定的,所以组合的方式就7*7=49种,用鸽巢定理(m+1个苹果放m个抽屉,必然要有一个抽屉至少是2个苹果),也就是无论如何到f[50]的时候f[48]与f[49]必然是出现过得f[x-1]与f[x-2],后面自然是循环的过程,所以需要找到循环节,答案自然而然就出来了.代码:#in原创 2021-03-07 11:19:27 · 283 阅读 · 0 评论 -
ACM-HDU-1004
ACM-HDU-1004思路:①将字符串进行排序,相同必相邻,再从头到尾位计数便可.②.用map容器,建立STL的map<string,int>的容器,利用迭代器遍历,按照second取值判断最多颜色数量.③.可以用字典树,用二维数组模拟字典树,然后依次插入单词,同时对每个字母进行统计,再最后在遍历一次n个字符串,找出最多的字符串.(字典树更适合找前缀的操作,以空间换时间,此题并不如上两种方法,很久没用字典树有点忘了,代码就用的字典树方法)代码:#include <bits/s原创 2021-03-07 11:08:58 · 247 阅读 · 0 评论 -
ACM-HDU-1003
ACM-HDU-1003思路:以数组形式存储数据,通过动态规划的思想,状态转移方程A[x]=max(A[x],A[x]+A[x-1]),其中A[x]代表从第1个数到第n个数的连续最大和,再用一个MAx来存连续最大和值,MAX更新时,l,r要进行更新(也要记录A[x]的连续和的l,r以便于后面更新)。代码:#include <iostream>#include <algorithm>using namespace std;int main(){ int n,m,原创 2021-03-06 13:12:40 · 191 阅读 · 0 评论 -
ACM-HDU-1001 WA
HDU-1001错因:虽然总和在32位有符号数的范围内,很多同学用等差数列求和公式:但是(a1+an)*n可能会超过超过2^31-1所以要先让a1 or an先除以2代码:#include <iostream>using namespace std;int main(){ int a,k; while(cin >> a){ if(a%2==0){ k=a/2; k*=(a+1);原创 2021-03-06 10:54:15 · 128 阅读 · 0 评论 -
ACM-HDU-1002 WA
HDU-1002题目题目思路:数字位数在1000以内,自然肯定不能用int 以及long long ,用字符串数组或者string来存储数字,然后再利用高精度加法(也就是相当于自己模拟加法的过程,从个位开始往高位运算,超过10就进1位),然后再利用c++的reverse函数将string反向,再输出.先后错因:对于输入n后需要吸收换行符两个答案之间要输出两个换行符,最后一个答案只需要输出一个换行符即可.对于有前导0的数字要去除前导0(可用迭代器)在对两个数字的最高位进行相加时可能会进一位,如果原创 2021-03-06 10:36:58 · 131 阅读 · 0 评论