Educational Codeforces Round 126 (Rated for Div. 2) Educational Codeforces Round 126 (Rated for Div. 2) (A~C)
Moamen and XOR C. Moamen and XOR莫阿门和伊扎特在玩游戏。他们创建了一个由n个非负整数组成的数组a其中每个元素都小于2k。当a1&a2&a3&…&an≥a1⊕a2⊕a3⊕…其中&为按位与运算,⊕为按位异或运算。请计算出Moamen数组a的中奖数量。由于结果可能非常大,因此输出对1000000007取模的值(109+7)。分析: 首先肯定要对 nnn 分奇偶,奇数个数字异或起来和偶数个数字异或起来情况肯定是不一样的,当 nnn 为奇数设 a1&
Codeforces Round #747 (Div. 2)(A-C) 最近越来越菜了 A,B题都写这么慢, 我是fwA. Consecutive Sum Riddle题意: 从 lll 起到 rrr 止的等差数列的和为 nnn, 请求出 lll和 rrr分析: 由等差数列求和公式 (l+r)(r−l+1)/2=n(l + r) ( r - l + 1) / 2 = n(l+r)(r−l+1)/2=n可以令 l+r==1l + r == 1l+r==1然后 l=r−1l = r - 1l=r−1, 代入得, l=1−n,r=nl = 1 - n, r = nl=1
二分图总结 二分图是什么?二分图 是指将所有点分成两个集合, 使得所有边只出现在集合之间, 那就是二分图二分图的性质:二分图一定能进行无矛盾的染色二分图一定不含有奇数环二分图不一定是连通图二分图的判定问题, 一般常用的方法是染色法判定二分图, 相邻的两个点用不同的颜色染色, 只要某个点染色不成功就说明整个图不是二分图, 染色不成功等价于相邻的点染了相同的颜色#include<bits/stdc++.h>using namespace std;const int N = 3e5 +
Codefroces Round #779(div2)A~C A. Marin and Photoshoot题意: 看样例就可以发现就是要在 000 后面插两个 111#include<bits/stdc++.h>#define x first#define y seoncd#define int long long #define gg exit(0);#define sf1(x) scanf("%lld",&x)#define sf2(x,y) scanf("%lld%lld",&x,&y)#define pr
CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes) CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!) (A-C)
Educational Codeforces Round 124 (Rated for Div. 2) 日常倒序C.Fault-tolerant Network 题意分析: 有两排电脑, 每一排的电脑是左右互连的,现在要求你将上下两排的电脑连接起来, 形成容错网络: 即网络保持连接,尽管其中一台计算机出现故障。换句话说,如果一台计算机坏了(不管是哪台),网络就不会分裂成两个或多个部分。连接两台计算机的费用是 ∣ai−bj∣|a_i - b_j|∣ai−bj∣首先形成容错网络, 连四条边 是肯定可以的, 但不一定是最优的, 也可以连两条边, 也可以连三条边#include<bits/std
Educational Codeforces Round 125 (Rated for Div. 2) Educational Codeforces Round 125 (Rated for Div. 2)(A~E)
Codeforces Round # 778(div1 + div2) 倒序开吧, 你们最想看的应该是D题的题解, 我干了两个小时才搞懂D.Potion Brewing Class题意分析: 给定 nnn 种原料, n−1n - 1n−1 个约束条件, 每种原料的比值必须要满足约束关系, 然后求原料含量最小的总和首先不妨将题意转化一下, n,n−1n, n - 1n,n−1, 不难想到是树, 知道是树后, 可以将 nnn 种原料看作 nnn 个点, n−1n - 1n−1 个约束条件可以看作 n−1n - 1n−1 条边, 然后每两个点之间,要满足点权比等于边权, 我们
闇の連鎖问题 分析可知, 这里就是要砍两条边, 第一次看主要边, 第二次砍附加边, 主要边就是树边, 附加边就是非树边, 假设非树边连接为 点x,yx,yx,y,当删除一条 x,yx,yx,y 之间的树边后, 非树边就成为了树边, 如果当 x,yx,yx,y 之间的数量为 sss, 当 s=0s = 0s=0 时, 删去任意一条非树边即可, 当 s=1s = 1s=1 时, 必须要砍去x,y之间的非树边,当 s>1s > 1s>1,无解然后这里边的覆盖需要利用到区间的加减, 即差分,...
分巧克力问题 对于二分问题首先确定二分什么, 不难发现,这题是对巧克力的边长二分,//对于分巧克力问题 我们可以对巧克力最大边长进行二分 然后判断是否每个人都能分到巧克力 #include<bits/stdc++.h>using namespace std;const int N=1e5+10;int h[N], w[N];int n, k, hmax, wmax, Max;bool check(int x){ int num=0; for(int i=0;i<n;i
最佳牛栅栏 ① 可能的最大值,抓住关键词,考虑是否可以用二分,假设存在某一个平均值满足题目条件,那么小于该值的平均值一定能满足题目条件,而大于该值的平均值不一定能满足题目条件,于是可得 可以用二分② 为了快速判断某一区间的值是否大于我们二分的平均值,我们可以让每个数减去平均值,这样再将它们全部加起来就可以判断当前某一区间的平均值是否大于二分的平均值。二分:首先我们的 mid=(l+r)/2mid=(l+r)/2mid=(l+r)/2,记住这里不要是 >>1>>1>>1,因为这是浮