自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 关于完全背包的一点理解(复习)

dp[i][j]所表示的集合的含义:前i个 物品 能组成 的合为j的所有方案 属性(即dp[i][j]里面存的值):方案的集合是否为空 dp[i][j] = dp[i-1][j-a[i]]||dp[i-1][j-2*a[i]]||dp[i-1][j-k*a[i]]..... dp[i][j-a[i]] = dp[i-1][j-a[i]]||dp[i-1][j-2*a[i]]||dp[i-1][j-k*a[i]]..... 所以 dp[i][j] = dp[i][j] || dp[i][j-a[i]] 所以说

2021-11-10 15:28:36 273

原创 (int *)&prt的自己的理解

(int *)&prt的自己的理解 int * prt = & a; 那么 &prt 则返回的是指针的自己的地址 然后 我 (int *) &prt ; 即是对&prt 这 返回的prt的地址的这一数据 做了一个强制类型转换 例如 int * p = &a 很明显p是一个int型指针变量 所以我们(int *) 即是让&prt返回的这一数据转换为int指针型的变量 所以(int *)&prt 是一个指针 而这个指针自己保存的数据就是指针prt

2021-10-17 21:22:45 464

原创 P2577 [ZJOI2005]午餐

贪心可得吃饭时间长的优先在前面打饭得到的解更优 证明过程: 假设第i个人打饭时间为a[i].da,第i个人吃饭的时间为a[i].cf,第j个人同理 假设a[i].cf>a[j].cf **所以就有两种情况: 1.第i个人在第j个人的前面,此时设最后一个人吃完饭的时间为t1 t1=max(a[i].cf+a[i].da,a[j].da+a[j].cf+a[i].da); 2.若第j个人在第...

2019-07-28 18:18:10 201

原创 悬线法(解决最大子矩阵类型的问题)

悬线法: 顾名思义:悬线法就如条悬着的线一般 先定义几样东西: 【定义子矩形】 有效子矩形:内部不包含障碍点的、轮廓与整个矩形平行或重合的子矩形 极大子矩形:每条边都不能向外扩展的有效子矩形。 最大子矩形:所有有效子矩形中最大的一个(或多个)。 我们可以很显然的看出:一个子矩阵要最大,那么这个子矩阵一定不能再向上,下,坐,右扩展,那么可得最大子矩阵是属于极大子矩阵的,那么我们只需要找出所有极大...

2019-07-27 12:15:27 511

原创 对于SPFA的一些理解(写给自己)

SPFA 算法优点: 1.时间复杂度比普通的Dijkstra和Ford低。 2.能够计算负权图问题。 3.能够判断是否有负环 核心思想 我们采取的方法是动态逼近法: 1.设立一个先进先出的队列 2.每次取出队首元素,用队首元素到起点的最优值对与其相连的其他元素的到起点的最优值进行优化(a+b>c)正确性是显然的 3.当队列为空时及所有元素优化到不能再优化了,算法结...

2019-07-14 21:28:00 565

原创 树状数组1(单点修改,区间查询)

第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3个整数,表示一个操作,具体如下: 操作1: 格式:1 x k 含义:将第x个数加上k 操作2: 格式:2 x y 含义:输出区间[x,y]内每个数的和 #include<bits/stdc++.h> using namespac...

2019-05-08 12:51:37 413

原创 树状数组2(区间修改,单点查询)

输入格式: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含2或4个整数,表示一个操作,具体如下: 操作1: 格式:1 x y k 含义:将区间[x,y]内每个数加上k 操作2: 格式:2 x 含义:输出第x个数的值 #include<bits/stdc++.h> using...

2019-05-08 12:47:46 338

原创 并查集

**如题,现在有一个并查集,你需要完成合并和查询操作。** n个元素,m次操作 #include<bits/stdc++.h> using namespace std; int n,m,x,a,b; int root[10001]; int anc(int x){ if(root[x]==0) return x; else{ root[x]=anc(r...

2019-05-08 12:43:32 108

原创 最小生成树

**给出一个无向图,求出最小生成树,如果该图不连通,则输出orz** #include<bits/stdc++.h> using namespace std; struct rec{ int x,y,z; }edge[500010]; int fa[100010],n,m,ans; bool cmp(rec a,rec b){ return a.z<b.z; } int ge...

2019-05-08 12:40:55 166

原创 单源最短路径(SPFA)

#include<bits/stdc++.h> using namespace std; vector<int>ver[10001],edge[10001]; int n,m,s,d[10001]; bool pd[40010]; queue<int> q; void SPFA(){ q.push(s); pd[s]=1;d[s]=0; whi...

2019-05-08 12:37:45 212

原创 单源最短路径(Dijkstra)+堆优化

// luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; long long n,heap_size; long long N,m,s,dis[100010]; bool vis[100010]; struct node{ long long to,w; }; struct vp{ l...

2019-05-08 12:33:13 350

原创 最小堆

int heap_size,heap[100010]; void add(int d){ heap[++heap_size]=d; int now=heap_size; while(now>1){ int next=now>>1; if(heap[now]>=heap[next]) break; swap(heap[now],heap[next]); ...

2019-05-08 11:54:28 143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除