笔记
我不要叫软糖汽水了
热爱可抵岁月漫长
展开
-
二分图(染色法和匈牙利算法)
二分图定义:可以把图分成两块 两块图之间没有边相连当且仅当图中不含有奇数环才会有二分图 反之 二分图一定没有奇数环染色法用深搜和宽搜都可以#include<iostream>#include<cstring>using namespace std;int n,m;const int N=1e5+10,M=2*N;int h[N],ne[M],e[M],idx;int color[N];void add(int a,int b){ ...原创 2021-08-03 20:19:30 · 124 阅读 · 0 评论 -
最小生成树
朴素版prim在这里 dis[ ]代表点到集合的距离 st[ ]代表该点有没有加入集合流程:1.初始化所有点到集合的距离为正无穷2.一开始所有点距离集合的距离都是正无穷 所以随便找到一个点作为起点并加入集合3.用这个起点更新其他点到集合(目前该集合只有这个起点)的距离4.继续找目前距集合最近的点 如果找到的这个点还是距集合正无穷 说明当前的集合和谁都不连通 因为最小生成树要包含所有顶点 所以这个图没有最小生成树 如果找到一个距离最小的点 就把他加入集合 并且更新最小生成树re...原创 2021-08-03 17:10:04 · 66 阅读 · 0 评论 -
poj2533 Longest Ordered Subsequence//求最长上升子序列长度
原题链接:2533 -- Longest Ordered Subsequence (poj.org)题意:求最长上升子序列长度思路:用一个数组存对于从第0位到第i位的最长子序列长度,求第i+1位子序列长度只需要对0到i进行遍历,找到既比他小并且子序列长度+1(加上她本身)最大的那个数字,就是第i+1位子序列的最长长度#include<iostream>#include<cstring>int main(){ using namespace std;原创 2021-07-24 23:57:02 · 100 阅读 · 0 评论 -
vector和deque
是在一道题里发现vector的妙处 随便写点对他的理解及用法 以便以后用到可以查阅及补充vector是一个动态数组,在c++中是个很有用的容器,用的时候记得要加上头文件#include<vector> 那么假设我定义的是vector<int>a[100],就相当于创建了100个int类型的动态数组(100个这样的容器),它就像一个二维数组,只是第一维的大小是固定的(不超过100),但第二维的大小不固定。 如果Q是...原创 2021-07-20 17:45:38 · 388 阅读 · 1 评论 -
关于pow函数
pow函数的参数和返回值都是double类型的 所以如果整型数据一定要用到pow函数的时候 可以运用强制类型转换原创 2021-07-08 20:43:39 · 1516 阅读 · 0 评论 -
关于while里的cin
就是平时写的这个while(cin>>n){ if(n==0) break; cout<<n<<endl}可以写成这样:while(cin>>n,n){ cout<<n<<endl;}原创 2021-07-07 16:46:28 · 1642 阅读 · 0 评论 -
c语言中的全局数组和局部数组
在main函数里面开一个int[1000000]的数组会提示stack overflow,但是将数组移到main函数外面,变为全局数组的时候就可以,就感到很迷惑,然后上网查了些资料,才得以理解。对于全局变量和局部变量,这两种变量存储的位置不一样。对于全局变量,是存储在内存中的静态区(static),而局部变量,则是存储在栈区(stack)。这里,顺便普及一下程序的内存分配知识:C语言程序占用的内存分为几个部分:1、堆区(heap):由程序员分配和释放,比...转载 2021-05-22 15:26:15 · 4534 阅读 · 2 评论 -
从今天起就是一名acmer啦!
原创 2021-05-15 21:44:00 · 72 阅读 · 0 评论