- 博客(212)
- 收藏
- 关注
原创 BZOJ 1415 [Noi2005]聪聪和可可【概率dp】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1415题意:给定无向图,以及聪聪和可可的初始位置。聪聪要抓可可,聪聪先走,可可后走。聪聪一个单位时间内可以走一到两步,每次都是选择最靠近可可的点走,如果有多个距离可可相同的点则选择标号最小的。可可单位时间只能走一步,并且等概率的选择附近相邻的点或者呆在原地不动。问平均聪聪走多少个单位时间可以追
2016-08-02 10:21:42
1245
原创 UVA 11722 Joining with Friend【概率】
题意:给定两个人火车到站的时间范围,以及火车的停留时间,问两个人相遇的概率。分析:好经典的高中数学题(?) 放在坐标系中,即转化为区域|y−x|≤w|y-x| \le w与横坐标[t1,t2|[t1,t2|,纵坐标[s1,s2][s1,s2]围成的矩形区域的面积交是多少。 两条直线与矩形边围成的阴影区域面积不好算,而阴影面积之外的区域基本都是三角形或者梯形,好算很多,所以我们对ww进行分类讨论,
2016-08-01 16:38:11
752
原创 UVA 11427 Expect the Expected【期望】
题意:每天晚上玩纸牌,每局获胜的可能性为pp,如果当晚玩到某一局获胜局数比例大于pp则停止游戏睡觉去第二天再玩,否则继续玩。每晚最多玩nn局,如果nn局玩完获胜比例仍然达不到pp,则去睡觉以后再也不玩。问晚上玩牌的期望天数。分析:首先明确每晚玩牌的情况是互相独立的。 定义状态dp[i][j]:=一天晚上,玩了i局,获胜j局的概率,其中获胜比例均小于等于pdp[i][j]:=一天晚上,玩了i局,获胜
2016-08-01 11:58:54
808
原创 UVA 11021 Tribbles【概率】
题意:最初有kkk只毛球,每只毛球只能活一天,给定每只毛球临死前可以产生后代的概率,求问mmm天后所有毛球全部死亡的概率。不足mmm天死亡的也算上。分析:首先明确每只毛球各自独立,那么我们实际上只要分析一只毛球的情况,最后全部乘起来即可。 设dp[i]:i天后,毛球全部死亡的概率dp[i]:i天后,毛球全部死亡的概率 那么有dp[i]=p0+p1∗dp[i−1]+p2∗dp[i−1]2+...+
2016-08-01 10:02:47
863
原创 博弈小结
最近刷了几道比较水的博弈题,对于博弈题多少有点感觉了,先总结一下,等填完其他坑,再刷下sgsg函数,到时候再来补充。博弈基本知识的介绍 http://blog.csdn.net/lionel_d/article/details/43939605#commentspoj 1067 取石子游戏 裸威佐夫博弈 poj 1740 A New Stone Game 深入体会博弈中的制造对称状态
2016-07-31 23:13:39
793
原创 HDU 3389 Game【阶梯博弈】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3389题意:nn个盒子,编号1−n1-n排列,每个盒子都有若干卡片,每次对于满足B<A,(A+B)%2=1且(A+B)%3=0B<A ,(A+B)\%2=1 且(A+B)\%3=0的两个盒子,可以将AA中任意数目的卡片移到BB中,两人轮流操作,问最后谁无法操作?分析:首先手算一下小数据,我们会发现最终盒子
2016-07-31 20:58:13
758
原创 POJ 2311 Cutting Game【SG函数,子游戏终态】
题目链接:http://poj.org/problem?id=2311题意:给定一张纸,由w×h(2≤w,h≤200)w \times h(2 \le w,h \le 200)个方格组成,两个人轮流横着或者竖着剪一刀,接下来在剪完的所有纸中选择一张继续剪,问谁最先剪出1×11 \times 1的方格。分析:假设(w,h)(w,h)的纸剪一刀之后变成(w1,h1),(w2,h2)(w_1,h_1),
2016-07-30 23:47:51
1051
2
原创 POJ 1740 A New Stone Game【博弈】
题目链接:http://poj.org/problem?id=1740题意:nn堆棋子,每次可以从一堆中拿出任意多个任意分配到其他非0的堆中,谁没有棋子可拿谁输,问先手是否赢。分析:好智障啊,题意就没搞清楚,一直以为是拿出来的只能放到一个非0堆中,其实是随意放在任何非0堆中!这很关键! 博弈的关键做出对称状态后再完全模仿对手 后手如果有条件完全模仿先手的状态,那么后手一定会赢。 如果堆数为偶数
2016-07-30 17:01:55
762
原创 UVA 10828 Back to Kernighan-Ritchie【期望+高斯消元】
题意:给出类似程序控制流程图,从每个结点出发到每个后继结点的概率均相等。当执行到没有后继结点的结点时,程序终止。程序总是从1号结点开始,给定若干查询,求每个结点的期望执行次数。分析:大白书上的例题。 设dp[i]dp[i]表示期望执行次数,out[i]out[i]表示该点的出度,那么一个子节点的期望次数就是父节点的期望数次乘上从父节点走到该结点的概率即出度的倒数。 那么我们就可以得到各个相连结点
2016-07-28 11:14:47
636
原创 LA 3704 Cellular Automaton【循环矩阵,快速幂】
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1705题意:给定n(1≤n≤500)n(1 \le n \le 500)个格子,圆排列,规定每次操作将每个格子的值变为到他的距离不超过dd的所有格子在操作之前的值之和模m(1≤m≤10
2016-07-27 20:19:44
826
原创 HDU 5735 Born Slippy【巧妙暴力枚举】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5735题意:给定树及每个点的权值,对于每个节点从该结点开始从下到上找若干祖先结点,使得得到的序列中相邻结点之间对于特定的位运算的和最大。求每个节点得到的结果加上自身权值的值。分析:首先我们可以得到最直接的状态定义dp[i]:=到达i结点时能得到的最大值dp[i]:=到达i结点时能得到的最大值。 状态转移
2016-07-24 10:09:59
656
原创 BZOJ 1026 [SCOI2009]windy数【数位DP】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1026题意:windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道, 在A和B之间,包括A和B,总共有多少个windy数?分析:比较基础的数位dp, 设dp[i][j][k][m]dp[i][j][k][m],其中kk标记是否与
2016-07-19 08:29:32
563
原创 HDU 5722 Jewelry【线段树,矩形面积并】
题意:给定序列,求满足区间内存在一种珍珠正好出现xx次的区间个数。分析:枚举左端点,找右端点的可行区间。 对于每一个珍珠,从头开始枚举左端点,对于每一个左端点ll,维护满足区间[l,r][l,r]内该种珍珠正好出现xx次的右端点rr,由于存在一个连续的区间内,区间内珍珠的数目是不变的,那么我们把这些得到的满足条件的区间并起来, 就得到了左端点对应的可行右端点的区间,求区间并我们可以用线段树,类似求
2016-07-18 19:41:26
514
原创 Codeforces 691E Xor-sequences【矩阵快速幂,好题】
题目链接:http://codeforces.com/problemset/problem/691/题意:给定序列,从序列中选择k(1≤k≤1e18)k(1 \le k \le 1e18)个数(可以重复选择),使得得到的排列满足xi与xi+1{x_i} 与{x_{i+1}}异或的二进制表示中11的个数是33的倍数。问长度为kk的满足条件的 序列有多少种?分析:首先每个元素自己构成一个长度为11的满足
2016-07-15 21:01:26
2013
原创 HDU 4777 Rabbit Kingdom【树状数组】
题意:给定序列,若干询问,求给定询问区间中互质的数的个数。分析:智商太低理解了好久好久,最后还是看别人代码明白的。 设l[i]l[i]为位置为ii的元素左边第一个与w[i]w[i]不互质的数,r[i]r[i]为右边第一个与w[i]w[i]不互质的数,那么(l[i],r[i])(l[i], r[i])区间内的所有数均与w[i]w[i]互质。 假设我们从头开始扫,为了防止重复计算,我们不管ii左边的
2016-07-12 12:53:30
712
原创 HDU 4778 Gems Fight!【博弈+DP】
这个题真的想得超级久都没有思路,想明白了又因为位运算少加个括号调试了将近一个小时,大家都秒出的题我又基本是最后几个交的。今天各种智商不在线。伤心难过受打击。。题意:有B(0≤B≤21)B(0\le B \le 21)个背包,有G(0≤G≤8)G(0 \le G \le 8)种颜色的宝石,这两个人轮流选择某一个背包,把这个背包包里的宝石放到一个共享的地方里,当这里某一种颜色的宝石等于SS,那么就可以产
2016-07-11 20:59:02
604
原创 Training Day2
马克飞象莫名其妙无法同步到印象笔记,现在这里保存一下吧。Training Day2@(ACM集训)A.How far away ?(Tarjan LCA)题意:无向图,给定边及边权重,任意两点之间都有一条唯一的道路,道路上每个点只能出现一次。给定询问,求询问的结点之间的距离。分析:路上每个点只能出现一次,可以转化成有根树,问题也即为求最近公共祖先问题~~ 这里每条边加上了距离,求出LCA后,用u、v
2016-07-09 10:51:17
2613
原创 HDU 5046 Airport【DLX重复覆盖】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5046题意:给定nn个城市的坐标,要在城市中建kk个飞机场,使城市距离最近的飞机场的最长距离最小,求这个最小距离。分析:最小化最大值,显然二分最大距离。然后我们将距离在范围内的两个城市建边,看能否选出kk个城市,使得覆盖了所有城市。 将点之间的关系转化成01矩阵的覆盖问题,重复覆盖,建好边套个DLXDL
2016-07-09 10:43:06
852
原创 Codeforces 622C Not Equal on a Segment 【线段树 Or DP】
题目链接:http://codeforces.com/problemset/problem/622/C题意:给定序列,若干查询,每个查询给定区间和tt,输出区间内任意一个不等于tt的元素的位置。分析:最初没看样例直接钦定输出每个不等于tt的元素位置,结果怎么想都是n2n^2复杂度的,后来看了样例才发现是输出任意一个。。 对于一个区间,如果区间最大值和最小值相等,那么该区间元素值全部相同,那么我们维
2016-07-06 22:49:17
589
原创 UVA 10635 Prince and Princess【LCS 问题转换为 LIS】
题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=19051题意:有两个长度分别为p+1p+1和q+1q+1的由1到n21到n^2之前的整数组成的序列,每个序列的元素各不相等,两个序列第一个元素均为1。求两个序列的最长公共子序列。分析:LCSLCS的复杂度为O(n2)O(n^2),这题n最大为250 * 250,必
2016-06-18 21:19:19
602
原创 LA 2995 Image Is Everything
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=996题意:有一个n∗n∗nn * n * n个不同颜色的单位正方体(每个单位正方体六个面颜色相同)组成的大正方体,现在其中一些单位正方体已经缺失,给定该大正方体的六视图,求这个物体剩下
2016-06-18 20:30:29
435
原创 LA 3708 Graveyard
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1709题意:一个周长为10000的圆上等距离分布n个点,新增加m个点, 若使所有m+nm + n个点等距离的分布在圆上,求原来n个点的最小移动距离。分析:看下样例,很容易想到是固定一个
2016-06-18 17:03:31
592
原创 HDU 5212 Code【莫比乌斯反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5212题意:给定序列,1≤i,j≤n1 \le i,j \le n,求gcd(a[i],a[j])∗(gcd(a[i],a[j])−1)gcd(a[i],a[j]) * (gcd(a[i], a[j]) - 1)之和。分析:同样我们设 f(d)f(d):满足gcd(x,y)=dgcd(x,y)=d且x,
2016-05-30 23:05:02
1283
原创 HDU 4746 Mophues【莫比乌斯反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4746题意:1≤x,y≤n1\le x,y \le n , 求gcd(x,y)gcd(x,y)分解后质因数个数小于等kk的(x,y)(x,y)的对数。分析:莫比乌斯反演。 还是一个套路,我们设 f(d)f(d):满足gcd(x,y)=dgcd(x,y)=d且x,yx,y均在给定范围内的(x,y)(x,
2016-05-30 21:42:16
2071
原创 SPOJ 7001 VLATTICE【莫比乌斯反演】
题目链接:http://www.spoj.com/problems/VLATTICE/题意:1≤x,y,z≤n1\le x,y,z \le n,问有多少对(x,y,z)(x,y,z)使得gcd(x,y,z)=1gcd(x,y,z)=1分析:欧拉搞不了了,我们用莫比乌斯来搞一搞。 同样,我们设 f(d)f(d):满足gcd(x,y,z)=dgcd(x,y,z)=d且x,y,zx,y,z均在给定范围
2016-05-30 17:44:25
630
原创 BZOJ 2818 GCD【欧拉函数】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2818题意:给定整数N,求1<=x,y<=N1<=x,y<=N且Gcd(x,y)Gcd(x,y)为素数的数对(x,y)(x,y)有多少对?分析:求gcd(x,y)=p(p为质数)的(x,y)对数实际上就是求gcd(x/p,y/p)=1gcd(x,y)=p(p为质数)的(x,y)对数实际上就是求
2016-05-30 17:13:31
474
原创 HDU 1695 GCD【莫比乌斯反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695题意:1≤x≤m,1≤y≤n1\le x \le m, 1 \le y \le n ,求gcd(x,y)=kgcd(x, y) = k的(x,y)(x,y)的对数。分析:首先根据莫比乌斯反演我们有 F(n)=∑n|df(d)⇒f(n)=∑n|dμ(d/n)F(d)F(n) = \sum_{n|d}
2016-05-29 22:55:26
660
原创 Codeforces Round #354 (Div. 2)
比赛链接:A. Nicholas and Permutation分析:水题,找到1和n到两边距离的最大值即可。代码:/*--Codeforces 345 div2--Create by jiangyuzhu--2016/5/26*/#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#i
2016-05-27 22:52:11
478
原创 CDOJ 1217 The Battle of Chibi【树状数组+dp】
题目链接:http://acm.uestc.edu.cn/#/problem/show/1217题意:给定长度为n的序列,求长度为m的严格上升子序列个数。分析:dp 状态转移方程:枚举长度和他前面的比他小的元素进行状态的转移,时间复杂度O(n3)O(n^3)。 采用树状数组进行优化,我们就可以O(logn)O(logn)获得他前面比他小的元素的长度为ii的上升序列个数。 由于a[i]a[i]很
2016-05-19 15:37:54
386
原创 CDOJ 1222 Sudoku【暴力】
题目链接:http://acm.uestc.edu.cn/#/problem/show/1222题意:给定矩阵,把空位置填上1234使得四个2*2小矩阵和4行4列均恰有1.2.3.4分析:数据那么小,暴力不能怂。。。代码:/*--I AM SUPER Robbish--Created by jiangyuzhu--2016/5/19*/#include<cstdio>#include<i
2016-05-19 14:11:47
474
原创 Codeforces 675D Tree Construction【构造,BST】
题目链接:http://codeforces.com/contest/675/problem/D题意:给定数列,依次插入二叉树,求子节点的父节点。分析:根据二叉树的性质,我们可以找到大于这个数的最小值和小于这个数的最大值,这两个数即为该数的父节点,那么如果结点对应的儿子结点为空,直接放进去即可。注意由于这两个数的性质不存在两个结点都没有空的子节点的情况。代码:/*On a hill is a tr
2016-05-17 17:48:16
704
原创 Codeforces 675C Money Transfers【贪心】
题目链接:http://codeforces.com/contest/675/problem/C题意:给定几个数,有正有负,每个数可以向相邻的数转移,问最少的转移次数使得最后所有数均为0。分析:我们可以将数列化为几个连续的区间,其中每个区间的和为0,且在区间长度为K的区间中,操作数为K-1,我们就是要最大化这样的区间个数。 我们可以维护一个前缀和,这样两个相同的前缀之间的区间的和即为0。代码:/*
2016-05-17 17:41:04
1065
原创 均分纸牌及糖果传递问题
题目链接:http://codevs.cn/problem/1098/题意:有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。 现在要求找出
2016-05-17 17:03:01
959
原创 SPOJ 357 QTREE【树链剖分 + 线段树】
前几天看漆子超的论文,可是只看了树的分治没有看熟练剖分那里。(熟练剖分可以看做链分治) 今天刚好看了卿学姐的树链剖分视频,照着模板写了道入门题。题目链接:http://www.spoj.com/problems/QTREE/题意:给定一棵树,及树边端点的权值,有以下两种操作:将第ii个边的权值改为tit_i查询结点a,ba,b之间路径上的边的最大值。分析:很全面的讲解资料 http://bl
2016-05-13 23:44:37
638
原创 Codeforces 635E Package Delivery【贪心】
题目链接:http://codeforces.com/contest/635/problem/E题意:从坐标为0的地方出发到坐标为dd的终点,初始油箱是满的,途中有若干加油站,坐标为xixi,每加一个单位的油收pipi元,油箱最多装n个单位,问到达目的地最少需要多少元。分析:之前在poj做过一个类贪心,是每个加油站油量有限,问最少需要经过多少加油站。 那一道贪心的原则是“直到走不到下一站,再在这个
2016-05-10 18:49:46
1206
原创 Codeforces635C XOR Equation【数学】
题目链接:http://codeforces.com/contest/635/problem/C题意:给定两个数的和s及异或x,求两个数的可能情况。分析:我们有公式a+b=a a + b = a & b∗2+ab * 2 + a ^ bb 这样对于与和异或的结果一位一位的来考虑即可。 注意:题目特别强调Two positive integers a and b,所以在ss与xx相等时,我们要减
2016-05-10 14:37:06
464
原创 Codeforces 635D Factory Repairs【树状数组】
又是看了很久的题目。。。题目链接:http://codeforces.com/contest/635/problem/D题意:一家工厂生产维修之前每天生产b个,维修了k天之后每天生产a个,维修期间不生产。 若干操作: 1. 1 d aa 第d天要求aa个订单,一个订单对应一个物品,必须在这一天中完成。 2. 2 d 第d天开始维修,最终能得到多少订单。分析:树状数组分别维护维修前和维修后得到的
2016-05-10 13:14:00
922
原创 ZOJ 1112 Dynamic Rankings【动态区间第K大,整体二分】
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1112题意:求动态区间第K大。分析:把修改操作看成删除与增加,对所有操作进行整体二分。代码:#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define pr(x) c
2016-05-09 21:59:57
1685
原创 Codeforces 665E Beautiful Subarrays【01trie树】
题目链接:http://codeforces.com/contest/665/problem/E题意:求异或值大于给定K的区间个数。分析:首先我们可以得到区间前缀的异或值。 这样我们将这个前缀M和K一起走trie树,如果该位K的值为0,那么无论走M最后的异或值都不会比K小,所以直接加上另一边的子树大小,然后继续沿着当前边走。如果该位K的值为1,那么想要大于等于K必须沿着另一边贪心的走。代码:#in
2016-05-09 10:58:43
987
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人