![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OJ----hdu
文章平均质量分 60
anthony1314
退役acmer 想要找到后端实习的菜鸡
展开
-
hdu2222 Keywords Search【AC自动机】
题意:t组数据,每次给你n个模式串,和一个长串,请问这个长串里面包含几个模式串n的范围为1e4,每个模式串的长度不超过50,长串的长度不超过1e6题解:AC自动机入门,也是我第一次写AC自动机学习博客模板用的是kuangbin的模板要点:fail数组初始化都为0,而我的trie的根节点也为0套路总结:先初始化空的自动机,插入每个模式串,建立字典树,对建立完的字典树跑一遍bfs建...原创 2019-10-22 15:06:48 · 119 阅读 · 0 评论 -
hdu3591 The trouble of Xiaoqian [多重背包 + 完全背包 + 01背包]
题意:消费者有n种硬币,每种硬币的价值为v[i], 数量为c[i],而超市有消费者拥有的每一种硬币,且每种有无限个,每次去买东西, 如果要找钱的话, 超市会给你最少的硬币数, 给你一个数t,要你求出,最少需要用到的硬币数量在本次交易中(消费者需要携带的硬币数量 + 超市找钱给的硬币数量)。(t<=20000)题解:对超市进行完全背包对消费者进行多重背包加入消费者的某种硬...原创 2019-03-10 17:14:39 · 265 阅读 · 0 评论 -
hdu5119 Happy Matt Friends [01背包 + 异或和]
题意:给你n个数字, 和m,让你求从这n个数字里面抽取若干个数字, 其异或和不小于m的方案数。题解:m的取值范围不超过 1000000建一个二维的dp数组,通过滚动来进行dp状态转移方程式为:dp[i%2][j] = dp[(i-1)%2][j] + dp[(i-1)%2][j^num[i]];dp[(i-1)%2][j] 代表不取num[i]的的异或和为j的方案数dp...原创 2019-03-10 17:00:43 · 611 阅读 · 0 评论 -
HDU2639 ( Bone Collector II )【01背包 + 第K优解】
题目:学过01背包都知道有道入门题目叫Bone Collector(hdu2606), 给你n个石头,每个石头占背包的v[i] 容量, 价值为w[i],给你背包的容量, 要你求出所能得到的最大价值, 也就是最优解,这道题的升级版就是要你求第k优解。思路:我们找到01背包的原理就是通过状态转移方程式来进行继承上一个状态的,那我们所要求的第k优解肯定就在转移方程式中出现过,也就是说, 转移...原创 2019-03-10 16:53:21 · 158 阅读 · 0 评论 -
hdu2433 Travel bfs+最短路树 (预处理)
给你n个点,m条双向边,每条边的长度都为1,求删去第i条边 后, 每个点到其他点的最短路的距离之和.//题意很不清晰网上有最短路spfa 和djskra 的做法, 而且代码可以ac, 但是代码是错的,只是刚好卡着时间过了由于每条边的长度都一样, 而且根据答案我们可以得出, 每一个点到其他点的距离之和 应该是一棵树,所以我们要求n棵最短路树的和,所以先预处理记录每个点为原点的最短路树之和...原创 2019-03-09 11:48:32 · 170 阅读 · 0 评论 -
hdu 4803 Poor Warehouse Keeper【贪心】
加总价的时候单价会改变加数量单价不会改变特判一次 贪心取就可以了#include<bits/stdc++.h>using namespace std; const double eps = 1e-9;int main () { double x, y; while (scanf("%lf%lf", &x, &y) == 2) { if (...原创 2018-10-11 23:57:07 · 175 阅读 · 0 评论 -
hdu1392 Surround the Trees 【简单凸包】
题意:给你n个点,求将所有点都围起来的凸包的周长题目链接:传送门关于凸包的原理:传送门AC_code:#include<bits/stdc++.h>using namespace std;#define ll long longconst int N = 1e5 + 10, M = 30005, mod = 1e9 + 7, inf = 0x3f3f3f3...原创 2018-10-01 17:14:32 · 144 阅读 · 0 评论 -
hdu6223 Infinite Fraction Path【bfs+剪枝】
先提取出最大的值放进优先队列里面优先队列先按步数小的先排,步数相同的按值大的优先剪枝:当前位的值比队列出来的值大的直接忽略;但前走的下标已经被走过了且当前步数小于最大步数直接忽略。AC_code:#include<bits/stdc++.h>using namespace std;#define ll long long#define maxn 15...原创 2018-10-01 14:53:58 · 124 阅读 · 0 评论 -
hdu4707 Sum 【整数和拆分 + 快速幂 + 费马小定理降幂 】
题意:给你一个很大的n, 要你求n的拆分有几种方式, 答案模1000000007.把n进行拆分, 可以看出n个1进行隔板, 答案就是 2 ^(n - 1)由于n的数字较大, 用费马小定理进行降幂a^n % p== a^(n - (p-1) - ....- (p-1)) % p = a^(n%(p-1))%p/*Algorithm:整数和拆分 + 快速幂 + 费...原创 2019-03-10 20:32:32 · 145 阅读 · 0 评论 -
hdu6470 Count【矩阵快速幂】
奶牛的编号规则:当前奶牛是第n头,那么他的编号就是2倍的第n-2头奶牛的编号加上第n-1头奶牛的编号再加上自己当前的n的三次方为自己的编号.第一头奶牛为1号,第二头奶牛为2号第n头奶牛的编号是多少, 答案模123456789题解:给你公式很明显这是一道矩阵快速幂的题目f(n) = f(n-1) + f(n-2) + n^3(n+1)^3 = n^3 + 3*n^2 ...原创 2019-03-20 20:51:36 · 298 阅读 · 0 评论 -
hdu6468 zyb的面试(模拟)
给你一个数n和k让你把1-----n字典序排列求出第k个t<100n<1000000题解:首先我们可以通过n的字典序排序构造出一个10叉树copy来自其他blog的图片我们可以根据这个树 进行遍历遍历有3种操作 *10 /10 +1用dfs左序遍历也可以过 数据小AC_code:/*Algorithm: 模拟...原创 2019-03-20 22:05:11 · 261 阅读 · 0 评论 -
HDU5988 Coding Contest 【最小费用最大流】【2016ACM/ICPC亚洲区青岛站】
题意:给出n个点和m条边,每个点有si个人,bi份食物,每条边一开始可以通过一个人,后来的人每通过一个就有pi的概率使整个系统崩溃,问崩溃的最小的概率是多少思路:对于崩溃的最小概率,由于只有一条奔溃就会全部崩溃,那么将所有不会崩溃的概率相乘就是不会奔溃的概率,所以崩溃的概率 = 1 - 不会崩溃的概率,所以要求最大不会崩溃的概率,那么我们只要对不会崩溃的概率取反即可一开始想到了网络流,但是...原创 2019-09-23 19:03:35 · 329 阅读 · 2 评论 -
hdu6727 Quasi Binary Search Tree 【2019百度之星复赛】【中序遍历】【dfs】
题意一二题题解 :传送门百度之星复赛第三题题意 传送门中文题意,自己看吧比赛的时候看错了题意,一直没想出,赛后补题思路就是按照规律进行中序遍历,情况有点多所以你得分类讨论先预处理出每个节点的作为根节点的树的最小节点下标是多少每个节点的作为根节点的树的节点数是多少然后我们开始中序遍历如果两边都有节点,找比当前节点小的最小节点的一边如果两边的最小节点都比当前节点大那么找,节点...原创 2019-09-05 17:14:42 · 323 阅读 · 0 评论 -
hdu6705 path 【优先队列】【贪心】【2019CCPC网络赛】
题意给你n个点的有向图,有m条边, q次查询,每次查询第k大的路径的长度思路对于每个点所出去的边先排个序,预处理一下,我没可以知道最开始最短的边肯定只有一条,所以我们把每个点出去的最短的边先放到优先队列里面, 然后最短的边肯定就是当前最短的路径,那要如何扩展路径了,我们每次求出当前最短的路径那么放到队列里的肯定是由这条路径扩展出来的,因为其他路径暂时不用扩,因为有更短的在队列里面,但我们放出...原创 2019-08-29 18:58:16 · 234 阅读 · 0 评论 -
hdu 6704K-th occurrence【后缀数组】【主席树】【RMQ】【二分】【2019CCPC网络赛】
题意给你一个长度为n的字符串,q次查询,每次查询给你三个数字, l, r, k查询 查询从左往右 第k个 与子串 **s[l…r]**相同的子串的左端点的位置查询不到输出-11≤n≤1e5,1≤q≤1e51 \le n \le 1e5, 1 \le q \le 1e51≤n≤1e5,1≤q≤1e5思路对字符串后缀数组,根据sa数组建主席树,然后rmq预处理height数组每一次查询,...原创 2019-08-26 04:36:01 · 212 阅读 · 0 评论 -
hdu6669 Game【贪心】【2019百度之星初赛一 B题】
题意:给你n个任务区间[ai,bi][a_{i}, b_{i}][ai,bi], 1≤ai≤bi≤10000001\le a_{i} \le b_{i} \le 10000001≤ai≤bi≤1000000你可以选择起点,每次你可以 向左 走一步或者两步,或者向右走两步或一步请你依次到达所有的区间,最少需要多少次思路:比赛的时候看错两次题,第一次没有看到依次,比赛过程中看到了...原创 2019-08-20 16:22:27 · 272 阅读 · 0 评论 -
hdu6681 Rikka with Cake【线段树】【离散化】【2019 Multi-University Training Contest 9】
题意:在一个封闭的n*m的矩形内,有k条射线,有四个方向,上下左右,射线,射线的端点不重合,该矩形内有多少个封闭的区域1≤n,m≤1e9,1≤k≤1e51\le n,m \le 1e9 ,1\le k \le 1e51≤n,m≤1e9,1≤k≤1e5没有任意两个个端点的x坐标 或 y坐标相同题解:看图不难观察到 当横向的线与纵向的线产生一个交点的时候,封闭的区域就会增加1于是我们只需要...原创 2019-08-20 10:39:31 · 150 阅读 · 0 评论 -
HDU1542 Atlantis 【线段树】【扫描线入门】
题意给你n个矩形,算出他们覆盖了多少面积思路总结一下扫描线的套路把矩形的上下边 按照 左端点的x坐标 右端点的x坐标 高度 为上位边还是下位边存起来当作扫描线 根据高度排序,从低到高,也就是y坐标把所有x坐标都提取出来 排序离散化线段树维护的节点 为x坐标某个区间内左端点 右端点 下位边的总长度 下位边的数量如果扫描线下标为1~m 循环1 ~ m-1m条扫描线 循...原创 2019-08-10 11:50:19 · 166 阅读 · 0 评论 -
hdu6579 Operation【在线线性基】【2019 Multi-University Training Contest 1】
题意:初始时有n个数,现在有q次操作:查询[l,r]内选择一些数使得异或和最大; 在末尾加入一个数。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6579题解:这一道让我学习了线性基 学习传送门这一道题 要我们强制 在线求线性基用一个val二维数组 标记右边界为i时对应的线性基用一个 pos二维数组 标记当前该位...原创 2019-07-24 00:34:00 · 128 阅读 · 0 评论 -
hdu1520 Anniversary party 【树形DP入门】
题目链接:传送门有n个员工,每个员工的有直接上属或者直接下属,一个聚会,要求到场的员工之间不能有直接的上下属关系,每个员工有到场的快乐程度,请问怎么选快乐程度最大?题解:所有人的关系最后化为一棵树,在树在进行dp,取最优,这里面一定会有至少一个员工没有直接上属,对他进行dfs,进行递归操作dp数组的关系 的dp[n][1]代表这个人到场 dp[n][0]代表这个人没到场dp状...原创 2018-09-03 11:20:15 · 150 阅读 · 0 评论 -
hdu6424 Rikka with Time Complexity 2018杭电多校第九场 J题 复杂度【对数公式推规律】
题目链接:传送门题意就不说了,直接说怎么推的直接在 求的结果前面+2个log 取对数loglog(f(a)^f(b)^f(c)) = (log(f(b)^f(c))*log(f(a)) = log(f(b)^f(c)) + loglog(f(a)) = f(c)log(f(b)) + loglog(f(a)) = f(c)f(b+1) + f(a+2)f(+无穷大)...原创 2018-08-21 17:24:02 · 224 阅读 · 0 评论 -
hdu6319---2018 Multi-University Training Contest 3 ---Problem A. Ascending Rating【单调队列】
题意:给定一个序列a[1.....n],对于每个长度为m的子区间,求出区间a的最大值以及从左往右扫描该区间时a的最大值变化次数。思路:按照平从m到n的顺序用个单调队列就可以算出子区间的最大值,但是按照r从m到n的顺序很难求出变化次数,不如我们反着顺序过来求,按照递增,来写单调队列,队列中元素的个数就是最大值的变化次数。队列中存的元素是以数组下标来进行存的。#inc...原创 2018-07-31 15:17:54 · 116 阅读 · 0 评论 -
hdu1754 I Hate It (线段树)
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<500...原创 2018-05-04 13:25:41 · 110 阅读 · 0 评论 -
hdu 2795 Billboard (线段树,找第一个大于w的点)
这道题一开始看,实在想不出跟线段树有什么关系,自己实在是太菜了。给出h*w的广告版。每个广告是1*w的,给出m个广告,要每张广告尽量在上层尽量靠左,输出它所在的高度。假设放不下。就输出-1这里的问题就是h给的非常大,可是 一共仅仅有m个广告,所以即使是一条广告占一条,那么也就仅仅须要m的高度,多余的高度没实用,假设m的高度的不能放下m条广告,那么即使h再高,也放不下,所以n应该是m和h的小...原创 2018-05-04 14:24:44 · 182 阅读 · 0 评论 -
最短路模板dijistra
dijistrahdu1596/*XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的...原创 2018-06-07 22:46:20 · 304 阅读 · 0 评论 -
2018 Multi-University Training Contest 1 ------ 1004 hdu6301 Distinct Values【贪心+优先队列】
题意:给出一个数组大小,这个数组里面所有的数范围从 1到100000,这个数组有这样一个规则,某个子区间内的所有数必须不相同,求按字典序最小输出这个数组。解法:贪心+优先队列先把所有区间按前端进行排序,再按后端进行排序,进行遍历,每次把前面区间用过的数字但现在遍历的区间没覆盖的数存进优先队列中,然后再取出来用。本人AC代码:#include<bits/stdc++....原创 2018-07-24 13:21:42 · 175 阅读 · 0 评论 -
2018 Multi-University Training Contest 1 ------ 1002 hdu6299 Balanced Sequence【贪心】
Balanced SequenceTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2802Accepted Submission(s): 700Problem DescriptionChiaki hasnstrin...原创 2018-07-24 17:11:35 · 123 阅读 · 0 评论 -
2018 Multi-University Training Contest 2 ---------hdu 6315 Naive Operations【线段树】
Naive OperationsTime Limit: 6000/3000 MS (Java/Others)Memory Limit: 502768/502768 K (Java/Others)Total Submission(s): 853Accepted Submission(s): 318Problem DescriptionIn a galaxy far, f...原创 2018-07-26 11:47:51 · 173 阅读 · 0 评论 -
2018 Multi-University Training Contest 2 ---- hdu6318 Swaps and Inversions【离散化+归并排序】
Swaps and InversionsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1070 Accepted Submission(s): 401Problem DescriptionLong long ago, ...原创 2018-07-26 16:10:59 · 136 阅读 · 0 评论 -
hdu6395 Sequence 2018杭电多校第7场1010 【矩阵快速幂+分块】
题目链接题意:给你A, B, C, D, p, n这些条件通过公式请你推出第n项答案(mod1e9+7)题解: 有前面几项推出后一项的公式一般都是用矩阵快速幂来求, 主要是p/n难以进行操作,那么我们便根据p/n的值来进行分块例如 p = 16 n = 55分块可分为 :p/3 = 5 3p/4 = 4 4p/5 = 3...原创 2018-08-14 11:27:37 · 199 阅读 · 0 评论 -
hdu6418 Rikka with Stone-Paper-Scissors 2018杭电多校第九场D题 【推公式(奇妙对称性)】
题目链接:传送门题意:Rikka 和 Yuta有剪刀石头布三种卡片,他们两个卡片的数量相同, 只是每个种类的卡片可能不同.现在给你 a b c 代表Rikka的剪刀 石头 布三个种类卡片的数量而aa bb cc 则代表Yut卡片的数量每个回合双方各出一张牌,出完这张牌后舍弃掉,赢的人得加一分,输的人减一分,平局不增不减。Yuta随机出牌求Rikka的最大预期得分。...原创 2018-08-21 13:04:31 · 270 阅读 · 0 评论 -
hdu6415 Rikka with Nash Equilibrium 2018杭电多校第9场A题【DP】
题目链接:传送门题意:给你一个n*m矩阵,以及一个mod;给你一种定义,在矩阵内的某个元素Aij(第i行第j列)在所在的行和列任意一个元素大,为一个平衡。在这个n*m矩阵中有1~n*m,每个数出现次数为1, 请问有多少种方案构成这个矩阵,答案模mod,且这个矩阵的平衡只有一个。题解:想了这道题想了很久,赛后看到多校群里的神仙们用oeis推出了公式,真的nb,公式为n!*m!*(n*...原创 2018-08-21 11:26:54 · 195 阅读 · 0 评论 -
2018CCPC网赛 题解补 hdu6440 hdu6441 hdu6446(未完)
目录hdu6440 Dream【费马小定理】hdu6441 Find Integer 【费马大定理】hdu6446Tree and Permutation【邻接表dfs】hdu6440 Dream【费马小定理】传送门复习费马小定理的定义:费马小定理:假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)。即:假如a是整数,p是质数,且a,p互质...原创 2018-08-30 21:17:17 · 241 阅读 · 0 评论 -
hdu6386 Age of Moyu 2018杭电多校第七场A题【优先队列+BFS】(已更改)
题目链接题意:给你n个点, m条边(双向), 每条边有一个编号,求从1到n的最短路。如果没有则输出-1.规则:经过一条边,花费为1,若经过的下一条边与当前的边编号相同,则下一条边不需要花费, 如果不同则代价+1.简单来说就是 求 换乘次数+1例1:1-2 的编号 为11-3 的编号为22-3 的编号为1则最短路 可以是 1-2-3 这里的编号都为1 所以答...原创 2018-08-18 23:30:00 · 491 阅读 · 5 评论 -
hdu3183 A Magic Lamp【ST算法】
给你一个数,不超过2000位,让你删去其中m位数字,删除完后,剩下的数字顺序不变,求怎么删除数字最小。这道题是一道ST表入门题目。首先先来介绍一波ST:ST表算法详解(求最小值): 用mn[i][j]表示从j到j+2^i-1的最小值(长度显然为2^i)。 任意一段的最小值显然等于min(前半段最小值,后半段最小值)。 那么mn[i][j]如何用其他状态来继承呢? j到j+2^i...原创 2018-08-07 17:23:58 · 115 阅读 · 0 评论 -
hdu6351 Beautiful Now 全排列+剪枝(暴力) 2018杭电第五场B题
题意:给你一个不超过10^9的数n,和一个k;有一种操作方式交换这个数的某一位与另一位进行交换 比如 201 可以换成 102,让你进行k次操作,求出交换后最大的数字和最小的数字.要点:1 . 某一位的数字可以和它本身进行交换 2 .交换的数字不可以有前导零(即第一位不可以是0)题解:如果这个数字是n位数,那么其交换不超过n-1次就可以变成最大值和最小值,可以根...原创 2018-08-07 14:05:47 · 658 阅读 · 0 评论 -
hdu6333 Problem B. Harvest of Apples 莫队算法+费马小定理求逆元
S(n,m - 1) = S(n,m) - C(n,m)S(n,m + 1) = S(n,m) + C(n,m + 1)S(n - 1,m) = (S(n,m) + C(n - 1,m)) / 2S(n + 1,m) = 2 * S(n,m) - C(n,m)推出四道公式,用莫队算法做,求组合数用费马小定理求逆元。#include<bits/stdc++.h>#...原创 2018-08-02 16:56:35 · 126 阅读 · 0 评论 -
hdu6396Swordsman 2018杭电多校第七场1011 【优先队列+IO输入优化】
题目链接题意:有一个法师 法师身上有k个属性 Vi, 1<=k<=5 有m只怪物, 每只怪物有k个属性 Aij, 当法师杀死某只怪物的时候, 每一项属性 Vi 可以根据 提高相应的值Bijm<= 5*1e5求法师最多可以杀死几只怪物 以及其最终属性是多少题解:由于k的值很小,所以我们可以开k个优先队列,每个队列的优先级是从小到大,先将所有怪物...原创 2018-08-14 15:48:47 · 156 阅读 · 0 评论 -
2018 Multi-University Training Contest 2-----hdu6313Hack It【构造题】
Hack ItTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 668Accepted Submission(s): 216Special JudgeProblem Description...原创 2018-07-26 13:55:11 · 242 阅读 · 2 评论