自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 拓扑排序 -- Codeforces Round #660 (Div. 2) D Captain Flint and Treasure

D Captain Flint and Treasure题意:给出两个序列a和b,一次操作你可以将ans+=a[i],a[b[i]]+=a[i]。询问最后ans的最大值。题解:拓扑排序,遇到负权值的节点就跳过,减少它给答案带来的贡献。code:#include<bits/stdc++.h>using namespace std;const int maxn = 2e5 + 5;long long a[maxn], ans;int b[maxn], c[maxn], d[.

2020-07-31 16:36:36 225

原创 dfs + 最短路 -- 6797 Tokitsukaze and Rescue

6797 Tokitsukaze and Rescue题意:给你一张n个节点的完全图, 去掉k条边使图的最短路最大,求这个最大值。思路:边权随机的情况下,最短路的边数很少。所以只要每次跑一下最短路,抓一条最短路出来,枚举删除最短路上的哪条边,然后递归,变成删 除 (k−1) 条边的子问题。 重复这过程直到 k = 0,然后再跑一次 1 到 n 最短路,把结果取 max 即可。 复杂度 O(n2 ∗ck),c 为最短路边数题意:#include<bits/stdc++.h>us

2020-07-29 16:47:30 205

原创 素数筛

我们研究一下质数分布规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等;神仙筛法:我们研究一下质数分布规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等;证明:令x≥1,将大于等于5的自然数表示如下:······ 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1 ······可以看到,不在6的倍数两侧,即6x两侧的数为6x+2,6x+3,6x+4,由于2(3x+1),3(2x+1),2(3x+2

2020-07-20 22:49:52 113

原创 并查集 + 链表 -- G Operating on a Graph

G Operating on a Graph题意:给一个 n 个点的 Graph,第 i 个点一刚开始是第 I 种颜色,接着有 k 次 操作,第 i 次操作有个参数 oi 代表颜色 oi 会侵略所有和自己相邻的颜色, 于是所有和 oi 相邻的颜色全都变成 oi (若已没有颜色oi 已被侵略,则该次 操作无效),求最终每个点的颜色。思路:重要观察:在所有操作过程中,对于每个点,至多只会有一次把相邻的点和 自己变为同一种颜色的操作,经过该次操作后,就永远和相邻的点同色了。对于每个颜色都维护一个点的

2020-07-19 16:57:18 289

原创 二分匹配 -- Swap HDU - 2819

Swap HDU - 2819思路:#include<cstdio>#include<cmath>#include<iostream>using namespace std;const int maxn = 1e2 + 5;bool vis[maxn];int mp[maxn][maxn], match[maxn];int n;pair<int, int> pai[maxn * 2];bool dfs(int u){ for(int

2020-07-16 15:11:06 107

原创 单调队列 -- F. Fake Maxpooling

F. Fake Maxpooling题意:给你一个n * m的矩阵, 矩阵值为 行号 i 、 列号 j的lcm(最小公倍数), 求这个n * m 矩阵所有 k * k 子矩阵中最大值的和。思路:单调队列求每行窗口k内的最大值,并记录到broad矩阵中, 在对broad矩阵每列用单调矩阵求一遍窗口k内的最大值, 把每个子矩阵的贡献加到起来就行了。单调矩阵是什么,详解在这里code:#include<bits/stdc++.h>using namespace std;const i

2020-07-14 15:10:09 239

原创 二分匹配 -- The Accomodation of Students HDU - 2444

The Accomodation of Students HDU - 2444思路:染色判断二分图,二分图求最大匹配裸题。code:#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<queue>using namespace std;const int maxn = 2e2 + 5; struct node{ int u

2020-07-07 11:09:36 112

原创 LCA + 连通图 -- Network POJ - 3694

Network POJ - 3694 思路:code:#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstdlib> using namespace std;const int maxn = 1e5 + 5;struct node{ int u, v, next;} g[maxn];int head[maxn],

2020-07-05 22:21:28 105

原创 树的直径 + 强联通分量 -- Warm up HDU - 4612

Warm up HDU - 4612DCC缩点后建立一棵树, 树中的所有边都是桥。 任意连接一条边使桥的数量最少。 那么就是要找出树的最长路径–树的直径。ans = 桥的数量 - 树的直径#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>using namespac

2020-07-04 22:23:59 139

原创 填边判强连通 -- Strongly connected HDU - 4635

Strongly connected HDU - 4635思路:code:莫名bug,找了一天心累了,懒得找了#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1e5 + 5;struct node{ int u, v, next;}g[maxn];int head[maxn];int dfn[maxn], l

2020-07-04 08:45:47 139

原创 联通图 压环成点 -- Caocao‘s Bridges HDU - 4738

Caocao’s Bridges HDU - 4738 思路:用targan算法找出图的强连通分量,并压缩成点,生成新图,便利新图找到最小边权即可。注意:图本身可能就不连通,此时就不需要派人,答案为0。当最小边权为0,派一个人即可,答案为1。code:#include<iostream>#include<algorithm>#include<cmath>#include<stdlib.h>using namespace std;const

2020-07-02 14:40:45 190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除