上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 63 下一页
摘要: ```//首先将池塘舍去,然后将所有 i+j 为偶数的点当作 x,//将所有 i+j 为奇数的点当作 y,//然后直接拿 (x,y) 寻找增广路,//通过上下左右进行查找匹配,//再通过 link[x1][y1]=(x2,y2) 来记录匹配点#include#define LL long longconst int N=1000+5;const int dx[]= {-1,1,0,0};const... 阅读全文
posted @ 2020-03-03 11:20 晴屿 阅读(115) 评论(0) 推荐(0) 编辑
摘要: ```//判断每个气球需要多少次才能扎破//大于k的,那么就不满足条件//可以看作最小点覆盖问题//分为两个集合,横坐标集合,纵坐标集合//然后每个点的坐标在这两个集合中且两点之间有连线//然后就是求最小点覆盖 #include#include#include#include#include#include#includeusing namespace std;const int maxn = 1... 阅读全文
posted @ 2020-03-03 10:51 晴屿 阅读(101) 评论(0) 推荐(0) 编辑
摘要: ```#include using namespace std;const int N=510,M=100010;int e[M],ne[M],h[N],idx,ans;bool st[N];int n,m,num,a;int match[N];void add(int a,int b) { e[idx]=b,ne[idx]=h[a],h[a]=idx++;}int find(int x) { f... 阅读全文
posted @ 2020-03-02 22:50 晴屿 阅读(92) 评论(0) 推荐(0) 编辑
摘要: ```//匈牙利求最大匹配//从左边每个非匹配点出发,做一遍增广,标记所有经过的点,//左边所有未被标记的点,和右边所有被标记的点,加起来就是要构造的方案//左边所有的非匹配点,都被标记了,//右边所有的非匹配点,一定没有被标记//对于每一个匹配边,左右两点要么同时被标记,要么同时不被标记//那么左边剩下的未被标记的点,一定是匹配点//右边所有被标记的点,都是匹配点//不在匹配中的情况:左边的非匹... 阅读全文
posted @ 2020-03-02 22:29 晴屿 阅读(59) 评论(0) 推荐(0) 编辑
摘要: ```#include #include #include #include using namespace std;const int N =1e5;int n;int h[N], e[N], ne[N], idx;int match[N];bool st[N];void add(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ... 阅读全文
posted @ 2020-03-01 00:06 晴屿 阅读(112) 评论(0) 推荐(0) 编辑
摘要: ``` #include using namespace std ; const int N=10000000; int a[N],idx,son[N][2]; //把每个数插入到trie树中 void insert(int x) { //从头开始插入 int p=0; for(int i=30;i>=0;i--) { //取出当前位 int u=x>>i&1; //如果之前不存在的话 if(!s 阅读全文
posted @ 2020-02-29 21:00 晴屿 阅读(88) 评论(0) 推荐(0) 编辑
摘要: ``` #include using namespace std ; const int N=10000000; int a[N],idx,son[N][2]; //把每个数插入到trie树中 void insert(int x) { //从头开始插入 int p=0; for(int i=30;i>=0;i--) { //取出当前位 int u=x>>i&1; //如果之前不存在的话 if(!s 阅读全文
posted @ 2020-02-29 20:38 晴屿 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 参考文章:https://blog.csdn.net/u013686535/article/details/52197912 阅读全文
posted @ 2020-02-29 20:14 晴屿 阅读(69) 评论(0) 推荐(0) 编辑
摘要: ```#include#includeusing namespace std ;const int N=1e6+10;int n,m;int ne[N];char p[N],s[N];int main() { int t; cin>>t; while(t--) { cin>>p+1>>s+1; n=strlen(p+1); m=strlen(s+1); int ans=0; for(i... 阅读全文
posted @ 2020-02-29 18:10 晴屿 阅读(81) 评论(0) 推荐(0) 编辑
摘要: ``` #include using namespace std; const int maxn = 1000010; int n; char a[maxn]; int ne[maxn]; void cal_next(char b[]) { for (int i=2,j=0;i<=n; i++) { while(j&& b[j+1]!=b[i]) j=ne[j]; if(b[j+1]==b[i]) 阅读全文
posted @ 2020-02-29 18:02 晴屿 阅读(88) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 63 下一页