- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 【BZOJ 1076】[SCOI2008]奖励关
思路:二进制状压所有的状态,设f[i][j]f[i][j]表示当前已经从1→i−11\to i-1当中得到状态jj,后面进行选择的最大收益。 转移就是枚举之前的状态,枚举当前出现哪一个元素。 ORZ hzwer代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespac
2017-03-31 09:46:21 357
原创 【BZOJ 2002】[Hnoi2010] 弹飞绵羊
分块。 记录每个点到下一块区间需要走的步数,和到达下个区间的哪个点。 时间复杂度:O(qn√)O(q\sqrt n)#include #include #include using namespace std;const int maxn = 200010;int n, m, Size;int k[maxn], bl[maxn], sp[maxn], pt[maxn];int
2017-03-31 09:34:28 186
原创 【BZOJ 1257】[CQOI2007]余数之和sum
题意给出正整数nn和kk,计算j(n,k)=kmod1+kmod2+kmod3+…+kmodnj(n, k)=k \mod 1 + k \mod 2 + k \mod 3 + … + k \mod n的值,其中kmodik mod i表示kk除以ii的余数。 1≤n,k≤1091\le n ,k\le 10^9思路ans=∑i=1nk%i=∑i=1nk−⌊ki⌋×i=nk−∑i=1n
2017-03-30 14:49:54 320
原创 【BZOJ 1833】数字计数
思路:数位dp,先预处理dp数组,然后统计答案。 先计算位数小于当前位的,再枚举第一位,从11到最大值−1-1,后面的每一位,从从00到最大值−1-1。代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;
2017-03-27 10:15:42 292
原创 【学习】动态树 link cut tree
介绍LCT是动态的树链剖分,他用SplaySplay维护重链的信息,并且动态维护重链。 可以支持合并分割操作,并且动态维护树链的信息。 原树中的重链对应的是SplaySplay中的实边,轻链对应轻边,这样一棵树被划分成了若干个SplaySplay。 SplaySplay的中序遍历是从浅到深的顺序。基本的操作Splay-is_root()bool is_root(){retur
2017-03-23 09:24:01 294
原创 【学习】博弈游戏
博弈问题所讨论的博弈问题满足以下条件:玩家只有两个人,轮流做出决策,且操作公平。游戏的状态集有限,保证游戏在有限步后结束.博弈双方都使用最优决策。一个游戏有两个状态,我们称为必胜态和必败态,他们的关系:必胜态表示,从当前状态可以转移到一个必败态。必败态表示,从当前状态无法转移到一个必败态。也就是说,一个状态不是必胜态,就是必败态。Nim取石子游戏问题描
2017-03-22 17:06:59 455
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人