上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页
摘要: 求点1到点n经过的路径权值异或和的期望。 考虑按位计算,对于每一位来说,令dp[i]表示从i到n的异或和期望值。 那么dp[i]=sum(dp[j]+1-dp[k]).如果w(i,j)这一位为0,如果w(i,k)这一位为1.边界为dp[n][n]=0. 那么求解每个方程组就得到了每一位的贡献。另外注 阅读全文
posted @ 2017-04-21 16:56 free-loop 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 这题搞了我一天啊。。。拍不出错原来是因为极限数据就RE了啊,竟然返回WA啊。我的线段树要开8倍才能过啊。。。 首先可以发现除了那个加边操作,其他的操作有点像线段树啊。如果我们把每次询问的联通块都放在一个区间的话,那么就可以用线段树维护了啊。 于是我们只需要用带权并查集把联通块串成一条链的形式。就可以 阅读全文
posted @ 2017-04-21 15:10 free-loop 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 实际上,对于位数相同的连续段,可以用矩阵快速幂求出最后的ans,那么题目中一共只有18个连续段。 分段矩阵快速幂即可。 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm 阅读全文
posted @ 2017-04-20 15:48 free-loop 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题解来源:http://www.cnblogs.com/jianglangcaijin/p/3799494.html 最后必然是走了一条链,或者是一个环(一直绕),或者是一条链加一个环。设f[i][j][k]表示从点j走了i步到达节点k的最大幸福度。那么f[i][j][j]就表示在绕环。那么在这个环 阅读全文
posted @ 2017-04-19 19:37 free-loop 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 要使得每个2*2的矩形有奇数个红色,如果我们把红色记为1,蓝色记为0,那么我们得到了这2*2的矩形里的数字异或和为1. 对于每个方格则有a(i,j)^a(i-1,j)^a(i,j-1)^a(i-1,j-1)=1.由这些方程可以推出对于每个方格: 如果i,j都是偶数,则有a(i,j)^a(1,1)^a 阅读全文
posted @ 2017-04-19 15:05 free-loop 阅读(184) 评论(0) 推荐(0) 编辑
摘要: Rank:56/147. 开场看B,是个线段树区间合并,花了2hour敲完代码。。。再花了30min查错。。发现push_down有问题。改了就AC了。 然后发现A过了很多人。推了个公式,发现是个分段函数。取个中间点代进去结果就AC了。 C好像也很水?看了看原来是个傻逼BFS。A了。 F化解了一下就 阅读全文
posted @ 2017-04-18 14:36 free-loop 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 模拟退火的步骤: 确定初始解集S和控制参数初值delta开始,对当前解重复的产生新解,并选择接受或舍弃,并逐步衰减delta值,算法终止后可以得到一组解集。答案可以最终解集的最优解。 对于这道题,选择矩形内的一点,使得满足与给定点集的最小距离最大。同样可以用模拟退火算法来解决。 # include 阅读全文
posted @ 2017-04-15 19:21 free-loop 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 一个很好玩的概率算法。 总是接受比当前解的邻域里更优的解,以一个类似于退火的概率接受邻域里次的解。 # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # 阅读全文
posted @ 2017-04-15 10:49 free-loop 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Dancing Links是使用双向循环十字链表的数据结构通过dfs来实现解决精确覆盖问题的强有力的武器。 而数独问题可以转化为精确覆盖问题。 通过将每个限制转化为列。每个决策转化为行。 建模型:行数为9*9*9,数独中,第i行j列放数字k的状态存储在图中第(i*9+j)*9+k行中列数为9*9+9 阅读全文
posted @ 2017-04-14 15:46 free-loop 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 首先可以对n个目标串单独进行处理。 对于每个目标串,考虑把模式串按'*'进行划分为cnt段。首尾两段一定得于原串进行匹配。剩下的cnt-2段尽量与最靠左的起点进行匹配。 对于剩下的cnt-2段。每段又可以通过‘?’划分为k个子串。对每个子串求出hash值。然后通过枚举起点与目标串的某个区间的hash 阅读全文
posted @ 2017-04-14 14:22 free-loop 阅读(407) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页