首先来说一下什么是左式堆:A:左式堆是专门用来解优先队列合并的麻烦(任意二叉堆的合并都必须重新合并,O(N)的时间)。 左式堆的性质: 1.定义零路经长:节点从没有两个两个儿子节点的路经长,把NULL定义为-1 2.堆性性质(x的键值比x左右两个儿子节点的键值要大或...
分类:
其他好文 时间:
2015-11-02 17:36:54
阅读次数:
373
vijosP1059 积木城堡链接:https://vijos.org/p/1059【思路】 01背包。 刚开始想麻烦了,想的是二分答案然后01背包判断是否可行,但是首先答案不满足单调性所以不能二分(这点以后做题之前一定要想清楚),其次如果从大到小枚举依次判定的话会TLE。 不得不说自己真是笨。 其...
分类:
其他好文 时间:
2015-10-23 16:20:01
阅读次数:
207
给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对。例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0,8),(2,6),(3,5)。Input第1行:用空格隔开的2个数,KN,N为A数组的长度。(2 ...
分类:
编程语言 时间:
2015-10-19 20:43:24
阅读次数:
177
把左边固定,看右边,要求线不相交,编号满足单调性,其实是LIS的等价表述。(如果编号是乱的也可以把它有序化就像Uva 10635 Prince and Princess那样O(nlogn)#include#include#include#include#include#include#include...
分类:
其他好文 时间:
2015-10-17 13:25:47
阅读次数:
145
题意:
数轴上有n个点,有一个青蛙在这些点上跳;
规则是每次向距当前点第k小的点跳,如果有相同距离则向下标较小的跳;
求从每个点出发跳了m次后在哪里;
1
题解:
我真是不知道这题出long long 的意义是啥。。
数据范围比较极限,略卡,加点读入优化啥的卡常数才过;
不过Poi上还是挺良心的,除了偶尔乱入的波兰文以外;
这题后半部分显然就是置换的快速幂;
主要问题是...
分类:
其他好文 时间:
2015-09-21 10:38:38
阅读次数:
174
l如果一个项集是非频繁的,则它的所有超集也一定是非频繁的: –这种基于支持度度量修剪指数搜索空间的策略称为基于支持度的剪枝(support-based pruning) –这种剪枝策略依赖于支持度度量的一个关键性质,即一个项集的支持度决不会超过它的子集的支持度。这个性质也称为支持度度量的反单调性(a...
分类:
其他好文 时间:
2015-09-08 15:03:40
阅读次数:
176
传送门:BZOJ1071枚举minH,minV,单调性优化+计不可行方案数即可。
代码上的细节较多。代码上的小细节见下。#include
#include
#include
#include
#define N 5050
using namespace std;int A,B,C;struct KSD
{...
分类:
其他好文 时间:
2015-08-20 19:09:30
阅读次数:
114
ACM知识点分类(红:完全没听说过 黄:听说过 绿:接触过做过题 蓝:很熟悉刷过专题 紫:见一道秒一道)第一类:基础算法(1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟(2) 动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp(3) 搜索:dfs,bfs,记忆化搜索,...
分类:
其他好文 时间:
2015-08-17 23:20:52
阅读次数:
285
题意: 求长度大于等于K的公共子串的个数。位置不同就算不同。后缀数组求依次SA LCP, 然后就是统计答案了, 暴力统计n^2复杂度显然不可以, 我们可以利用lcp数组的"部分单调性", 用一个栈,栈中保存小于等于当前lcp的原数组的下标,两次统计, 第一次统计, 按B串统计, 把A串大于等于K的那...
分类:
编程语言 时间:
2015-08-07 22:03:51
阅读次数:
125
由于我们并不清楚要求的W的值,但是我们知道W的值不超过矿石中价值最大的,如果W大于了矿石中价值最大的,那么Y的值为0,无法达到最优解。
因此,很容易就能想到在确定W的值要用二分的方法。
在分析这道题的时候,我们很容易知道Y的值是满足单调性的,当W的值越大,Y的值越小,因为W越大,能够选的矿石就越少。
所以我们把得到的Y值作为判断条件,如果Y比S小,就说明检验值了,而W取大了。每次更改W的同时...
分类:
其他好文 时间:
2015-08-07 20:00:48
阅读次数:
106