算法入门笔记
算法入门笔记
普通网友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
暑假集训 第五节 BIT树状数组
1.单点修改、区间查询 int lowbit(int x) { return x=x&(-x); } 单点修改 void update(int x,int num) { for(int i=x;i<=n;i+=lowbit(i)) C[i]+=num; } 区间查询 int getsum(int x) { int ans=0; for(int i=x;i;i-=lowbit(i)) ans+=C[i]; return ans; } 2.区间修改、单点查询 与原创 2020-07-24 11:27:22 · 155 阅读 · 0 评论 -
暑假集训 第三节 哈夫曼
int n, a[100]; int WPL() { priority_queue<int, vector<int>, greater<int> > q; for (int i = 0; i < n; i++) q.push(a[i]); int wpl = 0; while (q.size()>1) { int d1 = q.top(); q.pop();原创 2020-07-19 16:05:15 · 111 阅读 · 0 评论 -
暑假集训 第四节 线段树
#define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<algorithm> #include<functional> #include<numeric> #include<string> #include<vector> #include<cstring> //memset #include<queue> using namespace std原创 2020-07-23 11:28:06 · 159 阅读 · 0 评论 -
KMP(看毛片)NEXT数组模板
int next[100005];//next数组 void getnext(char* s){//构造next数组 next[0]=-1; int i=0,j=-1; //j初值赋值0其实也行,仅仅是为了少一个判断, while(s[i]){ if(j==-1||s[i]==s[j]) next[++i]=++j; else j=next[j]; } } ...原创 2020-04-25 16:26:24 · 7435 阅读 · 0 评论 -
算法入门笔记(七):最长公共子序列长度
#include<iostream> #include<algorithm> using namespace std; char v1[100100], v2[100100]; //v1:abcd v2:becd 3(bcd) int dp[10010][10010]; int n, m; //两个字符串的长度 int main() { for (int...原创 2020-04-17 16:21:46 · 665 阅读 · 0 评论 -
算法入门笔记(六):背包dp
算法入门笔记:背包dp //01背包 void ZeroOnePack(int v, int w, int m) { //v为当前物品的容量 m为给定最大的容量 w为当前物品的价值 for (int i = m; i >= v; i--) { dp[i] = max(dp[i], dp[i - v] + w); } } //完全背包 void CompletePack...原创 2020-03-11 16:55:37 · 266 阅读 · 0 评论 -
算法入门笔记(五):01背包dp
算法入门笔记:背包d 01背包dp 简单版 代码 优化版 代码 持续更新中······原创 2020-03-09 17:39:40 · 293 阅读 · 0 评论 -
算法入门笔记(四):大数相加减(高精度)
算法入门笔记:大数相加减(高精度) #include<iostream> #include<string> #include<algorithm> using namespace std; string A, B; int a[10000], b[10000], c[10000], i, j; char ch = '-'; int main() { cin &...原创 2020-03-09 12:50:20 · 265 阅读 · 0 评论 -
算法入门笔记(三):二分查找(折半查找)
算法入门笔记:二分查找 int find(int a[],int len,int m) //len为数组的长度 m为被查找的数 { int left = 0, right = len - 1; while (left <= right) { int k = (left+right) / 2; if (m...原创 2020-03-09 12:44:20 · 277 阅读 · 0 评论 -
算法入门笔记(一):快速幂基础
算法 快速幂基础原创 2020-03-09 11:22:18 · 179 阅读 · 0 评论
分享