摘要:
基本思想在于将一个数拆分成每一位的数字,将总问题转化为子问题。 例:求[a,b]中各个数字出现次数。 (luogu2602 数字计数) 1.发现在i位数中(不考虑前导零),每一个数字出现的次数都相同。f[i]=f[i-1]*10+10^(i-1); 2.在ABCD中,将其拆为:A000+B00+C0 阅读全文
摘要:
压位高精:即通过将原来数组中一个位置存一位数,改为一个位置存p位数(8-10)。本质上是一种利用进制转换思想的压缩方式。 压位高精VS普通高精优势: 1.节省空间。(10倍以上) 2.节省时间(循环次数少)(10倍) 3.在对于高精与低精(乘法不超int)运算时,可以利用进制较高的优势,达到简化代码 阅读全文
摘要:
Link Station 传送站 阅读全文
摘要:
方法一:scanf()读入char[] 使用方法: char str[1024]; scanf("%[^\n]",&str); getchar(); 方法二:getchar()读入char[] 使用方法: char str[1024]; int i=0; while((str[i]=getchar( 阅读全文
摘要:
1.floyd和dij(SPFA同理)算法的路径记录方法。 https://blog.csdn.net/silence401/article/details/62049708 2.背包中用到的vector直接复制。 https://blog.csdn.net/benTuTuT/article/det 阅读全文
摘要:
https://blog.csdn.net/xiong452980729/article/details/51394036 阅读全文
摘要:
题目大意: 要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段。记第 i 条被插入的线段的标号为 i 2.给定一个数 k,询问与直线 x = k 相交的线段中,交点最靠上的线段的编号。 若有多条线段符合要求,输出编号最小的线段的编号 (省略输入以及在线操作的要求) 分析: 明显的线段树特 阅读全文
摘要:
题目大意: 小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与之前的线段相交,那么这栋楼房就被认为是可见的。 施工队的建造总共进行了M天。初始时,所有楼房都还没有开始建造 阅读全文
摘要:
题目大意: 给定一个区间及其各个元素的初值,要求支持如下操作: 1.区间加 2.区间赋值 3.查询区间最大值 4.查询区间历史最大值 分析: 容易想到线段树,但是细思恶极(仔细想想恶心到了极点)的是,最后查询区间历史最大值的操作。 如果只记录区间历史最大值显然不能下放,如果单纯更新区间加,区间赋值最 阅读全文
摘要:
题目大意: 有n个数,要将他们分成若干段,每一段的cost定义为: cost=r-l+ΣCk (k∈[r,l]) 该段的最终花费是:(cost-L)^2; 给出L,n,C(1~n),总共的最小花费。 分析: dp方程极容易想出来: f[i]=max(f[j]+(sum[i]-sum[j]+i-j-1 阅读全文