- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 经典规划
经典规划1.最大连续子序列和给定一个数字序列A1,A2,...,AnA_1,A_2,...,A_nA1,A2,...,An,求i,j(i≤j≤n),i,j(i\le j\le n) ,i,j(i≤j≤n),使得Ai+...+AjA_i+...+A_jAi+...+Aj最大,输出这个最大和步骤1:令状态dp[i]dp[i]dp[i]表示以A[i]A[i]A[i]作为作为末尾的连续序列最大和,求解dp[i]dp[i]dp[i]数组步骤2:考虑两种情况1◯\text{\textcircled
2021-03-14 15:45:34 122
原创 学到的知识
学到的知识概括.结构体的存储,用构造函数初始化,重载运算符定义存储数据的优先级大整数各类加减乘除运算3.优先队列并查集,快速幂运算1.结构体struct bign { int d[M]; int len; bign() {} //默认生成的构造函数 可用来构造不方便赋值的结构体数组,构造函数可重载 bign() { memset(d, 0, sizeof(d)); len = 0; }};struct Edge
2021-03-14 15:39:00 59
原创 学习笔记最短路径
题目详情N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离输入描述第一行两个正整数N(2<=N<=100)M(M<=500),表示有N个城市,M条道路接下来M行两个整数,表示相连的两个城市的编号输出描述N-1行,表示0号城市到其他城市的最短路,如果无法到达,输出-1,数值太大的以MOD 100000 的结果输出。示例:输入4 41 22 31 30 1输出8911两种方法实现,一种用
2021-03-14 15:35:46 186
原创 算法笔记学习 PAT B1035
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn=110;int a[110],b[110],c[110];int Map[maxn]={0};//合并两个子区间void merge(int A[],int L1,int R1,int L2,int R2){ int i=L1,j=L2; int temp[maxn],index=
2020-09-08 22:48:58 105
原创 九月四号《算法笔记》学习
文章目录1.归并排序(二路)<1>递归实现<2>非递归实现3.快速排序4.随机数生成1.归并排序(二路)<1>递归实现反复将[left,right]区间分为两半,对两个子区间[left,mid],[mid+1,right]分别递归进行归并排序,然后合并为有序序列。const int maxn=100;//合并两个子区间void merge(int A[],int L1,int R1,int L2,int R2){ int i=L1,j=L2; int te
2020-09-04 19:25:31 71
原创 《算法笔记》初学者笔记
1.二分查找解决寻找有序序列中第一个满足某条件的元素的位置的固定模板1.A[ ]为递增序列,x为欲查询的数,函数返回第一个大于等于x的元素的位置二分的上下界为左闭右闭的[left,right],传入的初值为[0,n]int lower_bound(int A[],int left,int right,int x){ int mid; while(left<right){ mid=(left+rught)/2; if(A[mid]>=x){ right=mid; }
2020-09-03 22:09:35 83
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人