并查集
weixin_44019404
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #659 (Div. 2)
A 因为最大相似长度是50,所以一开始令初始数组为50个a,然后不断利用相似度,每一个先复制相似度长度的字符,然后令后续字符ascii加1模上26,即可保证不同。 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<stack> #includ原创 2020-07-28 22:52:31 · 69 阅读 · 0 评论 -
Educational Codeforces Round 78 (Rated for Div. 2)
A题:暴力然后排序用string比较就好。 B题:找规律?可能emm 首先第i次加i,记前缀和为sum,要两个数字相等,至少sum>=两个数字的差。 我们进一步思考,当sum!=差的时候,记sum-dis=x。 如果x是偶数,x/=2,然后该数字x一定是出现在sum里面的数字,我们将x分给大的数字,那么大数字增加x,小数字减小x,就可以相等了。 当x是奇数,我们没有办法相等,继续加上i+1...原创 2019-12-21 19:04:58 · 158 阅读 · 0 评论 -
第五天打卡 Codeforces Round #600 (Div. 2)
A题: #include<bits/stdc++.h> using namespace std; #define ll long long const int N = 1e5+10; int a[N],b[N]; int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n...原创 2019-12-14 20:23:45 · 100 阅读 · 0 评论 -
cf 828c向前合并并查集
向前合并并查集,其实是路径压缩。 因为每一个点对应的字母是确定的所以,我们把每一次看成线段,更新线段没有覆盖到的。用并查集把线段连续的合并在一起。 注意这里每一次向前查询,当前点的父亲节点应该指向像一条线段的父亲。 #include<iostream> #include<cstring> #include<algorithm> #include<cmath...原创 2019-10-19 10:25:07 · 81 阅读 · 0 评论 -
poj2236
并查集就好了,先预处理一下,查看每一个到另外一个是否是直接可到达的,并存于数组中。 然后每一次询问,都查找一下两个是否在一个集合中。 如果是输入的O,就添加进入可以到达的集合。 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cs...原创 2019-03-07 17:20:17 · 510 阅读 · 0 评论