- 博客(120)
- 收藏
- 关注
转载 校内测试-奶酪
题目测试得分: 100主要算法: 贪心题干: 有四个权值分别为1,2,3,4的四个物品a,b,c,d各多少个,问相互之间组成正好组成权值为5的情况最多有多少种分析: 方案1(背包) 方案2(贪心) 贪心组合 考虑顺序如下 1.a与d组合 2.b与c组合...
2019-10-02 19:33:00 192
转载 校内测试-城堡
题目测试得分: 100主要算法: 最短路-dijkstra,矩阵动规题干: 矩阵中求左上角的点到右下角的点的距离,不能从下往上走分析: 方案1(动规) 初步判定算法 对于这题,只能从上往下行走,对于到达每一个点的最优值,一定是从最上方下来的最优值,与左右两边最优值的比较,初步确定算法动态规划 ...
2019-10-02 19:22:00 223
转载 校内测试-排序
题目测试得分: 100主要算法: 模拟,排序(归并,冒泡)题干: 归并排序求逆序对 代码#include<stdio.h>#include<stdlib.h>#define LL long long #define FORa(i,s,e) for(LL i=s;i<=e;i...
2019-10-02 19:03:00 167
转载 校内测试-扫雷
题目测试得分: 100主要算法: 模拟题干: 模拟水题 代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#define F...
2019-10-02 18:59:00 244
转载 Luogu-P3375 【模板】KMP字符串匹配
题目题目链接测试得分: 100主要算法: 字符串KMP题干: KMP板子题 代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define FORa(i,s,e) for(int i=s;i&l...
2019-08-17 11:26:00 89
转载 Luogu-P2365 任务安排
题目题目链接测试得分: 100主要算法: 动态规划题干: 动规经典题(费用提前计算)分析 f[i]代表的是结点i之前所有任务分若干批次的最小费用 s*(sumc[n]-sumc[j])表示的是费用提前计算 原来的状态转移是 FORa(...
2019-08-16 20:52:00 102
转载 Luogu-P2295 MICE
题目题目链接测试得分: 100主要算法: 记忆化搜索,动态规划题干: 有后效性DP?分析 伪记忆化搜索: 考虑起点的特殊情况,预先处理 Dfs搜出答案,每一次路径看到的老鼠,加上老鼠数目,把看到的老鼠数目所在点的老鼠删除掉 记得回溯最终得分40分 代码...
2019-08-16 20:01:00 160
转载 Luogu-P2627 修剪草坪
题目题目链接测试得分: 100主要算法: 单调队列优化DP题干: 单调队列优化DP板子分析 单调队列优化DP定长连续区间最值问题模型 代码 70分朴素DP #include<stdio.h>#include<stdlib.h>#define FORa...
2019-08-16 15:23:00 100
转载 Loj-10176-最大连续和
题目题目链接测试得分: 100主要算法: 单调队列优化DP题干: 单调队列优化DP板子 题意分析错误,但是有部分分/*这个代码使用滚动数组优化的暴力,有局限性,只能处理长度为m区间的最大连续和,而并不是小于等于m的#include<stdio.h>#incl...
2019-08-15 19:20:00 175
转载 Luogu-P1886 滑动窗口
题目题目链接测试得分: 100主要算法: 单调队列优化DP题干: 单调队列优化DP板子分析 单调队列优化DP定长连续区间最值问题 代码#include<stdio.h>#include<stdlib.h>#define FORa(i,s,e) for(...
2019-08-15 16:38:00 73
转载 Luogu-P3807 【模板】卢卡斯定理
题目题目链接测试得分: 100主要算法: Lucas定理,组合数,逆元题干: Lucas板子分析 运用Lucas定理 代码 #include<stdio.h>#include<stdlib.h>#define FORa(i,s,e) f...
2019-08-15 15:06:00 112
转载 Luogu-P1879 [USACO06NOV]玉米田Corn Fields
题目题目链接测试得分: 100主要算法: 状压DP(二进制优化)题干: 状压DP板子分析 1.就是像之前的互不侵犯一样,只是合法状态还要判断要与玉米地的贫瘠程度,是否可以种植玉米有关 2.向互不侵犯一样,判读是否两两相邻 3.好了上代码了 代码#include<stdio...
2019-08-15 12:25:00 104
转载 Luogu-P1896 [SCOI2005]互不侵犯
题目题目链接测试得分: 100主要算法: 状压DP(二进制优化)题干: 状压DP板子分析 1.对于国王这道题,有点类似于八皇后问题,但是这个点限制条件少一些,简单地说就是一次筛选的点较少,所以会导致搜索的超时 2.那可不可以用多维DP呢?,对于每一行,我们知道它只于前一行与自身有关,满足了DP的无...
2019-08-14 20:34:00 115
转载 Loj-SGU 223-国王
题目题目链接测试得分: 100主要算法: 状压DP(二进制优化)题干: 状压DP板子分析 1.对于国王这道题,有点类似于八皇后问题,但是这个点限制条件少一些,简单地说就是一次筛选的点较少,所以会导致搜索的超时 2.那可不可以用多维DP呢?,对于每一行,我们知道它只于前一行与自身有关,满足了DP...
2019-08-14 20:22:00 156
转载 Luogu-P2657 [SCOI2009]windy数
题目题目链接测试得分: 100主要算法: 数位DP题干: 数位DP板子分析: 预处理出f[i][j]长度为i且最高位为j的windy数个数void Init(){ FORa(i,0,M) f[1][i]=1; FORa(i,2,N) ...
2019-08-13 21:34:00 95
转载 素数
标题一定义 质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。一、素数的判定 试除法: 定理:若一个正整数是合数,则存在一个能整除N的数K,2≤K≤sqrt(n) 证明:反证法 Eratosthens筛选法 基本思想:质数的倍数一定不是质数 ...
2019-08-13 19:46:00 294
转载 Luogu-P1941 飞扬的小鸟
题目题目链接测试得分: 100主要算法: DP(零一背包,完全背包)题干: 背包组合问题应试策略:每一个点都是由前面的状态转移的,并且对后面的状态没有影响,满足最优化原理与无后效性原则,选择算法DP对于图上的每一个点都是由前一列降下来或者是前面升上来的,对于降下来的情况是...
2019-08-13 18:52:00 115
转载 组合数学
一、计数原理 计数原理 抽屉原理 加法原理 乘法原理 容斥原理 德摩根定理 容斥原理二、组合类问题 存在性问题 计数性问题 构造性问题 最优化问题三、排列 全排列 不全相异元素全排列 n!/(n1!*n2!*n3!*n4!...
2019-08-12 19:56:00 176
转载 LOJ-皇宫看守
题目题目链接测试得分: 100主要算法: 树型DP、点的最小覆盖,二分图(匈牙利算法)题干: 点加权的最小覆盖应试策略: 题目说的很清楚,用最少的点覆盖所有的点。题目给出的是个树,所以可以用动态规划来解决。 给出如下定义: F[i,0]表示i点不放,i可以被父亲节点观察到...
2019-08-07 15:11:00 183
转载 Luogu-P2016 战略游戏
题目题目链接测试得分: 100主要算法: 树型DP、点的最小覆盖,二分图(匈牙利算法)题干: 点的最小覆盖应试策略:定义状态dp[u][0/1]表示u这个节点不放/放士兵根据题意,如果当前节点不放置士兵,那么它的子节点必须全部放置士兵,因为要满足士兵可以看到所有的边,所以dp...
2019-08-07 10:53:00 92
转载 LOJ-数字转换
题目题目链接测试得分: 100主要算法: 树型DP(树的最长链)题干: 树的最长链应试策略:分析:先预处理出每个数i的约数和sum[i],如果sum[i]<i,则在它们之间连边为了方便我们建一条由sum[i]指向i的有向边,长度显然为1.这样一定会构成一棵以1为根树于是题目转换...
2019-08-07 10:01:00 552
转载 Luogu-P2014 选课
题目题目链接测试得分: 100主要算法: 树型DP、分组背包题干: 树上分组DP应试策略:对题目分析,这可能是一片森林,所以用0结点将森林连接起来,构成一棵根结点为0的树对于题目分析,是树上DP,但是对于每一个子树,只有一种选择,对每一棵子树又是分组背包树型分组背包DP 代码...
2019-08-07 09:27:00 146
转载 Luogu-P2015 二叉苹果树
题目题目链接测试得分: 100主要算法: 树型DP、零一背包题干: 树上零一DP应试策略:记忆化搜索如果是空结点如果是叶子结点直接返回苹果数以上都不满足的话,DP状态转移设置DP的转移,转移到左右儿子结点for(int i=1;i<cnt-1;i++) f[u][c...
2019-08-07 08:27:00 125
转载 树的中心
一、简介 树的中心是指:一个结点,对于每一个点的距离的最大值最小二、解决 1.Dfs1:标记以结点u为树根的子树链的最大值d1[u],次大值d2[u],以及来源的结点编号c1[u],c2[u] 2.Dfs2:找到链接结点u没有经过u子树的链的最大值fd[u] 如果这个点是前一个节点选中的最大链中的,则这个结点的fd[u]=max(fd[fa[u]],d...
2019-08-06 20:40:00 146
转载 校内测试-打怪兽
题目:主要算法: 记忆化搜索题干: 最长不下降链应试策略: 想到记忆化搜索,但是伪记忆化搜索,放弃了 打爆搜,卡时间代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define LL long ...
2019-08-06 16:37:00 87
转载 校内测试-密码破解
题目:主要算法: 字符串(模式匹配)题干: 文章翻译应试策略: 刚开始认为规则是样例。结果发现样例是错误的,有‘y’没有按照规则修改 最后问了格式,对于一篇文章如果有一个长度为1的单词,那么就只有‘I’与‘a’这两种情况,因为a比较容易判断,只需要前面和后面是空格就行,这样贪心得了100分,其它打正解的还没有我跑得...
2019-08-06 16:30:00 135
转载 树的最长路径(最远点对)
一、定义 对于一棵n个结点的无根树,找到一条最长路径。简单说,要找到两个点,使得它们的距离最远。二、求解基本的求法是,先随便找一个点作为根结点转换为无根树后,遍历每一个点,找出当i为根结点时的子树到叶子的最大距离d(j),在根据d(j)求出结点i作为根结点时整个树的最长路径,维护最长路径即可。 1.状态定义:d(i),i为根结点的子树到叶子的最大距...
2019-08-06 16:13:00 384
转载 树的重心
定义(百度百科) 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。换句话说,删除这个点后最大连通块(一定是树)的结点数最小。性质树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。把两棵树通过一条边相连,新的树的重心在原来...
2019-08-05 19:06:00 82
转载 一本通OJ-P1571凸多边形的划分
题目题目链接测试得分: 30主要算法: 动态规划,区间DP,高精类题干: 区间DP板子题应试策略:确定状态//f[i][j]表示的i-j这一凸边形划分的最小值枚举区间长度FORa(l,1,n)枚举区间开头for(int i=1,in=2*n-l+1;i<=in;i++)状态转移f...
2019-08-05 16:46:00 391
转载 Luogu-P1063 能量项链
题目题目链接测试得分: 100主要算法: 动态规划,区间DP(环状DP)题干: 环状区间DP板子题应试策略:确定状态f[i][j]表示的是合并i-j这几堆吸盘释放的能量的最大值枚举区间长度FORa(l,1,n)枚举区间开头for(int i=1,in=2*n-l+1;i<=in;i+...
2019-08-05 15:59:00 106
转载 ST表
一、RMQ问题 给定一个长度为N的区间,M个询问,每次询问Li到Ri这段区间元素的最大值/最小值。 如果暴力找最大值,复杂度是o(n)。但如果查询多次,这个复杂度就很大了。 解决这个问题的方法是离线ST表和支持在线修改的线段树二、ST表 一种利用dp求解区间最值的倍增算法。三、定义 f[i][j]表示i到i+2^(j−1)这段区间的...
2019-08-05 10:45:00 88
转载 平衡树
一、二叉查找树 简介 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值; (2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的节点。 1.二叉查找树的遍历 在二叉查找...
2019-08-05 10:28:00 78
转载 树链剖分
前言: 首先,在学树链剖分之前最好先把 LCA、树形DP、DFS序 这三个知识点学了 emm还有必备的 链式前向星、线段树 也要先学了。 如果这三个知识点没掌握好的话,树链剖分难以理解也是当然的。一、简介 树链剖分 就是对一棵树分成几条链,把树形变为线性,减少处理难度 需要处理的问题: 将树从x到y结点最短路径上所有节点的值都加上z...
2019-08-03 18:12:00 83
转载 倍增求LCA
一、引言 定义 LCA,最近公共祖先,是指一棵树上两个节点的深度最大的公共祖先。也可以理解为两个节点之间的路径上深度最小的点。 我们这里用了倍增的方法求了LCA。 我们的基本的思路就是,用dfs遍历求出所有点的深度。f[i][j]数组用来求的是距离节点i,距离2^j的祖先。可以知道,f[i][0]就是它的直接父亲。然后通过倍增的思路求出father数组的所有元素。然...
2019-08-03 10:46:00 64
转载 线段树
一、简介 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。 使用线段树可以快速的查找某一个节点在若...
2019-08-02 16:32:00 83
转载 树状数组
一、引言 1.什么是树状数组? 顾名思义,就是用数组来模拟树形结构呗。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。 2.树状数组可以解决什么问题 可以解决大部分基于区间上的更新以及求和问题。 3.树状数组和线段树的区别在哪里 树状数组可以解决的问题都可...
2019-07-31 21:19:00 102
转载 卡特兰数
一、卡特兰数原理 设h(n)为catalan数的第n项,令h(0)=1,h(1)=1,catalan数满足 递推式: h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2) 例如:h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2 ...
2019-07-29 18:17:00 76
转载 割点和桥
标题1一、定义 连通度(百度百科): 割点集合:无向图中,删除集合中所有的点以及点所连接的边后,无向图不连通的集合 割边集合:无向图中,删除集合中所有的边后,无向图不连通的集合 点连通度:无向图中,割点集合中最小集合中的元素个数 边连通度:无向图中,割边集合中的最小集合的元素个数 双联通图,割点,和桥: 双联通图...
2019-07-29 17:50:00 167
转载 子序列(超级水)
题目:求一个数列的子序列(超级水) 应试做法: Dfs:枚举长度,开头为第一个,但是对于序列中的每一个数有两种选择,选与不选 边界判断:假使数列已经枚举到结尾了,可是还不够,退出 如果队列到了结尾,正好没有这时候枚举的自序列长度正好为所需要的长度,输出合法的子序列 代码 #include<vecto...
2019-07-29 08:55:00 119
转载 斐波拉契数
一、简介(百度百科) 在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。二、推导斐波拉契递推公式 1.特征方程 插曲:特征方程 ...
2019-07-28 19:52:00 353
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人