HDU
moomhxy
你若是天才,我便是疯子
展开
-
HDU - 4417 Super Mario 主席树
题目链接:https://vjudge.net/problem/HDU-4417#author=0题意:多次询问区间小于等于k的数目。思路:考虑用主席树,离散化要记得将k的值也添入,其余就是主席树常规操作了。#include<bits/stdc++.h>using namespace std;typedef long long ll;#define fi first#define se second#define ls rt << 1#define rs rt原创 2020-06-29 20:59:56 · 218 阅读 · 0 评论 -
HDU 5890-Eighty seven【背包 bitset优化】
题意:给你n(n<50)张牌, 让后q(100000)次询问,每次会抽调三张牌,然后问你剩下的牌数能否拼成87.思路:这题可以用背包来做,预处理出所有情况下的答案,但是会超时,这时候我们就需要bitset来优化一下了。bitset相当于一个bool类型的数组,每次用上一次的值左移a[i] 位然后或上当前值,最后判断一下第87位是否为1就行了。#include<bits/s...原创 2019-10-22 17:03:48 · 295 阅读 · 0 评论 -
HDU 3853-LOOPS【期望DP】
题意:有一个R*C的迷宫,从(1,1)走到(R,C),每个格子给出停留在原地,向右走一格和向下走一格的概率,且每走一步需要2点能量,求最后所需要的能量期望。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853思路:f[i][j] 就表示走到(i, j) 这个点的期望能量,那么转移方程不难想到,这题主要有两个需要注意的地方,一是停留在原地的花...原创 2019-10-15 17:16:31 · 352 阅读 · 0 评论 -
HDU 4405-Aeroplane chess【期望DP】
题意:0到n的格子,每次仍色子走1到6步,也可能会有飞行棋,直接跳到某格,问你走到n的期望步数。思路:期望倒着推,f[i] 就表示走到i格子的期望。正着考虑的话你不知道当前位置是哪个地方来的,可能是之前六个位置的,也可能是之前某个飞行棋跳过来的,所以我们倒着考虑,每个位置只会去往六个地方。所以f[i] = sum( f[i + k] / 6 ) + 1 , 1 <= k <= 6...原创 2019-10-15 14:22:21 · 200 阅读 · 0 评论 -
HDU1698-Just a Hook 【线段树】
In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive metallic sticks which are of the same length.Now Pud...原创 2019-04-28 21:43:48 · 208 阅读 · 0 评论 -
HDU6188-Duizi and Shunzi【贪心】
Nike likes playing cards and makes a problem of it.Now give you n integers,ai(1≤i≤n)ai(1≤i≤n)We define two identical numbers (eg:2,22,2) a Duizi,and three consecutive positive integers (eg:2,...原创 2019-05-28 22:23:28 · 166 阅读 · 0 评论 -
HDU6186-CS Course 【前缀后缀】
Little A has come to college and majored in Computer and Science.Today he has learned bit-operations in Algorithm Lessons, and he got a problem as homework.Here is the problem:You are giving n n...原创 2019-05-28 22:27:38 · 200 阅读 · 0 评论 -
HDU3193-Find the hotel【RMQ】
Summer again! Flynn is ready for another tour around. Since the tour would take three or more days, it is important to find a hotel that meets for a reasonable price and gets as near as possible!...原创 2019-06-06 14:41:12 · 202 阅读 · 0 评论 -
HDU5135-Little Zu Chongzhi's Triangles【状压DP】
Little Zu Chongzhi's TrianglesProblem DescriptionZu Chongzhi (429–500) was a prominent Chinese mathematician and astronomer during the Liu Song and Southern Qi Dynasties. Z...原创 2019-06-10 15:33:49 · 295 阅读 · 0 评论 -
HDU 5256-序列变换【线性DP】
我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增。其中无论是修改前还是修改后,每个元素都必须是整数。请输出最少需要修改多少个元素。Input第一行输入一个T(1≤T≤10),表示有多少组数据每一组数据:第一行输入一个N(1≤N≤105),表示数列的长度第二行输入N个数A1,A2,...,An。每一个数列中的元素都是正整数而且不超过1...原创 2019-07-15 15:58:02 · 174 阅读 · 0 评论 -
HDU 6546-Function 【贪心 + 思维】
思路:将x+1后函数的差值放入优先队列,每次的话就贪心选最小的,然后再更新差值放入队列中维护。#include<set>#include<map>#include<cmath>#include<queue>#include<stack>#include<cstdio>#include<vector&...原创 2019-07-15 22:08:42 · 252 阅读 · 0 评论 -
HDU 6551 Clock【枚举】
wls有一个钟表,当前钟表指向了某一个时间。又有一些很重要的时刻,wls想要在钟表上复现这些时间(并不需要依次复现)。我们可以顺时针转动秒针,也可以逆时针转动秒针,分针和时针都会随着秒针按规则转动,wls想知道秒针至少转动多少角度可以使每个时刻至少都会被访问一次。注意,时钟上的一种时针分针秒针的组合,可以代表两个不同的时间。Input第一行一个整数n代表有多少个时刻要访...原创 2019-07-16 12:33:55 · 478 阅读 · 0 评论 -
HDU6185-Covering【矩阵快速幂】
Bob's school has a big playground, boys and girls always play games here after school.To protect boys and girls from getting hurt when playing happily on the playground, rich boy Bob decided to cove...原创 2019-05-28 22:17:19 · 186 阅读 · 0 评论 -
HDU4825-Xor Sum【01字典树】
Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeus 发起M次询问,每次询问中包含一个正整数 S ,之后 Zeus 需要在集合当中找出一个正整数 K ,使得 K 与 S 的异或结果最大。Prometheus 为了让 Zeus 看到人类的伟大,随即同意 Zeus 可以向人类求助。你能证明人类...原创 2019-05-22 23:56:17 · 140 阅读 · 1 评论 -
HDU6191-Query on A Tree【01字典树】
Monkey A lives on a tree, he always plays on this tree.One day, monkey A learned about one of the bit-operations, xor. He was keen of this interesting operation and wanted to practise it at once.Mon...原创 2019-05-22 20:08:06 · 262 阅读 · 0 评论 -
HDU2181-哈密顿绕行世界问题【搜索】
一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。Input前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第20行以后每行有1个数m,m<=20,m>=1.m=0退出.Output输出从第m个城市出发经过每个城市1次又回到m的所有路线,如有多条路线,按字典序输出,每行1条路线.每行首先...原创 2019-04-30 21:13:22 · 151 阅读 · 0 评论 -
HDU1213-How Many Tables 【并查集】
今天是HJ的生日,他邀请了许多朋友。现在是吃晚饭的时间,HJ想知道他至少需要准备多少桌。必须注意的是,并非所有的朋友都相互认识对方,有的人不愿意和陌生人坐在一桌。针对此问题的一个重要的规则是,如果我告诉你A知道B,B知道C,这意味着,A和C认识对方,这样他们就可以留在一个桌子。但是如果我告诉你,A知道B,B知道C,D知道E,那么ABC可以坐在一起,DE就得另外再坐一桌了。你的任务是请根据输入的朋友...原创 2019-04-30 21:15:27 · 179 阅读 · 0 评论 -
HDU2196-Computer【树形DP】
一所学校不久前买了第一台电脑(所以这台电脑的ID是1)。近年来,学校购买了N-1新电脑。每台新电脑都连接到一台先前安装的电脑上。学校的管理人员担心网络运行缓慢,希望知道第i台计算机需要发送信号的最大距离si(即到最远计算机的电缆长度)。您需要提供此信息。提示:示例输入与此图对应。从图中,你可以看到计算机4离1最远,所以s1=3。计算机4和5是距离2最远的,所以s2=2。计算机5是离3最...原创 2019-04-30 21:18:51 · 507 阅读 · 2 评论 -
HDU 6249-Alice’s Stamps【线性DP】
Problem DescriptionAlice likes to collect stamps. She is now at the post office buying some new stamps.There areNdifferent kinds of stamps that exist in the world; they are numbered1throughN. ...原创 2019-05-18 23:16:50 · 256 阅读 · 0 评论 -
HDU1251-统计难题 【字典树】
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.注...原创 2019-05-19 15:21:18 · 204 阅读 · 0 评论 -
HDU6521-Party【吉司机线段树】
nperson have just entered a company, and Xiaoxun, as a supervisor, gives each of them a number from 1 to n that is not repeated.In order to let them to get to know each other better, they would hav...原创 2019-05-12 21:43:27 · 300 阅读 · 0 评论 -
HDU6253-Knightmare【打表、规律】
A knight jumps around an infinite chessboard. The chessboard is an unexplored territory. In the spirit of explorers, whoever stands on a square for the first time claims the ownership of this square. ...原创 2019-05-26 12:17:22 · 215 阅读 · 0 评论 -
HDU6245-Rich Game【博弈】
Problem DescriptionOne day, God Sheep would like to play badminton but he can’t find an opponent. So he request Mr. Panda to play with him. He said: “Each time I win one point, I’ll pay you $X$ doll...原创 2019-05-26 12:20:10 · 252 阅读 · 0 评论 -
HDU 2476-String painter【区间DP】
题意有两个字符串A和B,长度相等。 两个字符串都由小写字母组成。 现在你有一个强大的字符串画家。 在画家的帮助下,您可以将字符串中的一段字符更改为您想要的任何其他字符。 也就是说,在使用画家之后,片段仅由一种角色组成。 现在你的任务是使用字符串画家将A更改为B. 最低操作次数是多少?思路:如果直接考虑将一个字符串转换成另一个字符串会非常难处理,这时候考虑先将一个空串转换成B,然后再考虑这个...原创 2019-07-28 23:22:40 · 378 阅读 · 0 评论 -
HDU 6548-Checkout 题解
CheckoutProblem DescriptionAlice是一个身怀改变世界的抱负的著名企业家,手中掌控很多著名的公司,为了更好的管理,Alice建立了一套很完善的架构体系,已知Alice的企业的架构体系是一棵树,每个节点代表一个人。对于每个节点,它的父节点就是这个人的直接leader,每个节点都有一个权值,代表这个人的爱好,每对属于同一直接leader的节点如果...原创 2019-07-17 16:45:51 · 483 阅读 · 1 评论 -
HDU 6581-Vacation【二分答案和O(n) 做法】
Problem DescriptionTom and Jerry are going on a vacation. They are now driving on a one-way road and several cars are in front of them. To be more specific, there arencars in front of them. Theit...原创 2019-07-22 21:58:46 · 367 阅读 · 0 评论 -
HDU 6701 Make Rounddog Happy【ST表+分治】
题意:给你n个数组成的序列和一个数字k,问你有多少个区间满足该区间的最大值-区间长度 <= k,且区间无重复元素。思路:对于某个区间的最大值,我们可以用ST表O(1)求,我们还需要处理每个元素往左往右最大能扩展的区间,也就是区间元素都不重复,可以O(n)预处理。我们接着考虑进行分治求解,以最大值为分割点,分成两个区间,枚举小区间中的元素作为端点时的合法区间,如果存在就加上答案。...原创 2019-09-09 13:10:23 · 206 阅读 · 0 评论 -
HDU 6687 Rikka with Stable Marriage【01字典树】
题意:给你两个数组,让两个数组间元素两两异或,当然你可以决定谁跟谁异或,要求异或后的和最大。思路:上次有道题是最小,这次是最大,稍微改了一下就行了,之前那道题:HDU 6625#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5 + 10;vector...原创 2019-09-09 14:50:36 · 185 阅读 · 0 评论 -
HDU 2795 Billboard【线段树】
每年开学,正是各大社团招新之际。每个社团为了吸引更多的小学妹小学弟就会派出身强体壮的华师男去海报墙上粘贴海报。开学之初,高为h,宽为w的海报墙还是空的。然后,华师男轮流粘贴高为1,宽为wi的海报。贴海报时,机智的华师男总是会优先选择最上面的位置来帖,而且在所有最上面的可能位置中,他会选择最左面的位置。但是不能把已经贴好的海报盖住并且不能超出海报墙的范围。机智的华师男能够自然能够...原创 2019-09-11 20:27:27 · 194 阅读 · 0 评论 -
HDU 5692 Snacks【线段树+DFS序】
百度科技园内有nn个零食机,零食机之间通过n−1n−1条路相互连通。每个零食机都有一个值vv,表示为小度熊提供零食的价值。由于零食被频繁的消耗和补充,零食机的价值vv会时常发生变化。小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一次。另外,小度熊会对某个零食机的零食有所偏爱,要求路线上必须有那个零食机。为小度熊规划一个路线,使得路线上的价值总和最大。Input输入数据第一行是...原创 2019-09-12 10:40:07 · 160 阅读 · 0 评论 -
HDU 6739-Invoker【线性DP】
InvokerTime Limit: 15000/12000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Problem Description在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技能:冰(Quas),雷(Wex),火(Exort),每施展一个技能就可以获得...原创 2019-09-29 10:56:01 · 776 阅读 · 0 评论 -
HDU 5573-Binary Tree【思维+二进制】
题意:给你一个满二叉树,对于每个结点u,左儿子结点时2u,右儿子是2u+1,给你一个n和k,问你选一条k个节点的路径,每个点你可以选择加上或者减去这个结点的编号值,要求最终答案是n。思路:我们考虑选择最左边的那条链,对于n是任意偶数而言,不难发现都可以构成。而对于n是奇数而言,我们在选择第k个时选择右儿子,最末尾的1就可以消掉转换成了偶数的情况。#include<bits/stdc...原创 2019-10-01 14:00:52 · 188 阅读 · 0 评论 -
HDU 5584- LCM Walk 【数论】
题意:给你一个x和y,z = lcm(x, y),每次x加上z或者y加上z,然后给你一个终点,问你最多能从几个点转移过来的。思路:对于给定的终点(x, y) , 我们可以知道一定是较大那个数加上了z,所以我们令y为较大那个数。设(x, y1) 是上次的点,g = gcd(x, y1), z = lcm(x, y1) = k*x , 那么y1 = k * gcd(x, y), gcd(x,...原创 2019-10-01 15:43:39 · 216 阅读 · 0 评论 -
HDU 3652-B-number【数位DP】
题意:让你求[1, n] 中包含子串“13” , 并且能够被13整除的数量。思路:dp[i][j][k][t] ,表示第i位前缀为j且模数为k时的答案,1表示包含串“13”,0表示不包含,剩下来就是模板套了。dp数组初始化一次就行了,状态不冲突可以利用之前记录的答案。#include<cstdio>#include<cstring>#include<io...原创 2019-10-07 22:10:33 · 179 阅读 · 0 评论 -
HDU 6685 Rikka with Coin【枚举】
问题描述Rikka讨厌硬币,而她以前从不带硬币。这些天,Rikka正在国外做暑期实习。如果没有移动支付,Rikka必须面对奇怪的商品价格,并且由于总是使用纸币,她必须在这张桌子上面对山区硬币。在当地货币体系中,有4各种硬币:10美分,20美分,50分和1美元。到目前为止,Rikka至少获得了成功10100各种硬币。现在,Rikka将在食堂吃饭,她决定只用硬币支付账单。有n个...原创 2019-09-07 21:31:12 · 183 阅读 · 0 评论 -
HDU 6681 Rikka with Cake【线段树查询射线交点数】
题意:给你一个n*m的矩形,然后给你k个射线,每个射线向上下左右四个方向,问你这个区间能被划分成多少块。思路:好像可以根据欧拉定理推出来,反正我当时推了几个发现答案就是交点个数+1,所以我们只需要统计交点个数就行了。我是用的线段树,我们将竖线看做线段,在y轴上做一个线段树,那么如何来统计交点呢?我们枚举每个竖线,对于统计它会和多少个横线相交就行了。所以我们需要预处理横线,假设'L' 方向的...原创 2019-09-07 20:46:03 · 179 阅读 · 0 评论 -
HDU 6656-Kejin Player【概率DP】
题意:给你n次升级的机会,每次升级成功的概率是p(用r/s表示),花费为a,如果成功会升到下一级,否则的话会掉到x级。q次询问,每次问你从l升到r级的期望花费。思路:dp[i] 表示从i级升到i+1级的花费,1/p次中有1次升级,那么剩下 1/p - 1次会掉级,所以dp[i] = (a[i] + (1/p - 1) * (sum[i - 1] - sum[x[i] - 1] + a[i]...原创 2019-08-12 22:29:02 · 463 阅读 · 0 评论 -
HDU 6579-Operation【线性基】
题意:你有两种操作,0是查询[l, r] 区间的异或最大值,1是加入一个值并另n+1,m次操作。思路:这道题强制在线,记录一下前缀基,在插入的时候维护一个靠右尽可能在高位的区间,每次更新右边的值。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 50 + 1...原创 2019-07-27 01:00:19 · 182 阅读 · 0 评论 -
HDU 6592-Beauty Of Unimodal Sequence【单调栈+LIS】
题意:给你一个序列,让你找长度最长的字典序最小和最大的单峰序列,单峰序列就是满足先增后降的序列。思路:先正着求一遍LIS,再反着求一遍LIS,然后用单调栈来模拟。求字典序最小的话,首先找到第一个顶峰,然后往前找递减的序列中下标较小的,往后就依次找,这样能保证字典序最小。最大的话找到最后一个顶峰,往前是依次找,往后是找LIS中下标大的。#include<bits/stdc++...原创 2019-08-13 14:27:14 · 383 阅读 · 0 评论 -
HDU 6608-Fansblog【威尔逊定理+快速乘】
题意:给你一个素数Q,让你找到一个最大的P<Q, 求P! mod Q。思路:威尔逊定理就是对于一个素数P, 满足(P - 1) !≡ -1 (mod P) , 其实也就是(P - 1) ! mod P == P - 1, 所以我们就能很容易的解决这道题了,我是打了1e7的素数表,然后相乘的时候用了快速乘防止爆long long,另外不要忘了除法取模要用逆元。#include ...原创 2019-08-07 20:14:18 · 198 阅读 · 0 评论