摘要:
链接 #include <bits/stdc++.h> using namespace std; const int maxn = 1e4 + 10; int n,m,cnt,a[2 * maxn],fa[2 * maxn]; string str; struct node{ int l,r,ans 阅读全文
摘要:
银河英雄传说 #include <bits/stdc++.h> using namespace std; const int maxn = 3e4 + 10; int t,a,b,fa[maxn],d[maxn],ssize[maxn]; //d表示与根节点的距离 //ssize表示根节点集合的大小 阅读全文
摘要:
链接 按照过期时间从小到大排序(两个元素一组可以用pair,放在 vector里面,排序) 当前商品的个数 > 过期时间,把利润最小的替换出去(小根堆) #include <bits/stdc++.h> #define int long long using namespace std; int n 阅读全文
摘要:
链接 感觉正常写即可 #include <bits/stdc++.h> using namespace std; const int maxn = 2e6 + 10; int t,n,a,b,e,fa[maxn],aa[maxn],cnt,ssize; vector<pair<int,int> >v 阅读全文
摘要:
#include <bits/stdc++.h> using namespace std; const int maxn = 3e5 + 10; int n,m,fa[maxn],col[maxn]; int find(int x){ return fa[x] == x ? x : fa[x] = 阅读全文
摘要:
百度百科 STL 离散化 步骤 1 排序 2 删除重复元素 3 索引元素对应的值 why?? 阅读全文
摘要:
链接 由题意知:a[i][j] % a[i -1][j] == 0 && a[i][j] % a[i][j - 1] == 0根据这个条件可以dfs #include<bits/stdc++.h> using namespace std; #define For(i,a,b) for(int i = 阅读全文
摘要:
A 或运算,不是异或, 输出1-n即可 B 任意一个点都能走到右下角,所以只需要满足最后一列都是D 最后一行都是 R即可(右下角除外) 统计最后一列R + 最后一行 D的个数 #include <bits/stdc++.h> using namespace std; #define For(i,a, 阅读全文
摘要:
你有一张n个点的完全图(即任意两点之间都有无向边) 现在给出这张图的两棵生成树 定义一次操作为:在任意一棵生成树中删除一条边后再加入一条边(必须在同一棵树中操作),同时需要保证操作完后仍然是一棵树 问使得两棵树相同的最少操作次数,若不存在合法的操作方案,输出-1 注意:这里的相同指的是点集与边集均相 阅读全文
摘要:
Call to your teacher x有y的电话号码,也就是说x可以给y打,y可以给所拥有的号码打,依此类推,最后有没有一个人有n的号码 单向的结构,代码呢? #include <bits/stdc++.h> using namespace std; int fa[60],n,m; int m 阅读全文