随笔分类 - HDU
摘要:题目链接:hdu 5413 CRB and Roads 题意: 给你一个n个点的有向无环图,定义重复边为 对于一条边u->v,如果去掉这条边,u还是等到达v,则u->v是重复边。 问有多少条重复边。 题解: 显然有向无环图,先拓扑排序一下,这样排在前面的节点可能到达后面的节点,我们再将边的关系按照拓
阅读全文
摘要:题目链接:hdu 5745 La Vie en rose 题意: 给两个字符串 a 和 b ,b可以进行变换,规则是可以任意交换相邻两个字符的位置,但是不可以有交叉(例如3和4交换,5和6交换 互不影响,但是2和3,3和4就不可以)。求a中每一个位置能不能匹配b或b变换得到的子串。 题解: 考虑dp
阅读全文
摘要:题目链接:hdu 5995 Guessing the Dice Roll 题意: 有一个6面的骰子,有n(n≤10)个人每个人猜了一个长度为l(l≤10)的序列,不停的掷骰子直到满足一个人的序列则那个人获胜,求每个人获胜的概率。 题解: 将他们猜的串插入AC自动机,然后转移k次,这里k要足够大才能收
阅读全文
摘要:题目链接:hdu 4758 Walk Through Squares 题意: 给你一个n*m的网格,现在你要从(1,1)走到(n,m),每次只能向右走或者向下走,走完后会形成一个包含R,D的序列,这个序列必须要包含题目给出的两个字符串,问有多少种方案。 题解: 由于要从(1,1)走到(n,m),所以
阅读全文
摘要:题目链接:UVALive - 4811 Growing Strings 题意: 给你n个字符串,问你最多能选出多少个字符串,使得s[i]是s[i+1]的子串。 题解: 先将所有的字符串插入AC自动机,将所有字符串按长度排序后,显然dp[i]=max{dp[j]}+1,其中s[j]是s[i]的子串。然
阅读全文
摘要:题目链接:hdu 4057 Rescue the Rabbit 题意: 给出一些模式串,每个串有一定的价值,现在构造一个长度为M的串,问最大的价值为多少,每个模式串最多统计一次。 题解: 由于每个模式串最多统计一次,所以我们要考虑记录是否已经存在该串。 考虑dp[i][j][k]表示当前考虑到i的长
阅读全文
摘要:题目链接:hdu 6039 Gear Up 题意: 给出一些齿轮,有些齿轮是边相连,也就是拥有相同的线速度,有的齿轮是轴相连,也就是拥有相同的角速度,现在给某个齿轮一个速度,求这些齿轮中的最大速度,同时还有修改操作,可以更改某个齿轮的半径大小 题解: 官方题解: 1 #include<bits/st
阅读全文
摘要:题目链接:hdu 6035 Colorful Tree 题意: 给你一棵树,每个节点有一种颜色,现在让你求所有点对的路径上不同的颜色数量的总和。 题解: 下面是官方题解: 单独考虑每一种颜色,答案就是对于每种颜色至少经过一次这种的路径条数之和。反过来思考只需要求有多少条路径没有经过这种颜色即可。直接
阅读全文
摘要:题目链接:hdu 6034 Balala Power! 题意: 给你n个字符串,都是包含小写字母,现在让你给a~z赋值0~25,使得这些字符串变成的26进制的数的总和最大。 不能有前导0的情况,他们保证至少有一个字母不出现在第一位。 题解: 每个字符对答案的贡献都可以看作一个 26 进制的数字,问题
阅读全文
摘要:题目链接:hdu 5798 Stabilization 题意: 给出一个序列Ai,可以让每个Ai异或上一个x使得最小,问最小值以及使得该值最小的最小x值 题解: 首先枚举x,然后如何来算得出的价值呢,巧妙的利用A[i]与A[i-1]的二进制位关系。 详细题解传送门 1 #include<bits/s
阅读全文
摘要:题目链接:hdu 5772 String problem 题意: 给你一个字符串,只含有数字。 你需要选择出一个子序列,使得这个子序列的权值最大。 这个子序列如果这个数字第一次出现就ans-=bx,否则就-=ax 然后如果第i个字符和第j个字符都在子序列里面,那么ans+=w[i][j] 问你最大a
阅读全文
摘要:题目链接:hdu 5816 Hearthstone 题意: 牌堆里有 N张 A类卡,M张 B类卡 A类卡能让你从牌堆里抽两张卡 第 i张 B类卡能让你对对手造成 x_i点伤害 刚开始从牌堆抽 1张牌,并且对手有 P点生命值 问一回合内打倒对手的概率是多少 题解: 利用枚举子集的状态转移,求出手上能拿
阅读全文
摘要:题目链接:hdu 5758 Explorer Bo 题意: 给一棵n个点的树,每次任选两个点,然后覆盖两点间的所有边,要求以最少的次数覆盖所有的边,在保证次数最少的情况下要求覆盖边的总次数最小 题解: 详细题解传送门 1 #include<bits/stdc++.h> 2 #define F(i,a
阅读全文
摘要:题目链接:hdu 5857 Median 题意: 给你n个排好序的数,有m个询问,每次询问给出两个区间,然后让这两个区间的数重新组成一个序列, 然后让你输出这个序列的中位数。 题解: 分类讨论一下。 如果两个区间不重合,那么很直接的就能算出来中位数的位置。 如果重合,就将重合的那一部分数记为占了两个
阅读全文
摘要:题目链接:hdu 5820 Lights 题意: 给定一个网格图,上面有 N个灯 求任意两个灯之间,是否至少存在一条曼哈顿最短路径 使得路径上的每一个拐点都有一个灯。 题解: 我们可以对每个点将非法的区域找出来,然后看看这个区域内有没有点,然后就有如下的做法: 这里要从左往右和从右往左都扫一遍,这样
阅读全文
摘要:题目链接:hdu 5785 Interesting 题意: 有一个长度为n的串(n<=10^6),对 1 <= i <= j < k <= length(s) . 如果[i,j]和[j+1,k]都是回文串。则对答案的贡献为 i*k ,求贡献和。 题解: 详细题解传送门 1 #include<bits
阅读全文
摘要:题目链接:hdu 5782 Cycle 题意: 给出两个字符串,判断他们每一个前缀是否循环同构,循环同构的意思就是,字符串首位相接拼成一个环,两个环通过旋转可以相等。 题解: 传送门 1 #include<bits/stdc++.h> 2 #define mst(a,b) memset(a,b,si
阅读全文
摘要:题目链接:hdu 5741 Helter Skelter 题意: 给定一个二进制的字符串,有 M次询问 问是否存在含有 a个 0 ,b个 1的区间 题解: 我们可以n2处理出每个区间,然后我们可以发现每个区间是一个矩形。 现在问题就转换成了有多少个点在这些矩形内。 然后就可以离散化后扫描线一下。 1
阅读全文
摘要:题目链接:hdu 4348 To the moon 题意: 给你n个数,有m个操作。 1.给区间[l,r]的所有数+d,并且时间戳+1 2.询问当前时间戳的区间和。 3.询问过去时间戳t的区间和。 4.退回到时间戳t。 题解: 直接上主席树。 不过区间操作的时候push_down空间似乎不是那么够用
阅读全文
摘要:题目链接:hdu 3400 Line belt 题意: 在二维平面上给你两条线段AB,CD,线段上的速度分别是v1,v2,在线段外的速度为v3. 问从A到D最短的时间需要多少。 题解: 三分AB上的一个点,三分CD上的一个点。 即三分套三分。 1 #include<bits/stdc++.h> 2
阅读全文

浙公网安备 33010602011771号