摘要:HDU 2819 因为矩阵的对角线全为1,所以是一个满秩矩阵 R(A) = N,初等变换不改变矩阵的秩, 所以如果交换矩阵的行或矩阵的列不能得到完全匹配的话,交换行和列也无法得到
阅读全文
摘要:https://blog.csdn.net/yuewenyao/article/details/81026278 附上一道简单板子题 POJ 3259 因为需要存在一个节点返回自身时路径长度为负数,问题转换为了判断图中是否存在负权环,如果存在则输出YES,否则输出NO /* * @Author: C
阅读全文
摘要:https://www.cnblogs.com/logosG/p/logos.html https://blog.csdn.net/chenshibo17/article/details/79933191 HDU 2255
阅读全文
摘要:正常的 dijkstra 因为每v 个节点,每次都要找出未被访问过的最小值 ,复杂度为O(v^2) 可以用优先队列优化,复杂度为O(E),E为Grape中的边数 https://www.luogu.org/record/25575996一道卡时间
阅读全文
摘要:https://blog.csdn.net/jianxingzhang/article/details/81208814 dinic算法 https://www.cnblogs.com/graytido/p/10809211.html why dinic算法分层能优化时间 HDU 3549 多源点多
阅读全文
摘要:简单题,反正菜 Dasha Code Championship - SPb Finals Round (only for onsite-finalists) A. Anadi and Domino https://codeforces.com/problemset/problem/1210/A 思路
阅读全文
摘要:https://www.cnblogs.com/sun-of-Ice/p/9330352.html 取模运算一般情况下是需要的,当然也可以省去。 POJ 1995
阅读全文
摘要:https://codeforces.com/contest/1237/problem/C2 平面上的点可以把 x 轴坐标相等的点临近消除,剩余每个x轴只剩一个节点,临近相消除就好了,转换为三维则先消除x , y 轴坐标相等的节点就好了.
阅读全文
摘要:补充下定理: 定理一:如果d = gcd(a, b),则必能找到正的或负的整数k和l,使d = a*k + b*l。 证明:由于 gcd(a, 0) = a,我们可假设b ≠ 0,这样通过连除我们能够写出 a = b*q1 + r1 b = r1*q2 + r2 r1 = r2*q3 + r3 ……
阅读全文
摘要:#include<bits/stdc++.h> #define llinf (0x3f3f3f3f3f3f3f3f) #define inf (0x3f3f3f3f) typedef long long i64; using namespace std; i64 exgcd(i64 a,i64 b,
阅读全文
摘要:http://codeforces.com/problemset/problem/1244/D 暴力为一条链染色
阅读全文
摘要:https://codeforces.com/contest/1213/problem/G(图论) 思路:保证每次加入的边一定不会小于现存的图中的边,因为题目保证了一定为一棵树,所以每次加入的边必定属于不同的集合,计算下每个集合的个数,新加入的边一定会增加 sum[u] * sum[v] 所属不同集
阅读全文
摘要:有必要挂下提醒下,写了个巨蠢的判断,菜得真实 思路:判断一下str最小的能够比iq大的就好了,用二分查找找出
阅读全文
摘要:https://codeforces.com/contest/1220/problem/E //思路:由题可知,不能往回走,因此先找出所有的叶子节点,从叶子节点往root根节点去搜索,碰见环则停止,因为在环中的节点是一定可以相互到达的,因此就不会存在一个选择问题 //最后把所有环中的节点w[i]累加
阅读全文
摘要:https://codeforces.com/contest/1221/problem/D https://codeforces.com/problemset/problem/1215/B
阅读全文
摘要:// 三点分图,还是挺简单的,讲下思路:先把所有的点分为3个集合, //judge下集合不能为空,集合内的点不能有连线,最后judge下边数 #include<bits./stdc++.h> using namespace std; typedef long long i64; const int maxn = 1e5 + 32; int n,m,u,v,col[maxn]; set<int> G
阅读全文
摘要:没什么意思,注意下细节//#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<cstring> #define inf (0x3f3f3f3f) using namespace std; const int maxn = 16; char Grape[maxn][maxn]; bool vis[maxn]; in
阅读全文
摘要://思路:因为可以任意位置的字符移动到首或尾位 //所以只需每次枚举最大不需要移动的子串就好了 #include<bits/stdc++.h> #define inf (0x3f3f3f3f) using namespace std; int main() { ios::sync_with_stdi
阅读全文
摘要:https://blog.csdn.net/acdreamers/article/details/16902023//学习了 ——邻接矩阵,即用二维数组实现,G[u][v]为<u,v>边的权值。邻接矩阵适用于存储稠密图,点不多而边很多的时候,邻接矩阵的优点是好写,可读性高,方便删除边。 ——邻接表,
阅读全文
摘要:https://codeforces.com/contest/1234/problem/D 写了个巨蠢的线段树(不愧是垃圾),有必要提醒下自己这种题怎么做 https://codeforces.com/contest/1234/problem/C 简单实现 垃圾如我,哭啦
阅读全文