上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 22 下一页
摘要: 所谓莫比乌斯反演,就是把好看的式子变得越来越猥琐(题外话) 开始变形: $$\sum\limits_{i=1}^n\sum\limits_{j=1}^mlca(i,j)$$ $$=\sum\limits_{i=1}^n\sum\limits_{j=1}^m\frac{ij}{\gcd(i,j)}$$ 阅读全文
posted @ 2020-04-15 21:00 syzf2222 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 本人第一道数论黑题,虽然有些参照题解,但是颇有收获。 首先可以将问题转化为求一下式子: $$\prod\limits_{k=1}^nf_k^{\sum\limits_{i=1}^n\mu(i)\left[\frac{n}{ik}\right]\left[\frac{m}{ik}\right]}$$ 阅读全文
posted @ 2020-04-14 22:46 syzf2222 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 又是一个裸的费用流板子,不再赘述。 看代码: #include<bits/stdc++.h> using namespace std; #define int long long #define inf 1e12 const int maxn=1e5+10; int n,m,ans1,ans2; s 阅读全文
posted @ 2020-04-09 22:02 syzf2222 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 难怪评蓝题,实在是太裸了。 源点向每个点连边,容量为这个点的现有货物数。 每个点向汇点连边,容量为要求即sum/n。 每个点向其相邻两点连边,容量无限,费用为1。 然后跑一遍源点到汇点的费用流。 看代码: #include<bits/stdc++.h> using namespace std; #d 阅读全文
posted @ 2020-04-09 21:22 syzf2222 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 第一问裸的最大流。 第二问给每一条边加上容量无限,费用为输入的边,新建起点终点, 新起点连1,费用为0,容量为ans1+k,新终点同理。 然后跑一边费用流。大功告成! 看代码: #include<bits/stdc++.h> using namespace std; #define inf 1e9 阅读全文
posted @ 2020-04-05 22:28 syzf2222 阅读(289) 评论(0) 推荐(0) 编辑
摘要: [NOI2006]不得不说远古的题还是比较水的。 这就是一个最大权闭合图的板子题,和拍照一模一样。 看代码: #include<bits/stdc++.h> using namespace std; const int maxn=5*1e5+10; int beg[maxn],nex[maxn],t 阅读全文
posted @ 2020-04-05 12:56 syzf2222 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 有了线段树合并的基础后,很容易想到差分最后线段树合并。 这道题跟hdu上的relief grain是重题,然而我们老师却把那道题当做树剖的练手题给我们。 害得我想了好久…… 代码如下: #include<bits/stdc++.h> using namespace std; const int ma 阅读全文
posted @ 2020-03-27 22:03 syzf2222 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 线段树合并用于解决一些需要将两颗线段树合并的题目 常见于一些子树处理的题目。 动态开点,记录左右子树。 不得不说,merge的代码像极了FHQtreap inline int merge(int a,int b,int x,int y){ if(!a)return b; if(!b)return a 阅读全文
posted @ 2020-03-27 22:02 syzf2222 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 依照题目要求,即是不能从2流到1去,那么就是最小割。 从2向0,1连边,从0向0,1连边,然后跑最大流。 代码如下: #include<bits/stdc++.h> using namespace std; #define inf 1e9 const int maxn=105; const int 阅读全文
posted @ 2020-03-25 17:57 syzf2222 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 首先声明题意: 1~n的两个排列,a,b,在线询问两个区间[ l1,r1 ],[ l2,r2 ],求这两个区间内相同数字的数目。 解法: 我们不妨以a数列为基准,a[i]表示a的第i位对应的b中的位置。 那么就是在区间[ l1,r1 ]中查询有多少个数值在[ l2,r2 ]中。 不难想到权值线段树, 阅读全文
posted @ 2020-03-23 22:46 syzf2222 阅读(189) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 22 下一页