- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 POJ 3071 Football (概率DP)
题意有2n2^n个队伍,每次相邻的两个比赛一轮一轮淘汰求胜利概率最大的队伍。思路令dp[i][j]表示第i支队伍在第j轮胜利的概率,那么显然答案就是max(dp[i][n])max(dp[i][n]),然后dp到枚举他第j轮的对手卡住了,然后画了一个树形的赛程图就发现i在第j轮的对手实际上是以从下往上第j层为节点的i所在的那个子树的除了第一轮被i淘汰的队伍之外的其他队伍。 然后发下这个之后就能从二
2016-04-29 15:08:58 409
原创 POJ 3744 Scout YYF I Scout YYF I (递推+矩阵快速幂)
题意有n个地方有地雷,初始站在1处,有p的概率往前走1步,1-p的概率往前走2步,求安全通过的概率。思路首先我们能想到的是直接递推即dp[i]=p∗dp[i−1]+(1−p)∗dp[i−2]dp[i]=p*dp[i-1]+(1-p)*dp[i-2]然后矩阵快速幂加速一下,但是这样做中间的地雷很难处理。 因为n很小我们就分段求,对每一个地雷求从前一个地雷到通过的概率,比如求通过第x个地雷的概率就是从
2016-04-29 12:14:29 528
原创 Codeforces 669E Little Artem and Time Machine (离散化树状数组)
题意给出一个multiset,可以对他进行三种操作: 1.在t时间增加一个x 2.在t时间删除一个x 3.查询t时间x的个数并输出思路题意看了很久很懂= =,看懂之后决定朴素BIT来一发,因为有时间和x两个维度,且都是1e9,选择其中任意一个离散化一下就可以用map来维护sum了,然后过了。时间390ms,内存50000+。。。代码#include <stdio.h>#include <st
2016-04-28 21:59:27 603
原创 Codeforces 669D Little Artem and Dance (脑洞)
题意给出一个1到n的序列,对他有两个操作: 1.整体向右移动x格子 2.奇偶位的数字互换 求经过q次操作之后的数字序列。思路显然这题是要O(q)来做的,从第一组样例能发现虽然整体在变,但是相邻的两个数是始终在一起的,但是这并不是正解,因为当移动的位数是奇数的时候再经过奇偶互换就不挨着了。 然后我随便造一个样例,发现不管怎么变奇偶性相同的相邻的数都是隔着一个数的顺序排列的,然后想一下变化过程的
2016-04-28 21:50:32 710
原创 Codeforces 669C Little Artem and Matrix (模拟)
题意对一个矩阵有三种操作 1.第row行循环右移x位 2.第col列循环下移x位 3.告诉你第row行的第col列的数是x。 要求构造出符合操作的原矩阵。思路因为数据很小,直接暴力就可以了,按照操作倒着模拟一遍,有3操作的就填数,没有的就为0。代码#include <stdio.h>#include <string.h>#include <iostream>#include <algo
2016-04-28 21:34:51 697
原创 SDUT 2878 Circle (高斯消元)
题意初始时站在0点,每次有0.5的几率左移一格或者右移一格,求移动到x格的期望。思路显然我们能写出来Exp[i]=0.5\*Exp[i−1]+0.5\*Exp[i+1]+1Exp[i] = 0.5\*Exp[i-1]+0.5\*Exp[i+1]+1 这样的式子我们能写出n个,然后这个式子转化一下变成Exp[i]−0.5\*Exp[i−1]−0.5\*Exp[i+1]=1Exp[i]-0.5\*Ex
2016-04-28 16:45:54 459
原创 SGU 275 To xor or not to xor (贪心+高斯消元)
题解从这个数列里面取出一些数,异或最大,求他们的异或值。思路显然要求异或最大我们首先要把这些数表示成二进制形式,然后从高到低按位查找,如果这一位存在一个数是1就取这个数,然后异或之后这一位就是1了。取了这个数之后这个数的低位自然也要取,所以我们用高斯消元回代的形式来维护当前位的异或值。代码#include <stdio.h>#include <string.h>#include <iostrea
2016-04-28 13:55:53 495
原创 POJ 1681 Painter's Problem (高斯消元)
题意和POJ的1222差不多,把一个格子变色然后相邻的4个也会变色,求令其全部变成黄色需要的最少步数。思路POJ1222当时直接状态压缩枚举过的,这题数据也比较小,应该可以状压DP来做,不过复杂度而论当然还是高斯消元要好。 我们可以先预处理出一个n2∗n2n^2*n^2的方程组然后搞死小圆(误 消元的时候求出自由变元存在数组里,然后状态压缩来枚举自由变元求一下利用这些自由变元求出目标状态(全0)
2016-04-26 20:53:01 389
原创 POJ 1830 开关问题 (01高斯消元)
题意有n个开关,按动按钮可以改变灯泡的开关状态,有些开关之间是有联系的,给出初始状态和目标状态,求是否可行,如果可行,求方案数目。思路我们可以另矩阵[x1,x2...xn][x_1,x_2...x_n]来表示解集,即第i个开关需要按动的次数,最后的状态即[b1,b2...bn][b_1,b_2...b_n],原状态是[a1,a2...an][a_1,a_2...a_n],即A*X=B,这里没有要求解
2016-04-26 14:38:50 477
原创 Codeforces 282E Sausage Maximization (Trie)
题意给一些数字,求前缀异或和后缀异或的最大值,前缀和后缀不能有交集。思路枚举每一个后缀,如果用朴素算法就要枚举每一个前缀求最大值。 我们可以后缀往后枚举的时候,从之前的前缀里找到异或最大的,然后前缀加一个数的长度之后继续插入。代码#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#incl
2016-04-26 14:20:38 489
架构整洁之道
2018-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人