A. 瞎jb折半dp一下,然后合并一下就好了。 O2加成十分显著。。。6s变成0.9s。。。 B. 考虑倒着做。这个答案只会单增,于是枚举答案然后check。 怎么check呢?考虑枚举所有这么长的包含这辆车的这一行中的区间,每个位置记下它上面和下面的第一个点(车)的位置,然后相当于区间max,mi ...
分类:
其他好文 时间:
2017-02-17 20:16:34
阅读次数:
252
我是萌萌的传送门 这么一道水题我还用各种麻烦的方法去做……这人没救了 看在这题做法挺多的份上,我就都写写好了…… 1.CDQ分治 这个做法是我想到的……因为受到了Eden的新背包问题的启发…… 定义solve(l,r)表示删除编号在[l,r]的物品并计算其DP数组,显然这个是可以折半往下递归的,用没 ...
分类:
其他好文 时间:
2017-02-17 17:00:26
阅读次数:
239
设$f[i][j][k]$表示前$i$个物品买了$j$个,消耗$k$个钻石,最少花多少钱,可以通过简单的DP求出。 枚举拥有的钻石数以及最多能购买的物品数的下界,那么钱数的下界是定值。 将$n$个箱子折半搜索,按钻石数分组并排序,枚举左半边每种方案,在右半边双指针求出总概率即可。 时间复杂度$O(n ...
分类:
其他好文 时间:
2017-02-06 22:14:10
阅读次数:
240
一、直接插入排序 二、折半插入排序 折半插入排序(binary insertion sort)是对插入排序算法的一种改进。 ...
分类:
编程语言 时间:
2017-02-05 14:00:11
阅读次数:
272
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两 ...
分类:
编程语言 时间:
2017-01-13 01:06:31
阅读次数:
229
10种排序算法,分别是直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,树形排序,堆排序,归并排序,基数排序。各有千秋,但依旧有优劣之分,熟悉每一个算法,对于我们的代码优化,也将事半功倍。 1,直接插入排序: 基本思想: 假设待排的n个记录存放在变量R中,首先将R[1]看做是有 ...
分类:
编程语言 时间:
2017-01-10 08:23:33
阅读次数:
268
基本数据类型是c++编译系统预定义的,而自定义类型的数据是由多个基本类型或自定义类型的元素组成的,我们称之为群体数据。 对于群体数据,仅有系统预定义的操作是不够的,在很多情况下,还需要设计与某些具体问题相关的特殊操作,并按照面向对象的方法将数据与操作封装起来,这就是群体类。 群体可以分为两种:线性群 ...
分类:
其他好文 时间:
2017-01-08 10:44:44
阅读次数:
200
有10个数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。 输入:-12 -8 12 24 45 46 56 58 68 78 输入要查找的数据:58 输出:58的下标为7 输入要查找的数据:21 输出:”无此数” ...
分类:
编程语言 时间:
2017-01-08 08:07:08
阅读次数:
159
基本思想: 折半插入算法是对直接插入排序算法的改进,排序原理同直接插入算法: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素;排序过程即每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的有序表,重复n-1次完成整个排序过程。 与直接插入算 ...
分类:
编程语言 时间:
2017-01-03 13:16:24
阅读次数:
252