Others
Winterfell30
这个作者很懒,什么都没留下…
展开
-
SGU 275 To xor or not to xor (贪心+高斯消元)
题解从这个数列里面取出一些数,异或最大,求他们的异或值。思路显然要求异或最大我们首先要把这些数表示成二进制形式,然后从高到低按位查找,如果这一位存在一个数是1就取这个数,然后异或之后这一位就是1了。取了这个数之后这个数的低位自然也要取,所以我们用高斯消元回代的形式来维护当前位的异或值。代码#include <stdio.h>#include <string.h>#include <iostrea原创 2016-04-28 13:55:53 · 494 阅读 · 0 评论 -
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 阅读 · 0 评论 -
URAL 1091 Tmutarakan Exams (DP或容斥)
题意给出一个K和S,求从小于S的数里取出一个K元组的gcd大于1的K元组的数量。思路可以dp做,dp的话是经典的计数问题,而且因为数据比较小写起来也比较简单,dp[i][j][k]表示枚举到i时取了j个数此时的gcd为k的个数,则dp[i+1][j+1][gcd(k,i+1)]+=dp[i][j][k],dp[i+1][j][k]+=dp[i][j][k]。 或者容斥,因为所有合数都能用素数来表示原创 2016-05-03 20:40:01 · 445 阅读 · 0 评论 -
CDOJ 1325 卿学姐与基本法 (离散化+区间修改)
题意初始时所有人姿势水平都比较低,然后卿神去给一个区间的人们普及基本法,然后还可以查询某个区间还有多少个人没有被普及基本法。思路因为数据比较大所以我们先离散化一下,注意离散化的小bug(参考poj上的那个海报覆盖问题)。 刚开始全部初始化为0然后update为1,在更新的时候不是很好处理,还是用1表示没学,更新的时候置零比较好处理。代码#include <stdio.h>#include <st原创 2016-05-09 22:54:57 · 1438 阅读 · 0 评论 -
UESTC 594 我要长高 (单调队列优化DP)
题意给出一个序列,没两个之间差值乘C就是亏损的钱数,可以给一些数列以一定的代价变大,不能减小,求增加方案令最后的损失最小。思路令dp[i][j]表示第i个人身高为j时的当前损失。 我们能得到dp[i][j]=min(dp[i−1][k]+abs(j−k)∗C+(x[i]−j)∗(x[i]−j))dp[i][j]=min(dp[i-1][k] + abs(j-k)*C + (x[i]-j)*(x[i原创 2016-05-23 11:19:05 · 1064 阅读 · 0 评论