memset函数

二分匹配模板

 ̄綄美尐妖づ 提交于 2019-11-27 21:09:36
1 #include <cstdio> 2 #include <cstring> 3 #include <queue> 4 #include <vector> 5 #include <algorithm> 6 using namespace std; 7 /****************************************************** 8 * 二分图匹配(匈牙利算法得邻接矩阵+dfs实现) 9 * 初始化:g[][]两边顶点的划分情况 10 * 建立g[i][j]表示i->j的有向边就可以了,是左边向右边的匹配 11 * g 没有边相连则初始化为0 12 * //un是匹配左边的顶点数,vn是匹配右边的顶点数 13 * 调用:res = hungray():输出最大匹配 14 * 优点:适用于稠密图,dfs找增广路,实现简洁易于理解 15 * 时间复杂度:O(V,E)。 16 * 顶点编号从0开始 17 const int maxn = 500 + 5; 18 int un, vn;//二分图中u, v的数目,使用前必须赋值 19 int g[maxn][maxn]; 20 int linker[maxn];//每个结点的匹配结点 21 bool used[maxn]; 22 23 bool dfs(int u) { 24 for(int v = 0;

ZROI 2019 暑期游记

孤街浪徒 提交于 2019-11-27 08:46:19
ZROI 游记 在自闭中度过了17天 挖了无数坑,填了一点坑 所以还是有好多坑啊zblzbl 挖坑总集: 时间分治 差分约束 Prufer序列 容斥 树上数据结构 例题C (和后面的例题) 点分 最大流、费用流、上下界 Hero meet devil(dp套dp) Pollards’ Rho CRT & exCRT BSGS & exBSGS NTT & FFT 以及 分治NTT & FFT (& 原根) Cipolla 算法(二次剩余) Min25 ZROI D1 T1 小K与集合 题目传送门 首先知道,如果有多于k个1,显然直接把k个1分别放到不同的组,然后剩下的随便放,第一回合就没法拿了。 那么如果只有k-1个1呢,稍微想一下知道剩下那个组至少必须放k个2。因为就算拿到了2的组,会得到k个1。 然后感性想一想,k个i可以当一个i-1。没错,这题这么贪心是对的。 证明咕咕咕了。 这个玩意实现起来有点麻烦,我写的是递归。用ned(x,w)表示需要拿1个x到w组,如果没有x了递归到进行k次ned(x-1,w)。记忆化一下是不是这个数字已经凑不出来了。 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> using namespace std;

多项式全家桶

时光怂恿深爱的人放手 提交于 2019-11-26 20:58:02
前置芝士:麦克拉伦展开,泰勒展开,牛顿迭代,快速傅里叶变换,标记($mod x^n$)。 正片: 1.多项式加法。 2.多项式减法。 3.多项式乘法。 4.多项式求逆。 5.多项式带余除法。 6.多项式开根。 7.多项式对数函数。 8.多项式指数函数。 9.多项式的k次幂/k次方根 10.多项式插值 正片开始: 1.多项式加法:(略) 2.多项式减法:(略) 3.多项式乘法:(FFT即可) 4.多项式求逆: 传送门: 设原多项式为$H(x)$,所求为$F(x)(mod \; x^t)$ 假设对于所求多项式$G(x)\equiv F(x)(mod \; x^n)$的$G(x)$已经得到,那么: $G(x)H(x)\equiv 1(mod \; x^n)$ $G(x)H(x)-1\equiv 0(mod \; x^n)$ $[G(x)H(x)-1]^2\equiv 0(mod \; x^{2n})$ $G(x)^2H(x)^2-2G(x)H(x)+1\equiv 0(mod \; x^{2n})$ $G(x)H(x)[2-G(x)H(x)]\equiv 1(mod \; x^{2n})$ $\frac{1}{H(x)}\equiv G(x)[2-G(x)H(x)](mod \; x^{2n})$ $F(x)\equiv G(x)[2-G(x)H(x)](mod \; x^{2n})$

洛谷P5158 【模板】多项式快速插值

橙三吉。 提交于 2019-11-26 20:44:12
https://www.luogu.org/problemnew/show/P5158 题解: https://www.cnblogs.com/zzqsblog/p/7923192.html 备份 版本1:基于 版本1 1 #prag\ 2 ma GCC optimize(2) 3 #include<cstdio> 4 #include<algorithm> 5 #include<cstring> 6 #include<vector> 7 #include<cmath> 8 using namespace std; 9 #define fi first 10 #define se second 11 #define mp make_pair 12 #define pb push_back 13 typedef long long ll; 14 typedef unsigned long long ull; 15 const int md=998244353; 16 const int N=262144; 17 #define delto(a,b) ((a)-=(b),((a)<0)&&((a)+=md)) 18 inline int del(int a,int b) 19 { 20 a-=b; 21 return a<0?a+md:a; 22 } 23 int rev[N]; 24

Socket封装之聊天程序(二)

▼魔方 西西 提交于 2019-11-26 03:57:55
  今天,学习一下socket的封装。 类图   首先,我们把需要封装的各个类初步的设计如下:   接下来,我们建立类与类之间的关系:   其中,CStream类可有可无,这个类是用来封装各种读写流的。 socket封装 stream类 stream.h: class CStream { public: CStream(int fd = -1); ~CStream(); void SetFd(int fd); int GetFd(); int Read(char *buf, int count); //阻塞读 int Read(char *buf, int count, int sec); //超时读 // int Read(char *buf, int count, CAddress &addr); //UDP读 bool Write(char *buf,int count); //普通写 private: int m_fd; }; stream.cpp: include "stream.h" CStream::CStream( int fd /*= -1*/ ) { this->m_fd = fd; } CStream::~CStream() { } void CStream::SetFd( int fd ) { this->m_fd = fd; } int CStream: