04 2022 档案

摘要:只需要把询问按x升序排序,在查询的过程中不断让树状数组把<=x元素的下标处+1即可。(为此,把序列按val排序) #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; pair<int, int> a[N]; #d 阅读全文
posted @ 2022-04-18 21:25 _vv123 阅读(250) 评论(0) 推荐(0)
摘要:以下内容摘自OI Wiki Dinic算法的过程是这样的:每次增广前,我们先用BFS来将图分层。 设源点的层数为0,那么一个点的层数便是它离源点的最近距离。 通过分层,我们可以干两件事情: 如果不存在到汇点的增广路(即汇点的层数不存在),我们即可停止增广。 确保我们找到的增广路是最短的。(原因见下文 阅读全文
posted @ 2022-04-09 23:07 _vv123 阅读(77) 评论(0) 推荐(0)
摘要:Tarjan算法基于深度优先搜索, 每个强连通分量为搜索树中的一棵子树. 搜索时, 把当前搜索树中未处理的结点加入堆栈, 回溯时就可判断栈顶到栈中的结点是否为一个强连通分量. dfn[u]: 记录结点u在DFS过程中被遍历到的次序号(时间戳). 对于一棵DFS树, 对于原图中的非树边, 为便于描述, 阅读全文
posted @ 2022-04-06 16:30 _vv123 阅读(80) 评论(0) 推荐(0)
摘要:如果使用ios::sync_with_stdio(false); 千万不要使用puts等 否则输出顺序会不合预期 阅读全文
posted @ 2022-04-04 20:23 _vv123 阅读(26) 评论(0) 推荐(0)
摘要:考虑到i不大于1e6,而使得f(i,j)大于n的最小的j是随i的增加单调减的,因此枚举即可。 // // Created by vv123 on 2022/4/2. // #include <bits/stdc++.h> #define f(i,j) i*i*i+i*i*j+i*j*j+j*j*j 阅读全文
posted @ 2022-04-03 11:17 _vv123 阅读(89) 评论(0) 推荐(0)