- 博客(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 109
原创 学到的知识
学到的知识 概括 .结构体的存储,用构造函数初始化,重载运算符定义存储数据的优先级 大整数各类加减乘除运算 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 50
原创 学习笔记最短路径
题目详情 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 4 1 2 2 3 1 3 0 1 输出 8 9 11 两种方法实现,一种用
2021-03-14 15:35:46 155
原创 算法笔记学习 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 88
原创 九月四号《算法笔记》学习
文章目录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 62
原创 《算法笔记》初学者笔记
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 78
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人