可以用队列优化或斜率优化的dp这一类的问题为 1D/1D一类问题即状态数是O(n),决策数也是O(n)单调队列优化我们来看这样一个问题:一个含有n项的数列(ni这个区间的最小值。那么状态转移方程是可以看出,这个题目的状态数是O(n),决策数是O(m),且决策的区间是连续的,那么可以尝试想办法把O(m...
分类:
其他好文 时间:
2015-08-10 21:35:35
阅读次数:
122
题意:
在一个诡异的植物大战僵尸游戏中,给出n关;
第i关队首僵尸距房门xi,两个僵尸之间间隔为d;
每次在队首添加一个血量为ai的僵尸,其他僵尸不变;
每关在门前放一个攻击力任意的植物,求n关放置植物总攻击力的最小值;
n
题解:
题意叙述略诡异。。建议还是去看一眼原题;
首先考虑对于每一关的答案,应该是恰好将最难打死的僵尸打死的攻击力值;
令s[i]为i这个僵尸血量与...
分类:
其他好文 时间:
2015-08-09 12:43:40
阅读次数:
128
/**
* 功能:在二维平面上,有一些点,请找出经过点数最多的那条线。/**
* 思路:在任意两点之间画一条无线长的直线,用散列表追踪那条直线出现的次数最多。时间复杂度O(N*N)
* 注意:
* 1)用斜率和y轴截距来确定是否是同一条直线。
* 2)浮点数不一定能用二进制数准确表示,因此检查两个浮点数的差值是否在某个极小值(epsilon)内。
* 3)对于散...
分类:
其他好文 时间:
2015-08-08 15:05:13
阅读次数:
218
/**
* 功能:给定直角坐标上的两条线,确定这两条线会不会相交。
*/
public class Line {
static double epsilon=0.000001;
public double slope;//斜率
public double yintercept;//与y轴的截距
public static void main(String[] args)...
分类:
其他好文 时间:
2015-08-07 20:15:15
阅读次数:
105
/**
* 功能:在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。
* 假定正方形的上下两条边与x轴平行。
*/
/**
* 考虑:
* 线的准确含义,可能性有:
* 1)由斜率和y轴截距确定;
* 2)由这条边上的任意两点确定;
* 3)线段,以正方形的边作为起点和终点。
*
* 假设:这条线的端点应该落在正方形的边上。
* 思路...
分类:
其他好文 时间:
2015-08-07 20:12:15
阅读次数:
117
http://my.oschina.net/sweetdark/blog/183721参数方程表现形式在中学的时候,我们都学习过直线的参数方程:y = kx + b;其中k表示斜率,b表示截距(即与y轴的交点坐标)。类似地,我们也可以用一个参数方程来表示一条曲线。1962年,法国工程师贝塞尔发明了贝...
分类:
其他好文 时间:
2015-08-05 12:29:12
阅读次数:
167
1492: [NOI2007]货币兑换Cash
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 2454 Solved: 1078
[Submit][Status][Discuss]
Description
Input
第一行两个正整数N、S,分别表示小Y 能预知的天数以及初始时拥有的钱数。 接下来N 行,第K 行三个实数AK...
分类:
其他好文 时间:
2015-08-04 21:05:48
阅读次数:
149
从学导数那天开始,就差不多接触到了牛顿法求解零点的精髓,那时局限于一维,且只是从几何上认识到它。一、主要作用(1)求零点(2)优化(求最大最小值)二、求零点求f(x)=0.解:如图,满足近似关系 斜率k=f'(xn) xn+1≈xn-f(xn)/k 解得: xn+1≈xn-f(x...
分类:
其他好文 时间:
2015-08-04 18:36:18
阅读次数:
131
对于区间[l,r],若询问的直线与该区间的凸壳有交,则有解。在线段树每个区间上维护凸壳,然后查询时在相应凸壳上二分斜率即可,时间复杂度$O(n\log^2n)$。#include#define N 262145typedef long long ll;int T,n,i,c,l[N],r[N],t;...
分类:
其他好文 时间:
2015-08-04 02:06:03
阅读次数:
294
通道题意:给出一个字符串和一个k,将字符串分成k段,每段的求法是sigma【(i ? P OS) ? P OS】,问如何分段使得总和最小思路:设dp[i][j] 为将前j个字符分成i段的最小值。a[i]为第i个字符在原始字符串的位置。那么dp[i][j] = min(dp[i][j],dp[i-1]...
分类:
其他好文 时间:
2015-08-03 14:26:09
阅读次数:
150