- 博客(23)
- 收藏
- 关注
原创 CF 772C Destroy Array 并查集
题意是说,给你一串长为n的数列,然后给你1-n的某一种排列,按照这个排列里面的数去销毁数列中相应位置的数,销毁某个位置的数之后,这个数列就被分为了几个不相连的几段,问销毁这个位置的数后,这些段里面,和最大为多少。一开始觉得,这不是一个线段树吗?..销毁个位置单点更新上去...然后根就是答案..啥的..然后再想想,问题来了,线段树节点存什么呢?存区间和?存区间和的最大值???这就不好办了,反正不好搞
2016-10-11 23:40:37 842 1
转载 POJ 3744 Scout YYF I
胖头鱼:???题意,YYF是一个特工,他来到了敌方的基地,有一条有地雷的路,他有p的概率走一步,1-p的概率条两步,告诉你地雷的位置,问你,成功走过这条路的(EM?)概率。考虑每个地雷的位置,在每个位置存活下来的概率乘起来就是答案了。一开始用dp做,结果TLE了,因为我dp的时候是每个位置都遍历过去...结果就炸掉了,路太长了,用了各种方法优化并没有用...看到别人用了矩阵(???),然后
2016-10-04 18:04:00 318
转载 HDU 4870 Rating
题意,打网络赛,若打进前200,该账号加1分,否则扣2分(若当前为0分,扣完还是0分),有两个账号,一开始都是0分,每次选低分的打比赛,问最后任意一个账号达到20分需要的轮数的期望。定义dp[i] 当前分数到 20分的轮数的期望。dp[i] = dp[i + 1]*p + dp[i - 2]*(1 - p) + 1;但是这个方程不能用来递推,因为你不知道初态是怎么样的,因为初态就是你要
2016-10-04 17:44:17 345
转载 ZOJ 3329 One Person Game
题意有三个骰子,分别有k1,k2,k3面,每个面等概率,现在同时投三个骰子,如果第一个为a,第二个为b,第三个为c,直接将总和置为0,否则就在总和上加上三个骰子的和,问要使总和大于n要多少轮的期望为多少。看了kuangbin的题解,明白了很多。定义dp[i] 当前总和为 i 到结束的期望次数。dp[i]=∑(pk*dp[i+k])+dp[0]*p0+1;你发现这个问题变成了一个
2016-10-04 17:08:47 279
原创 HDU 4405 Aeroplane chess
题意,有一条线,你在这条线上走飞行棋,骰子为1—6,等概率,骰子正面是多少就走几步,这条线上有些点是有捷径的,可以直接到这个点后面的某个点,然后如果后面那个店也有捷径可以直接走捷径,走捷径是不需要掷骰子的。题目里说了,每个点最多一条捷径.....问,走到终点需要掷骰子的次数的期望。挺简单的一个概率dp,一开始理解有点问题..以为走到有捷径的点可以选择掷骰子或者走捷径..然而直接走捷径就好。
2016-10-04 16:54:05 249
原创 HDU 5878 I Count Two Three 青岛网络赛
题意找出大于等于 n 的最小的 能表示为 2的a次 乘以 3的b次 乘以 5的c次 乘以 7的d次 的数。n最大为1e9,符合条件的数也没几个,预处理出来,排个序,二分一下就好了。#include #include #include #include #include #include #include #include #include #include #include
2016-09-25 17:37:10 298
原创 HDU 5898 odd-even number 沈阳网络赛
题目给你了一个区间,问你这个区间内满足 连续偶数的位数为奇数个,连续奇数的位数为偶数个的数的个数。意思比较绕,然后分析一下发现,你想讨论啊,找规律都不好搞,但是数位dp很符合这个玩意。定义一个三维的dp[i][j][k],意思是从高位到低位 的第 i 位,选择数 j (0-9),当前奇偶性的连续长度为奇数还是偶数(0偶数,1奇数)。再定义一个结构相同的东西,pp[i][j][k],这个
2016-09-21 15:40:24 363
原创 HDU 5874 Friends and Enemies 大连网络赛
题意,岛上有好多人,每两个人不是朋友就是敌人,若两个人是朋友,他们的项链上至少有一颗石头是同颜色的,若是敌人则项链上没有一颗颜色相同的石头,告诉你人数和石头的颜色总数,问你能否给每个人配项链。把他想象成一个图,每个人是一个节点,然后每有一个人和他是朋友,就把两个人相连,代表着他们有着相同颜色的石头,如果有一个三角形,那么这个子图最少只需要一种颜色的石头就够了,那么怎么样增加石头的种类呢?方法就是尽
2016-09-15 17:21:35 304
原创 HDU 5876 Sparse Graph 大连网络赛
题意补图上求每个节点从source的深度,到达不了就深度为-1,依次输出。就是个补图bfs...............mdzz#include #include #include #include #include #include using namespace std;const int MAXE = 200005;struct Edge{ int from, to
2016-09-14 16:33:18 333
原创 HDU 5875 Function 大连网络赛
题意,给一堆数,给你一个区间,求这个区间第一个数 模 第二个数 模 第三个数 ....模到这个区间最后一个数,最后值是多少,有多次询问。然后很明显的,一个数摸一个比他小的数就变小了,比他大的数,他不变,所以总是要找小的数,如果能知道一个数在他后面第一个比他小的数u,然后取模,再去找u后面比他小的第一个数,再取模,这样子能跳过很多不用的区间。那么问题来了,如何快速知道一个数之后第一个比他小的数呢??
2016-09-13 19:05:08 441
原创 HDU 5873 Football Games 大连网络赛
题意,给你几个小组,每个小组有n个队,然后小组内打循环赛,单场比赛赢了的得2分,打平个得1分,打输得0分,最后给你每组内,每个队的得分,问你这个得分情况是不是可能的。图,度,然后就差不多出来了。#include #include #include #include #include #include #include #include #include #include
2016-09-13 14:09:09 290
原创 HDU 5877 Weak Pair 大连网络赛
题意就是说给你一棵有根树,然后定义了一种有序对叫做weak pair,两个点若满足 第一个点是第二个点的祖先,而且第一个点和第二个点的权值相乘,乘积小于他给的k,那么就是weak pair,方法很简单,就是dfs,从根节点开始向下找,看这个点和他的祖先节点有多少满足情况,比赛时的想法是dfs到某个深度的时候,把之前的所有祖先的权值存在一个数组里,然后去看有多少符合条件的加在ans里,然后超时了,g
2016-09-12 21:02:17 373
原创 HDU 5833 Zhu and 772002 网络赛
题意,给你一堆最大质因子小于2000的数,从其中选任意个,并乘起来,有多少种方案能使乘积为完全平方数。有原题。 方法异或方程组高斯消元。系数矩阵每个元素为某个素数在某个数里面有奇数个还是偶数个,x,代表某个数是否选中,方程组右边全是0。仔细体会一下就会明白是怎么回事了。用了别人的高斯消元的模板..稍微改了改....#include#include#include#incl
2016-08-16 22:10:55 324
原创 HDU 5835 Danganronpa
...神特么弹丸论破有n种礼物,每种礼物a[I]个,现在有一排无限长的桌子,要往上面放礼物,每个桌子放两个礼物,第一个礼物要求相邻的桌子第一个礼物是不同的,第二个礼物没有这个要求,可以随便选一种礼物放,要求放礼物要相邻,不能隔着一个空桌子,问最多能放多少个桌子。我的做法类似模拟,看能多出多少个,如果多出很多的话,那最后答案就是能凑成相邻不重复串的长度,如果多出来的不多,凑完相邻不重复子串没
2016-08-14 19:18:40 347
原创 2016 多校 Multi-University Training Contest 8 Balls
hdu 5812 Balls题意,给你n个箱子,每个箱子最多放一个球,然后球有不同颜色,同种颜色的球是一样的,现在给你一种排列方式,也就是告诉你这n个箱子里放了啥,0代表没放球,又告诉你一种操作,这个操作是将某个区间里所有的球随机重新排列,然后告诉你了另一种排列方式,和几个操作,问你在这几次操作之后,能否从最初态变到后来告诉你的那个排列。搞几个样例测试,再思考,发现,可以贪心来做,你想办法
2016-08-12 22:38:19 365
原创 HDU 5805 NanoApe Loves Sequence
题意是说给你一个串,然后任意删去一个位置的数字,然后求整个串相邻两个数的差的绝对值的最大值,最后问你这个最大值的期望值 * 串的长度 等于多少。先观察,发现每个位置的值来源一定是剩余位置的最大值 和 当前位置前一个值和当前位置后一个值的差,这两个中大的那个,所以我先将所有两个数的差的绝对值求出来,排个序,然后去枚举每个位置,去排好序的序列中看,如果这个值因为当前值被删除所以不能用的话就找下一个
2016-08-08 22:38:31 352
原创 2016 多校 Multi-University Training Contest 6 A Simple Chess
hdu 5794 A Simple Chess题意很简单,给你一个棋盘,和只能像国际象棋马的走法的棋子,棋子只能从11开始走 只能向斜下方走,棋盘上有写位置不能走,问你最后走到终点有几种走法。凡事都从观察开始,棋盘很大,long long才能存,但是不能走的位置很少只有100,再结合题意,很明显的容斥,之后我们画图,找一些简单的情况分析,发现每个能去的位置都在一些平行的直线上,然后我们在把
2016-08-08 18:14:06 375
原创 HDU 5806 NanoApe Loves Sequence Ⅱ
题意,给你一个串问你该串有几个连续子串满足该子串的第k大的数不小于m方法,统计每个位置(包括当前位置)前面有几个大于等于m的数,一个区间只要满足 该区间 大于 m 的数有k个及以上,就是合法的我的做法是枚举左端点,二分寻找右端点,nlogn的效率,看了别人的,用了尺取法,只要n就可以了,确实不错,自己做的时候没想到#include #include #inclu
2016-08-08 02:00:44 294 7
原创 2016 多校 Multi-University Training Contest 5 Two
hdu 5791 Two题意是说,给你两个串,然后问你有多少对相同子串112的子串有:1,1,2,12,12,112找几个例子试了一下,发现这玩意可以dp,我称第二个串为模式串,第一个串为母串好了,我们先从模式串里一次取一个数字,然后去母串里找匹配的位置,发现一个匹配位置之后找前面有个几个符合要求的子串。二维的dp,dp[i][j] 代表母串到第i位,模式串到第j位,有几个相同子串
2016-08-04 00:13:17 292
原创 2016 多校 Multi-University Training Contest 5 Divide the Sequence
hdu 5783Divide the Sequence题意是说给你一个串,然后问怎样切割这个串使得每个部分的前缀和均为正数,且得到的字串最多的方法,输出最多几个子川。第一反应..从头遍历到尾,发现一个负数往前找,直到保证前缀和是正数并记录这个位置,为了提高效率当往前找时发现负数就直接跳到刚才记录的位置,这样写非常繁琐,因为情况比较恶心,一直WA...然后看了队友代码恍然大悟,从
2016-08-03 23:36:52 299
原创 2016 多校 Multi-University Training Contest 4 Bubble Sort
hdu 5775 Bubble Sort题目给出了一个冒泡排序,问每个元素在这个冒泡排序过程中最左边的位置和最右边的位置下标的差的绝对值冒泡排序是每次把最小的元素移到最前面模拟一下这个过程发现,对于每个元素来说,他右移的次数就是他右边有几个比他小的数,左移的次数就是左边有几个比他大的数结论已经得出了,之后就需要一个高效的算法解决他了,发现树状数组可以解决这个问题,开两个树状数组,一
2016-08-01 19:18:28 473
原创 2016 多校 Multi-University Training Contest 4 Substring
hdu 5769 Substring题意很简单,给你一个串和一个字符,问你含有这个字符的这个串的子串有几个后缀自动机应该能使,但是不会,多校结束之后用后缀数组过掉的一个串的连续子串的总数: sigma(len - height[I] - suffixarray[I])那么带有该字符的只要填一点东西进去就可以求了也就是在 (height[I] + suffixarray[I])和
2016-08-01 02:07:23 316
原创 2016 多校 Multi-University Training Contest 4 Another Meaning
hdu 5763 Another Meaning题意是说给你一句话和一个单词,这个单词有两种意思,问这句话可能有几种意思。不是很好理解题目的意思。一开始的想法是用kmp跑出所有匹配的位置,然后把匹配出来的区间全部存下来,之后合并互相覆盖的区间,然后去看每个区间可能有几个意思,然后把所有答案乘起来,这样子做很麻烦,而且求每个区间可能有几个意思也不好求,所以这个方法pass了。
2016-08-01 02:05:16 273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人