【LOJ#2687】Vim(动态规划)】的更多相关文章

[LOJ#2687]Vim(动态规划) 题面 LOJ 题解 发现移动的路径一定是每次往后跳到下一个某个字符的位置,然后往回走若干步,删掉路径上的所有\(e\),然后继续执行这个操作. 这里稍微介绍一下线头\(dp\),大概是把转移的路径画出来,最终要求能形成一个环,而每一个需要\(dp\)的位置代表一个点,我们要从一个点转移过来,再从这个点转移出去,一进一出形成了一段弧线,我们要维护的就是这个弧线的形态.更加详细的可以参考这里. 因为我们的操作如此,所以我们把每次移动所跨越的区间做一个覆盖,不难…
[LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). 那么怎么求解每个集合的\(min\)呢. 显然以起点为根节点,如果点集中一个点在另外一个点的子树内,显然不需要考虑,索性丢掉.考虑剩下的点,把他们的子树丢掉(要访问子树肯定要访问到某个点),那么剩下的点直接扣下来做一个高斯消元就可以求出到达每个点的期望,那么\(min\)就求出来. 设\(f[S]\…
[LOJ#6074]子序列(动态规划) 题面 LOJ 题解 考虑一个暴力\(dp\). 设\(f[i][c]\)表示当前在第\(i\)位,并且以\(c\)结尾的子序列个数. 那么假设当前位为\(a\),强制把\(a\)接在所有出现过的子序列后面,再加上一个单独的\(a\). 也就是\(f[i][a]=\sum_j f[i-1][j]\),其他的\(f[i][k]=f[i-1][k]\). 显然这样一个转移是可以写成矩阵形式的,预处理矩阵的前缀和和矩阵逆的前缀和就可以很方便的计算答案,这样子的复杂…
[LOJ#575][LNR#2]不等关系(容斥,动态规划,分治FFT) 题面 LOJ 题解 一个暴力\(dp\),设\(f[i][j]\)表示考虑完了前\(i\)个位置,其中最后一个数在前面所有数中排名是第\(j\)大,那么转移的时候枚举一下当前数是第几大,并且满足不等式的限制就可以了,然后拿前缀和优化一下就可以做到\(O(n^2)\). 我们把所有连续的<看成一段,这样子题目就变成了每次要选出一段连续的上升序列,然后相邻两个连续段之间必须满足前一段的末尾要大于后一段的开头. 显然这个大于号是不…
题目传送门 传送门 题目大意 有一个位置数列,给定$n$条线索,每条线索从某一个位置开始,一直向左或者向右走,每遇到一个还没有在线索中出现的数就将它加入线索,问最小的可能的数列长度. 依次从左到右考虑每一位上填的数. 用$f_{L, a, R, b, S}$表示正在满足向右走的线索是$L$,前$a$个字符已经满足,正在满足向左走的线索是$R$,前$b$个字符还没有满足,还未被考虑的线索集合是$S$. 主要有两种转移: 填下一个字符 如果两个线索下一个要填的字符相同,那么直接填 如果不同则还需判断…
有意思的可做dp题:细节有点多,值得多想想 题目描述 在逃亡者的面前有一个迷宫,这个迷宫由 nnn 个房间和 n−1n-1n−1 条双向走廊构成,每条走廊会链接不同的两个房间,所有的房间都可以通过走廊互相到达.换句话说,这是一棵树.逃亡者会选择一个房间进入迷宫,走过若干条走廊并走出迷宫,但他永远不会走重复的走廊.在第 iii 个房间里,有 FiF_iF​i​​ 个铁球,每当一个人经过这个房间时,他就会受到铁球的阻挡.逃亡者手里有VVV个磁铁,当他到达一个房间时,他可以选择丢下一个磁铁(也可以不丢…
题目传送门 传送门 想抄一个短一点ddp板子.然后照着Jode抄,莫名其妙多了90行和1.3k. Code /** * loj * Problem#2955 * Accepted * Time: 2653ms * Memory: 25616k */ #include <bits/stdc++.h> using namespace std; typedef bool boolean; const int N = 1e5 + 5; #define ll long long template <…
[BZOJ5471][FJOI2018]邮递员问题(动态规划) 题面 BZOJ 洛谷 给定平面上若干个点,保证这些点在两条平行线上,给定起点终点,求从起点出发,遍历所有点后到达终点的最短路径长度. 题解 不会做,于是点开LOJ,点开除了\(std\)之外唯一过的人的代码,照着打了一遍QwQ...... 然后再对着代码YY一遍就有了这篇东西...... 强制令起点的位置是第\(0\)行(方便而已). 在第\(0\)行枚举一个\(i\),在第一行枚举一个\(j\). 设\(f[j][0]\)表示第\…
[BZOJ5211][ZJOI2018]线图(树哈希,动态规划) 题面 BZOJ 洛谷 题解 吉老师的题目是真的神仙啊. 去年去现场这题似乎骗了\(20\)分就滚粗了? 首先\(k=2\)直接算\(k=1\)时的边数就好了.\(k=3\)同理. 这里直接计算每个点的度数就可以做,然后就有\(20\)分了. 我们发现如果企图继续考虑线图应该怎么计算出来,这里是很难做的. 注意到原图是一棵树,所以想想线图和原图之间的关系. 对于做一次线图\(L(G)\)而言,点数显然等于原图的边数. 对于做两次线图…
[LOJ6089]小Y的背包计数问题(动态规划) 题面 LOJ 题解 神仙题啊. 我们分开考虑不同的物品,按照编号与\(\sqrt n\)的关系分类. 第一类:\(i\le \sqrt n\) 即需要考虑所有的情况,那么设\(f[i][j]\)表示前\(i\)个物品装了体积\(j\)的方案数. 显然\(f[i][j]=\sum_{k=1}^i f[i][j-k*i]\)转移过来,那么按照\(i\)分剩余类,前缀和转移即可. 这一部分的复杂度是\(O(n\sqrt n)\) 第二类:\(i\ge…
[BZOJ4828][HNOI2017]大佬(动态规划) 题面 BZOJ 洛谷 LOJ 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场 就能让周围的人吓得瑟瑟发抖,不敢言语.你作为一个OIER,面对这样的事情非常不开心,于是发表了对大佬不敬 的言论.大佬便对你开始了报复,你也不示弱,扬言要打倒大佬.现在给你讲解一下什么是大佬,大佬除了是神犇 以外,还有着强大的自信心,自信程度可以被量化为一个正整数 C(1<=C<=10^8),想要打倒一个大…
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按照右端点排序,每次贪心的从区间的最右边种,然后检查下一个区间是否缺少,缺的话就在最右边继续补. 3):「一本通 1.1 例 3」喷水装置:这题可以发现每个装置所能覆盖的区间是一个矩形,所以这题就变成了给了一堆线段,选出最少线段覆盖整个区间,按照右端点排序然后贪心就可以了. 4):「一本通 1.1 例…
[CTS2019]氪金手游(动态规划) 题面 LOJ 洛谷 题解 首先不难发现整个图构成的结构是一棵树,如果这个东西是一个外向树的话,那么我们在意的只有这棵子树内的顺序关系,子树外的关系与这棵子树之间的限制无关.所以我们只需要强制根节点在其他儿子之前的就行了(你可以认为如果这次随机抽到了子树外面的东西就重新抽一次,这个概率等于只考虑子树权值和的概率),那么这里的概率就是\(\frac{w_u}{\sum w}\).然后每个根节点显然可以独立考虑,所以只需要把所有根节点的结果直接乘起来就好了. 那…
文章以 CC-BY-SA 方式共享,此说明高于本站内其他说明. 本文尚未完工,但内容足够丰富,故提前发布. 内容包含大量 \(\LaTeX\) 公式,渲染可能需要一些时间,请耐心等待渲染(约 5s). 0x00 前言 题单将介绍介绍动态规划(Dynamic Programming, DP)及其解决的问题.根据其设计的算法及优化. 动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 由于动态规划并不是某种具体的算法,而是一种解决特定问题的方法,因此它会出现在各式各样的数据结…
Dotfile是电脑系统里的隐藏文件,它是专门给更高级的用户,如开发者.程序员或工程师使用的,让他们用来调整系统.如何创建Vim-Dotfile? 可以参考以下步骤: 1. 首先,你要检查一下.vimrc文件是否存在.要确定这个文件是否可用,可以运行以下命令. 2. 出于很多原因,Vimrc 文件有可能已经不存在了.要手动创建.vimrc文件,在你的Linux/Unix终端运行以下代码. 3. 当创建文件后,现在我们可以继续通过一些例子来看一下如何使用.vimrc文件. Vim dotfile可…
一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过control键(CTRL)和alt键(ALT)组成)或者鼠标输入.Vim和vi一样,仅仅通过键盘来在这些模式之中切换.这就使得Vim可以不用进行菜单或者鼠标操作,并且最小化组合键的操作.对文字录入员或者程序员可以大…
安装方法:   在下面的网站下载中文帮助的文件包:$wget http://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.5.0.tar.gz 解包后进入文件夹,使用以下命令安装:$sudo ./vimcdoc.sh -i启动vim,输入:help,看看帮助文档是否已经便成中文了? 一些注意事项:1.vim中文文档不会覆盖原英文文档,安装后vim默认使用中文文档.若想使用英文文档,可在vim中执行以下命令:     set helpl…
我们使用vi或者vim的时候,如果想要显示行号,可能会这样做:切换到命令模式,然后输入set nu,再按回车键就显示了:还有就是咱们在编写程序的时候,有的时候会希望按下回车键后,光标不是每次都在行首,而是与上一行的第一个非空格符处对齐,也就是实现所谓的缩排功能,这是你可以在命令模式下输入set autoindent.但是每次这样输入太麻烦了,可不可以在每次利用vim命令编辑时自动就设置好功能呢? 简单说一下我的配置步骤.下表为vim的环境参数(鸟哥那本书上的)    上面都是鸟哥的私房菜里边的,…
Linux环境下写代码虽然没有IDE,但通过给vim配置几个插件也足够好用.一般常用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能.一般流程都是下载需要的工具,然后在vimrc文件中配置加载工具选项,一直这么用也没觉得啥.但最近发现通过vundle工具可以很方便的管理多个插件,非常方便,介绍给大家. 1.安装vim ./configure --prefix=/usr \ --with-features=huge \ --enable-pythoninterp…
vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举以下三个例子: =nG dnG ynG 其中,n为行号.注意行号后面接的是大写字母"G".而"nG"恰好是光标移动到第n行的命令. 对于"=","=nG"的意思就是从当前行到第n行之间进行格式化.常用的一个命令"gg=G…
vim 的环境设定参数 :set nu :set nonu             就是设定与取消行号啊! :set hlsearch :set nohlsearch     hlsearch 就是 high light search(高亮度搜寻). 这个就是设定是否将搜寻的字符串反白的设定值.默认值是 hlsearch :set autoindent :set noautoindent     是否自动缩排?autoindent 就是自动缩排. :set backup     是否自动储存备份…
Linux 系统中很多东西都是以脚本代码.配置文件的形式存在,使用 Linux 系统时,需经常对这些文件进行编辑.很显然,如果没有文本编辑器,江湖之路寸步难行. 我的选择是 Vim.Vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,被誉为文本/代码编辑器之中最为优秀经典的上古神器. 它之所以会获得如此美誉,我想主要有以下原因:1.它古老而神秘,学习曲线陡峭,难以驾驭,但是一旦学会则受益匪浅.如今被看作是高手.Geek 们专用的编辑器.所以尽管 Vim 已…
C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是仍免不了经常和它打交道,特别是在 Linux 系统下. Linux 系统中普遍使用的是 GNU-C,这里有一份Gnu-C语言手册.pdf.The GNU C Reference Manual 的主页在这里:http://www.gnu.org/software/gnu-c-manual/.C 语言的…
一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为阿里巴巴高级技术专家的陈皓写的Vim系列文章: 简明 Vim 练级攻略 文章很有意思,跟打怪练级一样,你会分别经历如下阶段: 存活 感觉良好 觉得更好,更强,更快 使用VIM的超能力 无插件Vim编程技巧 出来混,经常会在各种服务器上编辑文件,没有了心爱的配置文件和插件,怎么破?记住这些Vim原生态无需插件就可以使用…
shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些命令来解决的.一直没有理解为什么会出乱码,本文就是想认真分析乱码问题的原因并找到解决之道.希望本文能够解决像我这样的菜鸟在Linux下shell和vim中遇到的乱码问题.读者们如果读完这篇文章后还是一头雾水,也不要着急[文章角度不同,不同的人的理解程度也不同],可以多看看类似的文章[文末的参考资料]…
http://blog.csdn.net/sharp_allen/article/details/27075133转载 说了这么多,其实还少一个和word,记事本一样的编辑器,在各个操作系统都有编辑器,在linux里也有,比如gedit编辑器,很方便.在终端里直接敲击gedit即可打开这个编辑器.保存到桌面,名字为geditfiles,再终端里使用ls命令查看: gedit就是一个全屏幕的编辑器!!还有一个编辑器叫做kate编辑器,可以在里面直接敲命令等,图形界面的东东,和windows下的没什…
上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的增强学习). 那么如何求解最优策略呢?基本的解法有三种: 动态规划法(dynamic programming methods) 蒙特卡罗方法(Monte Carlo methods) 时间差分法(temporal difference). 动态规划法是其中最基本的算法,也是理解后续算法的基础,因此本…
题目:House Robber You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected a…
前言  鉴于BASH及其周边强大的工具以及VIM高效快捷,加上现在我工作重心转移到前端开发上,因此我华丽地转向Linux阵营(当然从最傻瓜式的Ubuntu开始啦!).但BASH和VIM默认样式确实颜值太低,功能强大固然重要,但在这看脸的时代谁不爱美呢?那么我们先拿状态栏来开刀吧,而刀就是强大酷炫的Powerline本尊了. Powerline是什么?  Powerline是个stateless status line,即可以配置到BASH,ZSH,VIM等上,而不像vim-powerline那样…
前言  Ubuntu 16+中$ sudo apt install vim所安装的vim只支持Python3,但很多插件如YCM和powerline均需要Python2,那就来场"生命贵在折腾"吧! 自检  在shell中输入以下命令,若出现-python则表示不支持Python2,+python则表示支持;-python3表示不支持Python3,+python3则表示支持. $ vim --version | grep python 安装 1.安装 $ sudo apt insta…