08 2017 档案
摘要:题目描述 图书馆有n个书架,第1个书架后面是第2个书架,第2个书架后面是第3个书架……第n-1个书架后面是第n个书架,第n个书架后面是第1个书架,第i个书架上有b[i]本书。现在,为了让图书馆更美观,WZF神牛让蒟蒻SY搬动书架上的书,使每个书架上的书一样多。由于搬动的书可能会很多,所以蒟蒻SY只能
阅读全文
摘要:题目描述 有一条豪华游轮(其实就是条小木船),这种船可以执行4种指令: right X : 其中X是一个1到719的整数,这个命令使得船顺时针转动X度。 left X : 其中X是一个1到719的整数,这个命令使得船逆时针转动X度。 forward X : 其中X是一个整数(1到1000),使得船向
阅读全文
摘要:洛谷P1655 小朋友的球 题目描述 @发源于 小朋友最近特别喜欢球。有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝试编程实现,但由于他天天不好好学习,只会上B站看游泳教练,于是他向你求助。 输入输出格式 输入格
阅读全文
摘要:Lucas定理解决的是n,m比较大而p是小于100000质数 简而言之就是Lucas(n,m)=C(n%p,m%p)*Lucas(n/p,m/p)%p; 其中组合数C是用任意一种计算10五次方内取模的组合数计算 比如可以预处理阶乘fac[i],然后直接C(n,m)=fac[n]*quickpow(f
阅读全文
摘要:拓展欧几里得算法是用来解决不定方程的整数解的算法 最大公因数 众所周知,辗转相除法是解决两个数a,b的最大公因数的方法,记作gcd(a,b) 每次用a MOD b ,然后将b和模得的数再继续模下去,知道模数为0,也就是b|a 写成代码是: int gcd(int a,int b){ retrun b
阅读全文
摘要:这题在洛谷上可以找到提交 P2680运输计划 题目背景 公元 2044 年,人类进入了宇宙纪元。 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球。 小 P 掌管一家物流公司,该公司有很多个运输计划,每个运输计划形如:有
阅读全文
摘要:考虑这样一道题: 有一个数列,每次修改区间[Li,Ri],在所有修改操作结束后询问每个单点的值 这不是裸的线段树么。。。 没必要,真的没必要。。 你想想线段树多少代码打着烦不烦呐。。 你想想如果数据是n>=10000000 线段树岂不是T得飞起 我们定义这样一个数组D[i]=A[i]-A[i-1],
阅读全文
摘要:最小点权覆盖集 二分图最小点权覆盖集解决的是这样一个问题: 在二分图中,对于每条边,两个端点至少选一个,求所选取的点最小权值和。 方法: 1、先对图二分染色,对于每条边两端点的颜色不同 2、然后建立源点S,向其中一种颜色的点连一条容量为该点权值的边 3、建立汇点T,由另一种颜色的点向T连一条容量为该
阅读全文
摘要:康托展开 康托展开解决的是当前序列在全排序的名次的问题。 例如有五个数字组成的数列:1,2,3,4,5 那么1,2,3,4,5就是全排列的第0个【注意从0开始计数】 1,2,3,5,4就是第1个 1,2,5,3,4就是第2个 给定一个序列,怎么确定它的排名呢? 就用到了这样一个公式X=a[n]*(n
阅读全文
摘要:通常我们使用的二叉堆,是用一个数组实现的完全二叉树,对于查询有O(1)复杂度,对于插入、删除有O(logn)复杂度 而且常数比较小,是一个比较优秀的数据结构 但是。 当我们需要合并两个堆的时候,用普通的二叉堆就显得吃力了,时间复杂度达到O(mlogn) 这个时候可并堆这种数据结构就出现了。而在其中,
阅读全文
摘要:树链剖分这个算法我看了好多大神们的博客,才慢慢领悟,希望我写的过得去( · · ) 众所周知,维护区间信息的题目可以用线段树高效实现。类似于区间这样一维的结构,在树上维护两点间的信息【比如树上两点之间的最大值】也可以用线段树吗? 仔细想想,好像很难实现。因为线段树维护的是链状结构,而树是一张图。 但
阅读全文
摘要:【吐槽】学了好久的后缀数组,看了各个大神博客,还是没懂= =,看起来好难的一个东西【一堆堆for】。主要还是自己码代码的能力太弱了。。。。 后缀数组,顾名思义,一定与后缀有关。后缀数组简称sa,sa[i]表示在字符串s的所有后缀中,排名第i的后缀的首字母在字符串中的位置。【排名从0开始】 比如,对于
阅读全文