算法章
文章平均质量分 57
风送雨
阶前满尘埃,皇图兴替应世代
名权争,无奈登高楼台
展开
-
C++常用标准模板库(STL)
C++常用标准模板库1.vector(向量,即动态数组)时间复杂度分析:数组后面插入元素和删除尾部元素O(1),头部或者中间插入删除依旧是O(n)优点:可以动态的随着元素的增加和减少改变数组的长度,使用起来与普通数组区别不大操作方法:头文件 #include定义与初始化操作vector<int>v;//创建一个数组v,类型为intvector<int>v(v1);//创建一个数组v,类型为int,并且初始化为v1vector<int>v(v1.b原创 2021-03-11 15:25:26 · 1213 阅读 · 0 评论 -
动态规划:背包专题
背包专题//这里使用f[N][N]作为dp的数组/*val[N]表示价值,w[N]表示体积*/typedef struct node{ int val;//价值 int w;//体积}bao;一.01背包01背包特点:每个物品只放一次1.朴素写法//模板const int n=1003;int f[N][N],val[N],w[N];for(int i=1;i<=n;i++){ for(int j=1;j<=v;j++) {原创 2021-03-09 20:09:40 · 145 阅读 · 0 评论 -
数论:博弈论
数论:博弈论1.巴什博弈(BAshGame)题目模板只有一堆n个物品两个人轮流取,每次只能取1~m个物品,谁先取完,谁胜利;(n,m是输入的随机数)解题思路1.当 n = m+1 时 第一个取的人不可能获胜;2.•当 n = k(m + 1) + r 时 (k,r,s都是未知的整数)* •先取者拿走 r 个,那么后者再拿(1~m)个 • 此时 n =(k-1)*(m+1)+s •先取者再拿走s 个 最后总能造成 剩下n=k(m+1) 的局面*3.•若n=k原创 2021-03-09 20:06:48 · 390 阅读 · 1 评论