
HDU
文章平均质量分 64
陈年风褛
这个作者很懒,什么都没留下…
展开
-
HDU 6235 Permutation 思维
题意是说给出一个数字n,然后将1到n这些所有数字排列成一个数组,要求这个数组中对于i>3的数字满足pi≡0(mod|pi−pi−2|)这个式子,其实就是满足对于所有的pi,都满足pi%(|pi−pi−2|)=0就可以了。 这里其实直接分开去处理这两部分数就可以了,然后把这两组数岔开放,也就是说吧这个数组变成隔一个数之间的差的是1的一个数组,这样的话每次mod的数字都是1,得到的...原创 2018-04-08 14:51:05 · 433 阅读 · 0 评论 -
HDU 6092 Rikka with Subset 贪心
题意是说有一个a数组,将a数组的所有子集的和计算出来,然后得出这些和的值分别有多少个,比如有1个0(空集的和为0)就赋值b[0]为1,以此类推得到b数组,现在,给出b数组的值要求求出a数组。 因为a数组都是正数,所以不用考虑a为0的情况,这样直接从1开始往后一个数一个数的找出来就可以了,如果找到的这个数在b数组中不为0,那么说明a数组中一定有这个数,所以将这个数在b数组中减去(就相当于减原创 2017-08-09 16:15:28 · 225 阅读 · 0 评论 -
HDU 6063 RXD and math 打表找规律 快速幂
题意没什么多说的,就是一个公式,计算这个公式的结果。 按照这个公式先来打个表处理一下看能得到一个怎样的结果,会发现:#include#include#include#include#includeusing namespace std;const long long mod=1000000007;long long vis[100005];long l原创 2017-08-01 19:40:59 · 311 阅读 · 0 评论 -
HDU 6040 Hints of sd0061 找第K大数 (nth_element函数)
题意是说sd0061给学生出题,准备了一些提示,这些提示的方法是在第j场比赛的时候,把提示给排名为第b_j+1的学生。学生初始的排名为a_i,a_i的计算方法通过题目给的函数来算出来。unsigned rng61(){ unsigned x = A, y = B, z = C; unsigned t; x ^= x << 16; x ^= x >> 5;原创 2017-08-01 16:41:40 · 295 阅读 · 0 评论 -
HDU 6082 度度熊与邪恶大魔王 DP
度度熊与邪恶大魔王Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来。邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力。度度熊一共拥原创 2017-08-07 20:35:12 · 772 阅读 · 0 评论 -
HDU 1556 Color the ball 线段树or树状数组
题意很清晰,就是对区间进行更新然后查找,可以用线段树也可以用树状数组来处理。 线段树做法:#include#include#include#includeusing namespace std;int n,m;struct node{ int l; int r; long long sum; long long mark;}s[3000原创 2017-05-05 13:33:00 · 890 阅读 · 0 评论 -
[转]HDU 2433 Travel 最短路 预处理优化
原文地址:http://http://blog.youkuaiyun.com/linraise/article/details/42155947 题意是说算出一个图所有点到其他点的最短路的和,然后进行删除某条边再进行处理,对SPFA本来也不是很熟,改来改去始终没能A掉,所以转载一篇,参考代码= = 思路:个人认为这道题的描述有问题,但是不在意这些细节了。题目的大致意思是:给定一转载 2017-04-15 21:38:02 · 349 阅读 · 0 评论 -
HDU 5974 A Simple Math Problem 数论 gcd
今天做山科的题,结果这套题是大连区域赛的题...又想起了当年的黑历史,好吧。这道题当时打现场赛的时候倒是也A了,不过当时我是先跑的暴力TLE了一遍,然后队友剪了剪枝过的。现在想想看来数据出的还是不够卡时间,当年的债终究还是要换的。现在过去半年,我也知道有公式了,虽然也是推了好长时间才推出来= = 好吧,下面说正题。题意就是说已知x+y=a,lcm(x,y)=b。给出你a和b的值,问能不能原创 2017-05-01 20:58:57 · 910 阅读 · 0 评论 -
HDU 5742 It's All In The Mind 贪心
题目求a1+a2/a1+a2+..+an的最大值,其中a数组最大的数为100,这个数组为非递增数组,然后给你这个数组中的部分值。 为了求这个分数最大,肯定是要让a1+a2尽量大,然后下面的尽量小,所以如果a1,a2没给出值,就直接定为100,后面的值就以给的数为界赋值,越小越好,不断贪心赋值。最后得到的结果因为是一个分数,所以还要注意化成最简的形式。 下面AC代码:#inc原创 2017-04-14 15:44:18 · 440 阅读 · 0 评论 -
HDU 3349 lazy gege 计算几何
一开始在看题的时候看着几个图形摆哪就觉得肯定很麻烦,决定放在后面看,结果发现有人A了,再一看原来是个水题...... 好吧,进入正题,题意是说在一个正方形的桌子上放一个矩形的本子,问最少占用空间为多少。为了让本子不掉下去,所以必须要把本子的重心放在桌子上,这样的话简单观察就会发现,总共可以分出三种情况,当桌子角在本子重心上时,如果本子的一边没有压过桌子对角线,则计算压过的三角形面积。当本原创 2017-03-16 19:40:59 · 388 阅读 · 0 评论 -
HDU 3348 coins 贪心 最少/最多硬币问题
题意是说现在给你一定数目的1角,5角,1元,5元和10元硬币,要买一个P角的东西(注意单位是毛......一开始没仔细看直接当成元算的),问最少和最多分别用多少硬币能买到,如果凑不出正好的钱,则输出“-1 -1”。 最少多少硬币比较好处理一些,直接用贪心的算法,从面值最大的硬币开始向下一个个遍历就可以了,因为为了花费最少则一定要把能花的最大面值硬币花了。如果遍历后发现没办法凑齐,则输出“原创 2017-03-16 19:26:51 · 1512 阅读 · 0 评论 -
HDU 3347 Calculate the expression 模拟 map
题意很好理解,给出n行式子,分别给各种未知量赋值,最后一行一个式子进行输出,就像是解一个方程组。因为不确定是变量还是确切的数字,所以输入的时候必须要用字符数组的方式来输入,然后再判断为数字还是变量。在给变量赋值的时候直接利用map存就可以了,这样最后式子引用的时候比较方便一些,另外还要注意的是正负数的问题,数字以及变量都有可能是负的,这样就需要分类讨论,其余的只要一步一步模拟就没什么问题了。原创 2017-03-16 19:04:04 · 462 阅读 · 0 评论 -
HDU 3037 Saving Beans 组合数取模 Lucas定理
唔,果然太久没写博客,都有点手生了,格式什么的怎么排来着...... 好吧,寒假来了,继续重新开始一波刷题,继续把博客复活~ 这道题的题意就是给你三个数,n,m,p,n是树的个数,m是最多拿的果子原创 2017-01-19 11:07:30 · 343 阅读 · 0 评论 -
HDU 6058 Kanade's sum 链表+枚举
题意是说给出n个数,这n个数为[1,n]打乱顺序放入,求出这些数构成的所有区间的第k大数的和。 要直接去做肯定不行,原创 2017-08-02 20:51:27 · 240 阅读 · 0 评论 -
HDU 6043 KazaQ's Socks 找规律
题意是说KazaQ有n双袜子,标号1到n放在柜子里,每天早上起床穿袜子选标号最小的一双。然后晚上回来将穿过的扔到篮子里。当篮子里的袜子数量为n-1的时候,就把这些袜子洗一下,第二天晚上再放回柜子里。问KazaQ在第K天穿的是哪一个标号的袜子。 简单排一下就会发现这个题有一个简单的规律,前n天肯定都是按标号穿,然后后面几天因为穿第n双袜子的时候,所以穿1到n-1号,之后n号袜子在洗所以穿1原创 2017-07-25 18:56:55 · 619 阅读 · 0 评论 -
HDU 5983 Pocket Cube 模拟
Pocket CubeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Problem DescriptionThe Pocket Cube, also known as the Mini Cube or the Ice Cube, is the 2 × 2 ×原创 2017-10-16 20:10:12 · 293 阅读 · 0 评论 -
HDU 5992 Finding Hotels KDtree
题意是说有T组样例输入,然后输入N和M,N是旅馆的个数,M是游客的个数。假设旅馆中来多少人都能住开,接下来N行分别是旅馆的位置x,y和旅馆的价格c,然后M行分别是这些人现在的位置和他们所带的钱。要求输出离每个人最近且这个人能付起这个旅馆房费的旅馆(只要付得起就行,不用考虑价格高低)。如果有很多旅馆同时满足要求,就输出样例中先输入进去的那一个旅馆。 这个题几乎是KD树的一个模板题,只是多加原创 2017-10-18 22:09:13 · 343 阅读 · 0 评论 -
HDU 6130 Kolakoski 打表
题意是说有一个数组,1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1……,如果将这个数组相同的数字合并成一个数就会变成1,22,11,2,1,22,1,22,11,2,11,22,1……,然后再来看这个新数组每一个数字的位数,最后发现构成的数组就是一开始的数组1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1……,现在要求出这个数组第n个数原创 2017-08-15 19:31:58 · 413 阅读 · 0 评论 -
HDU 6154 CaoHaha's staff 找规律
题意简单来说就是要在一个格点图中画多边形,每一笔的画法只有贴着边画或者对角线画,也就是原创 2017-08-22 10:17:57 · 448 阅读 · 3 评论 -
HDU 6055 Regular polygon 暴力枚举
题意很好理解,是说给出n个点,问这n个点能构成几个正多边形。 因为给出的点都是整数点,所以就相当于这个正多边形必须是一个格点多边形,而能组成格点正多边形的只有正方形,所以只要找出能构成的所有正方形就可以了。先将所有有的点标记,然后两个两个点连线构成正方形,去找另外两个点是否存在。因为正方形4条边都会跑一遍,所以最后的结果要除以4才是最终结果。 注意标记点我用的数组,但可能出现负原创 2017-07-28 17:30:34 · 321 阅读 · 0 评论 -
HDU 6045 Is Derek lying? 水题
题意是说给出Derek和Alfia俩个人的成绩,以及他们选择题是怎么选择的答案。问这个成绩是否合理,合理的话说明Derek说了真话,输出"Not lying",否则就说明Derek说了谎,输出"Lying"。 先去找出他们二人选择都有哪些选项是相同的,然后他们两个的成绩的差肯定是小于等于他们所选择的不同的选项的。而他们两个成绩的和则肯定要小于等于他们相同的选项加上总共的选项个数。(相当于原创 2017-07-28 14:31:58 · 274 阅读 · 0 评论 -
HDU 6047 Maximum Sequence 数论 贪心
题意是说有两个数组,a和b,然后让你扩展a数组后面的n位,扩展的方法是先在b数组中随意挑出一个数(这个数只能挑一次),之后ai≤max{aj-j│bk≤j 为了让a数组后面和最大,这里肯定不能小于max,选的一定是这个区间内最大的一个数,先把aj-j都处理出来,然后再去赋值。在挑选b的时候,因为越往后越是减出来的数字,所以为了保证得到最大的,b数组必须从最小的一个数开始拿起,这样在处理的原创 2017-07-28 09:39:08 · 274 阅读 · 0 评论 -
HDU 6070 Dirt Ratio 二分+线段树
题意是说给出一组数,在这一组数中找一个区间,使这个区间内AC题数/提交数的值最小。(假设每个区间内最后一次提交都是AC的) 因为保证每个区间都是有题AC的,所以这里可以直接简化为区间内题目种数/区间长度,但在如何更快的处理题目种数的时候一直没能找到合适的处理办法,看了好多博客才能明白这个整体的思路= =(感觉让我自己想怎么都想不出要二分答案....) 首先假设答案为k,区间的题原创 2017-08-05 10:26:35 · 325 阅读 · 0 评论 -
HDU 6033 Add More Zero 数论 水题
题意是说计算机处理数据的能力为2^m-1,而一个人的能力为10^k,给出计算机的m值,要求出这个人的能力相应的k值。简单而言就是去求2^m-1=10^k。 因为已经知道2^m一定是一个偶数,所以-1可以省略不急,因为-1不会影响这个数的位数关系,这样式子就化成了2^m=10^k,再一化简得到k=m*log10(2),列出式子处理一下就可以得到结果了。 下面AC代码:#inc原创 2017-07-28 10:05:26 · 292 阅读 · 0 评论 -
HDU 6038 Function 找循环节
这题比赛的时候题意就看了半天,看到最后看懂了,感觉是找循环但是不知道怎么处理,也没再做。比完赛对着标程看才明白这题的做法。 题意是说有两个数组a,b,他们之间符合函数关系f(i)=bf(ai)原创 2017-07-27 00:15:39 · 386 阅读 · 0 评论 -
HDU 6075 Questionnaire 水题 判奇偶
题意是说给出n个数,然后求出合适的m和k,使得这些数mod m之后的数等于k的个数比不等于k的个数要多。题目样例给的是5 3,但其实不用担心样例,因为题目说的是any of them,只需输出合适的一组就可以了。所以简单去想,一个数肯定不是奇数就是偶数,这样只要求出来奇数的个数和偶数的个数就够了,然后奇数多就输出2 1,偶数多就输出2 0。 下面AC代码:#include#incl原创 2017-08-03 18:30:56 · 256 阅读 · 0 评论 -
HDU 6077 Time To Get Up 模拟
题意是说一个LED灯输出时间,将这个 LED灯显示的时间输出出来就可以了。就是一个简单的模拟,也没什么好多说的。 下面AC代码:#include#include#include#includeusing namespace std;char s[105][105];int fin(int a){ if(s[0][a+1]=='.') {原创 2017-08-03 18:32:14 · 351 阅读 · 0 评论 -
HDU 1007 Quoit Design 仅仅只是枚举了x排序后的三个数......
听师哥说这题数据比较水,所以把横坐标排序排出来之后,再把附近的三个点距离枚举一下就能在HDU上AC......所以,既然这样快就先这样写上喽╮(╯_╰)╭ (表示算距离的函数一开始命名为distance了结果一直报错,原来这个名字是已经有了的啊......改了半天才发现= =) 下面是这个偷懒的方法做出来的AC代码......#include#include原创 2016-08-12 22:31:05 · 475 阅读 · 0 评论 -
HDU 1004 Let the Balloon Rise
给了一堆颜色,然后找出这一堆颜色中哪一个颜色出现的次数最多,输出这个颜色。我用map存入的各种颜色然后比较出一个最大的,再输出存的这个颜色就好了.....然而不知为何WA了= =暂时没找到错误在哪......先贴出来,以后再翻出来改= = 以下是WA的代码= =#include#include#include#include#includeusing namespa原创 2016-08-10 17:15:00 · 511 阅读 · 0 评论 -
HDU 1029 Ignatius and the Princess IV 水题排序
这一系列名字终于做到最后一个了,本以为最后压轴会是一道难题,好吧,读完题发现只是一道水题而已......题意是说给一排数字,求出其中最多的数字是哪一个,而且这一排数字个数是奇数,那个最多的数比这一排数的个数的一半还多......读到这基本也明白了= =既然是比一半还多还是奇数,把所有数一排,中位数就是要求的这个数了......一个sort就这样水过了~#include#include#in原创 2016-09-03 20:02:00 · 239 阅读 · 0 评论 -
HDU 1019 Least Common Multiple GCD水题
求一排数的最小公倍数,额,题目就这么长,思路......也没什么好说的,两个数的最小公倍数就是这两个数的乘积除以这两个数的最大公约数,而最大公约数直接GCD就行了,GCD这个简单的算法也没什么好说的,直接放代码了。#include#include#include#includeusing namespace std;long long a[10005];int gcd(i原创 2016-08-17 22:50:38 · 328 阅读 · 0 评论 -
HDU 1018 Big Number 公式= =
输入一个数,求这个数的阶乘有几位。 恩,题目就是这么短,然而我想了半天没想出来= =这么高精度的一个数还要选位数。要是用字符串又不好算,于是......在想了N长时间后我又去翻DISCUSS了,好吧,是能推出来公式的啊,写了那么久编程代码都快把数学的东西忘掉了= = 所以我就这样看懂了DISCUSS里的公式,然后把题A出来了(好像哪里不对......),额,发个链接吧,大神讲的原创 2016-08-17 22:37:04 · 252 阅读 · 0 评论 -
HDU 1017 A Mathematical Curiosity 水题直接暴力
一道水题,主要是注意下格式这题就没什么问题了,直接暴力就能过= =先输入有几组数据,然后再输入一个空行(这个人工输入就行了,代码可以无视掉),然后输入两个数m和n,问满足(a^2+b^2 +m)/(ab)是整数的有几种情况(0 下面AC代码:#include#include#include#includeusing namespace std;int n,m;i原创 2016-08-17 22:31:54 · 386 阅读 · 0 评论 -
HDU 1016 Prime Ring Problem DFS
以1为开头建立一个素数环,要求环相邻的两位加起来是一个素数,输入一个数字,将1到这个数字的所有数字放在一起构成一个素数环,打表打出所有情况。 好吧,一排数字,然后还要打表,明显遍历然后就是写个DFS= =1015刚写完一个DFS,连着写俩感觉还真是不太想写了......好吧,还是写的不熟练,写一个DFS得写很长时间才能写出来(所以才不想写啊= =),不过该写的还是要写的......原创 2016-08-17 21:25:43 · 554 阅读 · 0 评论 -
HDU 1015 Safecracker DFS
题目是说给出一个数字,然后再给出一行字母,其中字母按字母表的顺序代表相应的数字(A=1, B=2, ..., Z=26),问如何在这一行字母中筛选出5个字母,使得满足等式v - w^2 + x^3 - y^4 + z^5 = target(target就是你输入的数字),组合按字典序大的在前进行排列。既然是要筛选出合理的情况,那就是要从大到小遍历一遍,直接DFS就能过,也没什么特殊的剪枝,注意下在原创 2016-08-17 12:49:32 · 362 阅读 · 0 评论 -
HDU 3823 Prime Friend 线性筛选素数
晚上集训队做的一道题,给出两个数A、B,然后求出这两个数的最小素数朋友= =额,姑且这样叫吧。素数朋友就是说一个数和已知的数相加之后得到的是一个素数,这个数就叫素数朋友,并且要求素数朋友加出来的两个素数之间没有别的素数了,求出A、B的最小素数朋友。 看完题我也就有了思路了,首先把素数打表打出来,然后拿这两个数A、B从第一个素数组开始向后比较,直到能得出一个素数朋友,就是要求的最小的那个值原创 2016-08-16 21:13:00 · 602 阅读 · 0 评论 -
HDU 1012 u Calculate e 水题
给了一个数学公式,然后没有输入,输出一个表把从1到9的结果输出出来就行了= =明显是一个水题,把数学公式写出来就好了,然后前3个数都不是无限小数,所以输出一开始先把这三个输出出来,其余的一直到9都是保留9位小数输出就可以了,额,也没什么好说的,直接放代码了。#include#include#include#include#includeusing namespace std;原创 2016-08-15 21:38:44 · 227 阅读 · 0 评论 -
HDU 1013 Digital Roots 大数水题
题意是说给你一个数,把这个数的所有位上的数字加起来(个位+十位+......),如果加起来大于10就继续拆分开加,一直加到小于10,输出这个数。感觉好像小时候玩的游戏= =,好吧,说正题,一道水题,不过还没简单到int直接过,这属于一个大数处理的问题,还是要用字符串读入,然后拆开一位一位加。 没什么好说的= =下面代码#include#include#include#in原创 2016-08-16 17:30:31 · 277 阅读 · 0 评论 -
HDU 1014 Uniform Generator GCD水题
题目很长,说是有一个计算随机数的公式函数,然后让你输入step和mod,问你输入的这两个数能否让随机数函数中出现0到mod-1中的所有数,如果可以,输出Good Choice,否则输出Bad。看似很复杂,但是读明白了就会发现,就是一道水题= =step和mod之间是%的关系,函数是递加的,所以只要step和mod的最大公约数是1,就是合适的选择。因为如果不是1的话,就会有一些情况无论循环几次都得不原创 2016-08-16 18:19:26 · 424 阅读 · 0 评论 -
HDU 1011 Starship Troopers 树形背包
题意:输入房间的个数n和现在拥有的人个数m,已知1个人能解决20个bug,下面n行输入房间中的bug数量和能获得的brain数量,就算bug不足20个也必须留一个人,后面n-1行输入房间连通的路径,只有解决了前面房间的bug才能进入下一个房间,求最多能获得的brain数量。 一道背包题目,不断更新数据打出表来,最后输出最大的结果就好,比较特殊的是这个题取东西的顺序是有限制的,所以需要先建原创 2016-08-15 17:15:55 · 273 阅读 · 0 评论