![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
区域赛
丶沙鸥
这个作者很懒,什么都没留下…
展开
-
2021CCPC网络赛重赛 _ 1011 _ HDU7136 _ Jumping Monkey 并查集,重建树
原题链接 转载博客 写的很好了,这里只做记录:D 贴个代码 #include<bits/stdc++.h> #define LL long long #define INF INT64_MAX #define MOD 998244353 #define ls rt << 1 #define rs rt << 1 | 1 using namespace std; typedef pair<int,int>pa; const int N = 1e5+7; int原创 2021-10-14 20:14:51 · 116 阅读 · 0 评论 -
2021CCPC网络赛重赛 _ 1005 _ HDU7130 _ Monopoly 正负数同余性质,细节题
原题链接 题意: 有1-n个节点,从0出发,每次只能往右走一个节点,n的下一步会回到1节点,每走到一个节点获得ai(-1e9-1e9)点分数,m次查询,每次查询最少走多少步分数可以到达x。 思路: 令从1-n走完一轮的总分数为sum 根据每个点的前缀和对sum取余得到的值分组,然后每次查询二分查找x对sum取余同余的那组最优的节点,没有则说明没有合法点 思路不难想,赛中一开始想歪了,后面纠正回来的时候没多少时间了,在写法上一直在犹豫,最后成功把自己送走。 #include<bits/stdc++.h&原创 2021-10-11 16:29:44 · 205 阅读 · 0 评论 -
“红旗杯”第十五届东北地区大学生程序设计竞赛 D - Lowbit
原题链接 题意: n个数,m次操作。 操作1:给l,r之间的数加上一个自身的lowbit(二进制下的最低位)。 操作2:查询l,r区间和。 思路: 可以发现进行操作1只有两种情况。 1.如果这个数是2的倍数,那么进行操作1只需要*2就可以了。 2.如果这个数不是2的倍数,那么就是最低位往左移一位。 根据题目中a[i]的范围可以知道一个数最多只能进行15次第二种情况的操作,就是10101010101010101这样的形式的时候。 所以可以对不是2的倍数的值进行暴力单点修改,当一个区间内的值都是2的倍数的时候再原创 2021-09-04 18:40:00 · 553 阅读 · 0 评论