Madoka and The Corruption Scheme 组合数 + 思维 + 贪心 首先要思考一开始要如何摆放才是最优秀的 按照完全二叉树(根就是最后赢的那个),给所有的点赋予权值,代表需要转换多少条边,才能使得这个点的数字被选上 显然假设当前点的权值为 \(x\),该点的其中一个节点权值必然为 \(x\)(获胜),另
Codeforces Round #818 (Div. 2) D. Madoka and The Corruption Scheme 题目大意 给定一场比赛,有\(2^n\)个参赛者。赞助商有k次机会可以调整某一局的结果。而我们想要知道不管赞助商如何调整,我们能得到的获胜者的编号最小值,即为让我们求在k次调整机会下,我们能获得的获胜者的编号最
https://codeforces.com/contest/1520 你在玩“放羊”游戏。这个游戏的目标是让羊排好队。 游戏中的关卡由一个长度为n的字符串描述,由字符“.”组成(空格)和' * '(羊)。 在一次移动中,你可以将任何羊向左移动一格或向右移动一格,如果相应的方格存在并且是空的。 羊一排好,游戏就结
Madoka and Formal Statement 思维 如果合法,说明 \(a_i \le b_i\),因此也可以认为 \(b_i\) 就是 \(a_i\) 最后能变成的最大值 根据题意操作,只有 \(a_i \le a_{i+1}\) 的情况,才能使 \(a_i + 1\),因此 \(a_i\) 的理论最大值应该是 \(b_{i+1} + 1\) 因此只要所有的 \(b_i\) 都不大于 \(
Madoka and Strange Thoughts 唯一分解定理 \[gcd(a, b) = p_1^{min(ak_1, bk_1)} * p_2^{min(ak_2, bk_2)}... \]\[lcm(a, b) = p_1^{max(ak_1, bk_1)} * p_2^{max(ak_2, bk_2)}... \]根据上面两个式子就可以知道 \(\frac{lcm(a,b)}{gcd(a,b)}\) 其实就是质因数最大最小次幂相差
https://codeforces.com/contest/1370/problem/C Ashishgup和FastestFinger玩游戏。 他们从数字n开始,轮流玩。在每个回合中,玩家可以进行以下任意一个动作: 将n除以任何大于1的奇数因子。 如果n大于1,则从n中减去1。 一个数的约数包括该数本身。 不能移动的玩家输掉游戏。 Ashi
Madoka and Underground Competitions 构造 在一行里,如果选定了其中一个位置是 \(X\),接下来就直接往左和往右每 \(k\) 个放置一个 \(X\) 就行了 每一行的初始位置根据一开始的那个 \(X\),斜着一个方向铺满,即可做到每一行都存在一个 \(X\) . X . . . . . X . . . . . X .
Maximum AND 贪心 从高位开始,尽可能地让 \(a\) 中该位为 \(0\) 的 和 \(b\) 中该位为 \(1\) 的配对在一起,换句话说,可以让 \(a\) 由小到大排序,\(b\) 由大到小排序 如果当前位最终是 \(1\),则继续该过程 如果当前位最终是 \(0\),则说明失配,考虑将这一位全部置为 \(1\) (排除这一位
CF1713F 利用lucas定理,\(b_S\)表示下标\(T\)与\(S\)无交的\(a_T\)的异或,由于部分\(b_S\)未知,不能直接iFWT。回顾容斥:\([S=\emptyset]=\sum_{T\subseteq S}(-1)^|T|\),\([n=0]=\sum_{i=0}^{n}C(n,i)(-1)^i\),\([n=1]=\sum_{d|n}\mu(d)\),利用这种思想构造:令\(A=S\cap T\),\([A=\emptys
Dashboard - Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) - Codeforces B. Make Them Odd 题意: 一个数组,每次选择一个数,将数组中的这个数都减半,问多少次数组就所有数字都是奇数 题解:将最后变成的奇数相同的数组分成一组,然后答案加上最大的
Counting Rectangles 思维 把所有的矩形左上角都叠在一起,就会发现是一个二维前缀和的求解问题:\(\sum_{i=h_s+1}^{h_b-1} \sum_{j=w_s+1}^{w_b-1} (i*j*cnt_{ij})\) 这个显然就是一个二维前缀和的问题,直接算就好了 #include <iostream> #include <cstdio> #include <string> #inclu
CF传送门 因为洛谷题库未更新,所以给出的题面都是CF的。 现场打真是太卡了(梯子挂了,codeforc.es也崩了),所以五六分钟才打开题目 \(qwq\) A. Spell Check 萌萌题,把字符串放桶里,判名字每个字母是否恰好出现一次即可。 \(9min\) \(AC\) \(qwq\) 都怪CF Code: #include<bits/stdc++.h> #d
比赛链接: https://codeforces.com/contest/1721 D. Maximum AND 题意: 给定两个序列 \(a\) 和 \(b\),可以调整 \(b\) 中元素的位置,得到序列 \(c\),满足 \(c_i = a_i\) xor \(b_i\),问 \(c_1 \& c_2 \& ... \& c_n\) 最大是多少。 思路: 要让某一位上是 1,那么就要使得序列 \(c\) 中每一
A. Traveling Salesman Problem 题意:空间中 在坐标轴上给几个点,问最后,从原点出发经过所有点,再返回原点所经过的最远距离 分析: 找到 最大的 x ,最小的 x ,最大的 y ,最小的 y ,然后根据 曼哈顿距离,计算一个大正方形的边长就可以了 为什么不能先把所有点初始化成无穷大? 因为如果只有一个
2A,C题wa2不知道为什么。B题少判一个条件:左上角 A : 题意有点不懂,到最后才知道是有多少种数,就输出这个种数-1即可 int n,m; void solve() { // cin>>n>>m; char s[4]; cin>>s[0]>>s[1]>>s[2]>>s[3]; set<int> q; fo(i,0,3) { q.insert(s[i]);
Educational Codeforces Round 134 (Rated for Div. 2) D. Maximum AND 题目大意 给出序列a,b,b可以任意排列,序列c有\(c_i=a_i\bigoplus b_i\)。c序列的价值为c1&c2&c33...&cn 分析 不难想到,从高到底考虑,每一个\(a_i\)与\(b_i\)对应二进制位。假设考虑的是其中bit位,则需要所有的\(a
A:一组长度为n 的排列,问交换多少次,能让前m个数变成[1,m]中的数 输出前 m 个数中有多少个比 m 大的就可以了 //-------------------------代码---------------------------- //#define int ll const int N = 1e5+10; int n,m; void solve() { cin>>n>>m; int ans = 0;
E 一个暴力是显然的,\(f(i,j,k)\) 表示当前已经使用 \(a\) 的前 \(i\) 位,\(b\) 的前 \(j\) 位,最后一位是 \(a\) 还是 \(b\) 的。然后 \(O(n^2)\) 枚举起点跑下去即可。为啥这个是对的呢?考虑每次转移都是加 \(1/0\),显然之后在约束之下的转移本质不同。 第一眼我的想法是从如何对 \(2
Codeforces Round #772 (Div. 2) VP A B C 3min 12min 52min +4 排名:rk3893 基准分:\(\color{ForestGreen}{1362}\) 从天选到天崩 A \(\color{Gray}{800}\) CF1635A Min Or Sum 简要分析可知,其实答案就是对于所有数取或运算和(具体懒得管) 时间复杂度:\(O(n)\) int
https://codeforces.ml/contest/1720 A:思维 fst了。。分数,分子分母改变多少次,变一样 题意:给a / b,c / d两个分数,问分子父母各乘多少次可以得到相同的数 思路很简单,将所有数的分母变成一样,比较分子就可以了 特判:if(a == 0&& c == 0) {cout<<0<<endl;rt;} else if(a == 0 || c == 0)
C题想了一种线段树,然后统计所有左右端点的麻烦做法, A 题:思维 将长的边作为横坐标,短的边作为纵坐标,从左走到右即可。 注意当一条边横跨中间的那条线之后,另一条边只用多走一步就可以到达另一条路 //-------------------------代码---------------------------- //#define int l
人生中第一个AC的codeforces题,大概 太难了,光是看答案就看了整整一下午,最后还是在b站上搜到讲解视频才明白的。俺们阿B真的是太厉害啦 这道题首先容易看出当矩阵中数字个数小于或等于所需要的个数时,直接输出他们的差即可。剩下的就是判断大于的情况。 这种情况的处理方法还多亏了大
一般这种题我们都是先推导下界 再来构造 那我们假设我们当前放置了k位半皇后 我们只考虑横竖被吃掉 并且贪心的(类似于八皇后的选择)横竖都不重叠 我们把他固定在左上角的kk的矩阵里 因为横竖都有被一个板皇后占到 所以我们只有右下角那个(n-k)(n-k)的矩阵了 下面边长为n-k的矩阵 对角线
https://codeforces.com/contest/1573/problem/B 给定两个长度为n的数组,数组a和数组b 数组a包含从1到2*n的任意顺序的奇数,数组b包含从1到2*n的任意偶数 可执行的操作如下: 从两个数组中选择一个,从1到n-1中选择一个索引 交换第i和第i+1个元素 计算使得数组a在字典序上小于数组b的
又是废掉的一个div2啊 第一次在学校熬夜打cf,开心还看到了自己最喜欢的斜率优化ohhh 链接 :E - Long Way Home 看到那个平方就可以靠感觉认为是斜率优化了.... 感觉似不似有点想法??k只有20... 可以试着去考虑最后一步用飞机,然后跑dijkstra求出走普通路径的。 其实就这样了... 考虑