康托展开(Cantor Expansion)
现在有N个数,分别为1到N,如果要问你这些数的所有排列中,从小到大数的第N个是多少,如何求解?
显然当N很小时直接写个模拟就可以了。但是这样写的时间复杂度至少是$A_N^N$,也就是$N!$,很容易超时。想想$13!$已经是6227020800了……有没有更快的方法呢?
现在有N个数,分别为1到N,如果要问你这些数的所有排列中,从小到大数的第N个是多少,如何求解?
显然当N很小时直接写个模拟就可以了。但是这样写的时间复杂度至少是$A_N^N$,也就是$N!$,很容易超时。想想$13!$已经是6227020800了……有没有更快的方法呢?
线段树是非常基础的算法了……
线段树是一种二叉树,可视为树状数组的变种,最早出现在2001年,由程序竞赛选手发明。我们ZS老师说过:“所有可以用树状数组解决的题目都可以用线段树解决,但是部分线段数可以解决的题目却无法用树状数组解决。”由此可见线段树十分强大……
自从360云盘等一大堆云盘关停,百度云盘限速,我就开始想能不能自己搞个云盘之类的东西。当然可以直接用FTP,但是用起来太不方便(谁记得住那一大串IP地址啊……)……直到我找到了这个神器……
作为OIer,写博客的时候经常会遇到需要数学公式的情况,特别是Σ、∈等符号,在markdown里用起来十分不友好(百度百科网络流那一篇就出现了:Σ(w∈V)f(u,w)=0。好在markdown中有插件为我们提供了强大的数学公式显示支持。现在我们就可以这样浪:
$ \displaystyle \sum_{w\in V} f(u,w)=0 $
网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关。网络流的理论和应用在不断发展,出现了具有增益的流、多终端流、多商品流以及网络流的分解与合成等新课题。网络流的应用已遍及通讯、运输、电力、工程规划、任务分派、设备更新以及计算机辅助设计等众多领域。
(2018.08.29 更新此文,你没有阅读过的船新版本)
原博客搭建于阿里云主机,空间太小(才200M……),限制也很多,故弃用,搬到这个Bandwagon主机上,然后买了个新域名:<a href="http://skywt.cn">skywt.cn</a>…… 原博客已弃用。
最近准备刷刷BZOJ上的水题……
物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小。
(<a href="http://www.lydsy.com/JudgeOnline/problem.php?id=1002" title="BZOJ原题链接">BZOJ原题链接</a>)这题是可以推出公式的:F[i]=F[i-1]*3-F[i-2]+2。套个高精度就好了。(由于需要用到的知识太复杂,推不来……)(其实可以写个暴力推出来)
(<a href="http://poj.org/problem?id=1723" title="POJ题目链接">POJ题目链接</a>)
N soldiers of the land Gridland are randomly scattered around the country. A position in Gridland is given by a pair (x,y) of integer coordinates. Soldiers can move - in one move, one soldier can go one unit up, down, left or right (hence, he can change either his x or his y coordinate by 1 or -1).
回忆起自己寒暑假在XH集训的时候,那个时候每天ZS老师都会提醒我们:「回家经常给U盘做做备份,电子产品的东西什么时候出问题你也不知道,balabala……」然而,U盘里内容越来越多,复制(备份)也要花很长时间,晚上写好代码还要看着U盘里数据移动十几分钟(因为复制完要关机),太浪费时间了……而且直接复制对于备份来说还有个缺陷。于是乎U盘自动备份的批处理文件就应运而生了。