【牛客提高训练营5A】同余方程】的更多相关文章

题目 吉老师的题做不动啊 首先\([l_1,r_1],[l_2,r_2]\)并不是非常好做,我们考虑将其拆成前缀信息 设\(solve(n,m)=\sum_{i=0}^n\sum_{j=0}^m[m|(i\bigoplus j)]\) 于是我们的答案就变成了\(solve(r_1,r_2)-solve(l_1-1,r_2)-solve(r_1,l_2-1)+solve(l_1-1,l_2-1)\) 考虑\(solve(r_1,r_2)\)怎么求 一个非常特殊的情况是\(r_1=2^n-1,r_2…
题意 题目链接 Sol 设\(solve(x, y)\)表示\(i \in [0, x], j \in [0, y]\)满足题目要求的方案数 首先容斥一下,\(ans = solve(r_1, r_2) - solve(l_1 - 1, r_2) - solve(l_2 - 1, r_1) + solve(l_1 -1, l_2 - 1)\) 然后按照套路按位拆分,这里拆的时候是直接对\(x, y\)进行拆分 这样就把问题转换成了看起来似乎简单一些的问题 假设拆完后的数是 110011101 1…
题目 发现自己一年之前非常垃圾 题目大意是给你一个\(n\)个点的环,给每个点一个\([1,a_i]\)的取值,并且满足环上任意相连两点权值不能相等,求方案数 考虑断环为链,发现不大会 不妨考虑所有\(a_i\)均相等的情况,设\(m=a_i\) 对于第一个点,有\(m\)种选择,其后每一个点的取值都不能和上一个相等,即\(m-1\)种选择,于是整个环就是\(m(m-1)^{n-1}\) 吗? 显然不是,这样我们不能保证\(1\)号点和\(n\)号点的取值不相等.设\(f_i\)表示\(1\)号…
题目 吉老师的题时过一年还是不会做 从\(1\)号点出发经过每条边至少一次并且还要回到\(1\)号点,这跟欧拉回路的条件非常像,但是欧拉回路的实际上是"经过每一条边恰好一次并且回到出发点" 所以可以理解为将每一条边拆成多条边,使得总边权和最小,并且图中存在一条欧拉回路 而一张图存在欧拉回路的条件是不存在度数为奇数的点 换句话说,给每条边定一个经过次数\(cnt_i\),最小化\(\sum_{i=1}^mcnt_i2^i\),并且使得每个点的所连边的\(cnt\)的和为偶数 看起来不是很…
题目链接 这个题,一眼看上去就是最短路的题,边权有负环显然不能用dij,然后出题人又卡了spfa,,那怎么办的想点办法啊,好像还有一个拓扑排序可以求最短路吧,这时候正解就已经得到了,就是拓扑排序求最短路. 在求拓扑序的时候,每次入队时,将这个入队的点所拓展出来的点都进行松弛操作,就可以啦,复杂度O(E+V),后面的判断还要注意一下.就做完啦. #include <set> #include <map> #include <queue> #include <stac…
题目链接 为了纪(zhuang)念(bi)写完这个树剖单独写一篇.感觉还好,也就6k嘛. 完整比赛题解:https://www.cnblogs.com/SovietPower/p/9826829.html. 肯定要用点来表示边的颜色,然后树剖. 对于操作2,我们可以拆成: 将\(u\to v\)路径上的点,所有连向子节点的边染成\(col2\): 将\(u\to v\)路径上的点,所有连向父节点的边染成\(col1\): 将\(LCA(u,v)\)连向父节点的边染成\(col2\). 那么本题的…
分析 就就就是推柿子 看官方题解吧/px 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include<cstdlib> #include<queue> #include<ctime&g…
分析 我们不难发现对于偶数的情况只要相邻两个数不相等即可 而对于奇数的情况只要中间恰好隔一个数的两个数不相等即可 于是我们又dp[i][0/1]表示考虑到第i位,这一位和它后面离它最近的一个确定的数是否相等 每次从i-1转移即可 注意对于奇数的情况最终答案要n-1和n的dp值相乘以保证合法 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<…
分析 每次修改用二位差分记录一下 之后对于三维分别统计即可 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include<cstdlib> #include<queue> #include&l…
分析 傻子题? 对d取模后随便贪心即可 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include<cstdlib> #include<queue> #include<ctime>…