div3专题

每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )

A 题意: 有 a 个1 ,b 个2.问是否能将这些数划分为两个数值相等的集合。 输出 YES 或者 NO —————— 问题等价于 将数组 分成两个数值相同的数组。所以sum 应该是偶数。也就是说 1 的个数是偶数。在i1的个数是偶数的情况下,将 2 分成两份,如果2 的个数是偶数,OK。如果是奇数那么需要1来补齐,如果1 的个数大于等于2那么可以补齐。(1 的个数是偶数,需要2个1来补齐,剩下

div3 E. Binary Search

题目 #include <bits/stdc++.h>using namespace std;#define int long long#define pb push_back#define fi first#define se second#define lson p << 1#define rson p << 1 | 1const int maxn = 2e5 + 5

2024/2/28 最小生成树 kruskal +cf div3 (929)

目录 买礼物 买礼物 - 洛谷 CF div3 929 A题  Problem - A - Codeforces CF div3 929 B题   Problem - B - Codeforces 买礼物 买礼物 - 洛谷 思路:kruskal算法,有优惠就建边 完整代码: #include <bits/stdc++.h>#define int long lon

C++ Div3、Sqrt 函数高性能实现(带汇编指令集)

均采用魔法数字(Magic Number)实现,一个是经典求平方根函数所使用的魔法数字:0x5f375a86、0x5f3759df。 float Sqrt(float x) noexcept { /* 0x5f3759df */float xhalf = 0.5f * x;int32_t i = *(int32_t*)&x;i = 0x5f375a86 - (i >> 1);x = *(floa

C++ Div3、Sqrt 函数高性能实现(带汇编指令集)

均采用魔法数字(Magic Number)实现,一个是经典求平方根函数所使用的魔法数字:0x5f375a86、0x5f3759df。 float Sqrt(float x) noexcept { /* 0x5f3759df */float xhalf = 0.5f * x;int32_t i = *(int32_t*)&x;i = 0x5f375a86 - (i >> 1);x = *(floa

Codeforces H. Binary Median (二进制 / 思维)(Round #644 Div3)

传送门 题意: 在2^m 个长为m的二进制串(01串)中删除n个,输出剩下k个二进制串序列的中位数([k - 1] / 2 下取整)。 思路: 找到未删减时的中位数z,因为最多删除100个数,所以再把中位数左右110范围内的数加入答案a区间内。遍历需要删除的区间,因为二进制的字典序和十进制的排序一致,所以将其转换成十进制数x。若x < a[0],说明会在中位数左侧删除一个数,删除a[0];