两根指针,英文为two pointers ,所以又被称为双P算法。 同向双指针问题 1.window sum问题 例给定数组[1, 2, 7, 8, 5],给定一个长度为k的窗口,求此窗口内的数据元素的和。比如1 + 2 + 7 = 10, 2 + 7 + 8 = 17, 7 + 8 + 5 = 2 ...
分类:
其他好文 时间:
2020-11-02 09:54:07
阅读次数:
33
原题: 题意: 给你m个灯,每个等有一个周期ti,和一个亮度xi,第i个灯先亮ti秒,再灭ti秒,再亮ti秒,每次亮度都是xi 同一时间如果有多个灯亮,那么场地亮度是最大值 给你一个n,问你从第1秒直到第n秒的每一秒,场地的亮度是多少 朴素的想法: 对于每个灯,枚举它亮的区间,用线段树区间取max取 ...
分类:
其他好文 时间:
2020-11-01 22:21:56
阅读次数:
79
区间符合条件的充要条件是$Max-Min+1=Cnt$其中$Max,Min,Cnt$分别为区间最大值,最小值,不同的数的个数。 变形后得$Max-Min-Cnt+1=0$ 考虑枚举右端点,在线段树上维护左端点$Max-Min-Cnt+1$的最小值。 $Min,Max$可以用单调栈维护,记$last_ ...
分类:
其他好文 时间:
2020-11-01 22:11:08
阅读次数:
14
状态压缩DP 初探 +++ 1.蒙德里安的梦想 求把NM的棋盘分割成若干个12的的长方形,有多少种方案。 例如当N=2,M=4时,共有5种方案。当N=2,M=3时,共有3种方案。 如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行,包含两个整数N和M。 当输入用例N=0,M=0时,表 ...
分类:
其他好文 时间:
2020-11-01 22:10:36
阅读次数:
21
#include<stdio.h> #include<string.h> #include<stdlib.h> 1、提供一个顺序存储的栈 #define max 1024 struct sstack { void * data[max]; //栈的数组 int m_size; //栈大小 }; ty ...
分类:
其他好文 时间:
2020-11-01 22:08:22
阅读次数:
16
单调递增最长子序列分析: 1.1: i == 0时:dp[0] = 1; 其余情况: dp[i] = max( dp[i] , dp[ j ] + 1); 0 <= j < i; 1.2 填表的维度: 一维 填表的范围: dp[0] 到 dp[n-1] 填表顺序:从左向右 1.3 因为要以每一个数位 ...
分类:
编程语言 时间:
2020-11-01 22:01:32
阅读次数:
24
题目大意 给出一个无向图,可以删掉若干点,删i的代价是ai,最大化Σ|剩余连通块bi之和|-代价 n,m<=300 题解 看错题后的版本:每删掉一个点对其相连连通块计算贡献,使最后和最大 完全不可做 先删掉一些点,对剩下的一个块里的贡献同为+1或-1,则可以转化为对每个点赋+1/-1/删掉,最终贡献 ...
分类:
其他好文 时间:
2020-11-01 21:27:41
阅读次数:
20
如果说大数据里面hive是屠龙刀,那么pandas则是倚天剑,**帮助我们对数据数据挖掘、数据分析、数据清洗**
分类:
其他好文 时间:
2020-11-01 21:11:55
阅读次数:
20
一、数组的概述 ##1. 数组的理解: 数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的 方式对这些数据进行统一管理。 ##2. 数组相关的概念: 数组名 元素 角标、下标、索引 数组的长度:元素的个数 ##3. 数组的特点: 数组是序排列的 数组属于引用数 ...
分类:
编程语言 时间:
2020-11-01 20:53:53
阅读次数:
19
//求最大值和最小值#define MY_MAX( x, y ) ( ((x) > (y)) ? (x) : (y) ) #define MY_MIN( x, y ) ( ((x) < (y)) ? (x) : (y) ) //得到一个field在结构体(struct)中的偏移量//#define ...
分类:
编程语言 时间:
2020-11-01 10:38:25
阅读次数:
18