标签 - 解题记录

? 解题记录 ? ? SPOJ ? ? 后缀数组 ?    2018-12-05 23:04:22    462    0    0
后缀数组模板题,直接看注释就好了 #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; const int maxn = 1e5 + 5; char s[maxn]; LL ans; int SA[maxn], SA2[maxn], RK[maxn], tot[maxn], H[maxn]; //SA : 第一关键字排名为i的开头下标 //SA2 : 第二关键字排名为i的开头下标 //RK : 原字符串中下标为i后缀的
? 解题记录 ? ? LOJ ? ? 动态规划 ? ? 期望概率 ? ? 状态压缩 ? ? FMT|FWT ?    2018-12-05 21:25:10    897    0    0
链接:戳轻点 >_< 神仙题啊! 还不自量力的想了半天。 看完题解发现自己更本没资格做这道题…… 首先貌似有个没分的高斯消元? 嗯……全部都至少走一遍的期望根本不会算啊。 我们先来看一个很好理解的结论: 最值反演:   考虑任意集合S" role="presentation" style="position: relative;">SSS,元素i" role="presentation" style="position: relative;">iii有点权wi" role="presentation" style="position: r
? 解题记录 ? ? LOJ ? ? 动态规划 ? ? 状态压缩 ? ? 组合数 ?    2018-12-05 20:33:53    880    0    0
题目地址:呀,戳轻点qwq 一开始自己就想错了,本来以为只要选择的点集定了,那么覆盖状态也就定了。 但是发现并不对,和点选择的顺序还有关。 …… 我们去Orz" role="presentation" style="position: relative;">OrzOrzOrz题解吧。 发现自己仍然是没有完全理解增量的构造方式。 考虑到选择点的顺序其实是和答案有关的,我们考虑对整个操作序列增量的过程进行dp" role="presentation" style="position: relative;">dpdpdp。 设f(i,S)" role="presenta
? 解题记录 ? ? LOJ ? ? 组合数 ? ? 动态规划 ?    2018-12-05 20:07:46    717    0    0
题目地址:大家好,我是"题目地址" 想比较不容易偏,但写着细节贼多的题。 首先考虑最优策略,注意到题目给出强化牌的wi&gt;1" role="presentation" style="position: relative;">wi>1wi>1wi>1的条件。 因此,优先打出最大的强化牌一定是最优的,考虑选择了两张最大的攻击牌,仍然与选择最小的强化牌等价。 接下来我们考虑选牌的情况: 设拿到了强化牌c" role="presentation" style="position: relative;">ccc张,攻击牌m&#x2212;c
? 解题记录 ? ? LOJ ? ? 线段树合并 ? ? 动态规划 ?    2018-12-05 19:28:45    508    0    0
题目链接:https://loj.ac/problem/2537 考虑到题目是一颗二叉树,有一个简单的O(N^2)的DP做法。f(i,j)表示i号点取值为数集中第j大数的概率,每一次我们从子树合并上来。j被取到有两种情况:j更大并且当前选择的是最大值 j更小并且当前选择的是最小值分情况讨论,发现要转移需要一个选到比j小的值的概率和(比j大的可以直接用1减比j小的)。那么我们维护两个前缀和(对两边的元素分别计算),即可完成一次合并。 如何优化这个算法呢?假设两边子树可以产生的j值集合分别为A,B。考虑A值域上这样连续的一段数:满足不存在B[i]使得A[l]<=B[i]<=A
? 解题记录 ? ? HDU ? ? 动态规划 ? ? FMT|FWT ?    2018-11-25 17:13:36    584    0    0
Problem Description Byteasar has a tree T with n vertices conveniently labeled with 1,2,...,n. Each vertex of the tree has an integer value vi.The value of a non-empty tree T is equal to v1⊕v2⊕...⊕vn, where ⊕ denotes bitwise-xor.Now for every in
? 解题记录 ? ? 洛谷 ? ? 半平面交 ?    2018-11-25 16:57:21    720    0    0
题目描述沫沫最近在玩一个二维的射箭游戏,如下图 1 所示,这个游戏中的 x 轴在地面,第一象限中有一些竖直线段作为靶子,任意两个靶子都没有公共部分,也不会接触坐标轴。 沫沫控制一个位于(0,0)的弓箭手,可以朝 0 至 90?中的任意角度(不包括 0度和 90度),以任意大小的力量射出带有穿透能力的光之箭。由于游戏中没有空气阻力,并且光之箭没有箭身,箭的轨迹会是一条标准的抛物线,被轨迹穿过的所有靶子都认为被沫沫射中了,包括那些 只有端点被射中的靶子。 这个游戏有多种模式,其中沫沫最喜欢的是闯关模式。 在闯关模式中,第一关只有一个靶 子,射中这个靶子即可进入第二关,这时在第一关的基础上会出现另外
? 解题记录 ? ? 洛谷 ? ? 半平面交 ?    2018-11-25 16:53:54    747    0    0
题目描述这里有一辆赛车比赛正在进行,赛场上一共有N辆车,分别称为个g1,g2......gn。赛道是一条无限长的直线。最初,gi位于距离起跑线前进ki的位置。比赛开始后,车辆gi将会以vi单位每秒的恒定速度行驶。在这个比赛过程中,如果一辆赛车曾经处于领跑位置的话(即没有其他的赛车跑在他的前面),这辆赛车最后就可以得奖,而且比赛过程中不用担心相撞的问题。现在给出所有赛车的起始位置和速度,你的任务就是算出那些赛车将会得奖。 输入输出格式输入格式:   第一行有一个正整数N表示赛车的个数。接下来一行给出N个整数,按顺序给出N辆赛车的起始位置。再接下来一行给出N个整数,按顺序给出N辆赛车的恒
? 解题记录 ? ? UOJ ? ? 生成函数 ? ? FFT|NTT ? ? 牛顿迭代 ?    2018-11-25 15:19:16    632    0    0
(题目背景)是没有的。 你有一个01" role="presentation" style="position: relative;">010101序列,初始时序列为空。你可以对序列进行两种操作: 在序列末端插入一个0" role="presentation" style="position: relative;">000。 在序列中删去一个子序列,并在序列末端插入一个1" role="presentation" style="position: relative;">111。这里对子序列的选取有一定限制,设子序列中包含x" role="presentation"
? 解题记录 ? ? 洛谷 ? ? 搜索 ?    2018-11-13 10:10:52    540    0    0
题目描述Mayan puzzle是最近流行起来的一个游戏。游戏界面是一个7 行 5×5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上。游戏通关是指在规定的步数内消除所有的方块,消除方块的规则如下: 1 、每步移动可以且仅可以沿横向(即向左或向右)拖动某一方块一格:当拖动这一方块时,如果拖动后到达的位置(以下称目标位置)也有方块,那么这两个方块将交换位置(参见输入输出样例说明中的图6到图7 );如果目标位置上没有方块,那么被拖动的方块将从原来的竖列中抽出,并从目标位置上掉落(直到不悬空,参见下面图1 和图2); 2