摘要:
一、基本概念 1、链式区间dp for(int len = 2; len <= n; len++){ //枚举区间长度 for(int i = 1; i + len - 1 <= n; i++){//枚举左边界 int j = i + len - 1; //有边界 for(int k = i; k 阅读全文
摘要:
1、贪心算法的基本性质: 贪心选择性质: 所求问题的整体最优解,可以通过一系列局部最优的选择,即贪心选择来达到。 贪心算法只有在具有贪心选择性质时才能保证获得整体最优解。 最优子结构性质: 一个问题的最优解包含其子问题的最优解。 2、贪心算法与动态规划算法异同 |算法|特点| |-|-| |动态规划 阅读全文
摘要:
1、多组输入没有结束标志的两种表示形式 #method1: try: while True: #代码 except EOFError: pass #method2: while True: try: #代码 except: break 2、python的print()函数相关用法 3、range(s 阅读全文
摘要:
1、基本概念 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法。其压缩率通常在20%~90%之间。哈夫曼编码算法用字符在文件中出现的频率来建立一个用0,1串表示各字符最优表示方式。 给出现频率高的字符较短的编码,出现频率较低的字符以较长的编码,可以大大缩短总代码长。 计算文件总码长 2、前缀码 阅读全文
摘要:
1、快读相关代码 inline int read() { int x=0,f=0; char ch=getchar(); while(!isdigit(ch))f|=(ch=='-'),ch=getchar(); while(isdigit(ch))x=(x<<1)+(x<<3)+(ch^48),c 阅读全文
摘要:
1、Cut Ribbon 思路一:数据范围很小,考虑直接枚举。 #include<bits/stdc++.h> #define int long long using namespace std; int n, p, q, r; signed main(){ cin >> n >> p >> q > 阅读全文
摘要:
一、列表的概念 1、列表的创建 列表是由一组任意类型的值组合而成的序列,组成列表的值称为元素,每个元素之间用逗号隔开。 列表中的元素是可变的 #列表类似于c++中的数组,数组下标从0开始 list1 = [a, b, c] list2 = [a,] #通过list()函数创建列表 list1 = l 阅读全文
摘要:
1、基本概念 BKDRHash的基本思想就是把一个字符串当作一个k进制数来处理。 2、代码: #define int unsigned long long //这种情况是使用自然溢出 const int mod = 1e9 + 7; int prime = 19;//取一个素数 int BKDRHa 阅读全文
摘要:
一、状态压缩DP概述 1、概念 状态压缩dp通过将状态转换成整数,来实现状态转移。 前置知识:位运算(&、|、!、^) 当要处理一些集合问题的时候,可以将状态转换为整数,运用二进制相关知识解决问题。 二、例题 1、互不侵犯 分析: 前一行会决定后一行的选择 状态转移方程:$f[i][j][k] += 阅读全文
摘要:
###一、$A*$搜索算法概述 $dijkstra$算法的节点优先级取决于节点到起点的花费。 $BF$算法的优先级,取决于节点到终点的花费(无法解决起点和终点之间存在障碍物的情况)。 $A*$搜索算法节点的优先级计算公式(启发函数): $f(n) = g(n) + h(n)$ $f(n)$是节点$n 阅读全文