当前位置: 首页 > news >正文

[题解] Codeforces Round 976 (Div. 2) A ~ E

A. Find Minimum Operations

签到.

void solve() {int n, k;cin >> n >> k;if (k == 1) {cout << n << endl;return;}int ans = 0;while (n) {ans += n % k;n /= k;}cout << ans << endl;
}

B. Brightness Begins

打表发现, 翻转完后的序列为: 011011110111111011111111. 每组 3 , 5 , 7 , 9... 3,5,7,9... 3,5,7,9... 个数.

直接用等差数列公式求出前缀中 1 1 1 的个数, 二分 check 答案

(赛时代码, 也不知道炸不炸 ll, 反正无脑套 __int128)

#define int long long
#define i128 __int128i128 f(i128 x) { // 求 x 组前缀中 1 的个数return ((2 * x + 1) + 3) * x / 2 - x;
}
i128 ff(i128 x) { // 求 x 组前缀中0和1的个数return ((2 * x + 1) + 3) * x / 2;
}
int solve(int _) {int k; cin >> k;i128 l = 0, r = 1e9;while (l < r) {int mid = (l + r + 1) >> 1;if (f(mid) > k)r = mid - 1;else if (f(mid) < k)l = mid;else return ff(mid);}return ff(l) + k - f(l) + 1;
}

C. Bitwise Balancing

先列出 a, b, c, d 每 bit 位的运算结果:

eg; fk, 赛时这个表画错了, 半天才发现
请添加图片描述
发现, 运算结果不会有负数. 于是每位就自能顾得上自己, 只需要按位检查, 一旦有一位满足不了, 就输出 -1.

#define int long longbool aa(int x, int i) {return (x >> i) & 1;}
int solve(int _) {int a, b, c, d;cin >> b >> c >> d;a = 0;for (int i = 0; i < 61; ++i) {if (aa(b, i)) {if (aa(c, i)) { //11if (!aa(d, i)) {a += 1ll << i;;}}else { // 10if (aa(d, i)) {a += 1ll << i;}else {return -1;}}}else {if (aa(c, i)) { // 01if (aa(d, i)) {return -1;}}else { // 00if (aa(d, i)) {a += 1ll << i;}}}}return a;
}

D. Connect the Dots

首先考虑用并查集维护两个点的连通块所属关系. 但是操作太多, 会 tle.

d 最大为 10, 于是对于 a[i], 考虑继承前 10 个节点往后跳跃的情况, 更新到 a[i] 上, 同时继承过来的跳跃次数减一. 这样每个点只用往前跳跃最多 10 次.

int n, m, a, d, k, fa[200010], ma[200010][15];
int find(int x) {if (fa[x] == x)return x;return fa[x] = find(fa[x]); //并查集路径压缩
}
int solve(int _) {cin >> n >> m;for (int i = 1; i <= n; ++i) {fa[i] = i;for (int j = 1; j <= 10; ++j) {ma[i][j] = 0;}}for (int i = 1; i <= m; ++i) {cin >> a >> d >> k;ma[a][d] = max(ma[a][d], k);}for (int i = 1; i <= n; ++i) {for (int j = 1; j <= 10; ++j) {if (i - j < 1)break;if (ma[i - j][j])fa[find(i)] = find(i - j); //从前面跳过来, 更新一下并查集}for (int j = 1; j <= 10; ++j) {if (ma[i][j] > 1 && i + j <= n)ma[i + j][j] = max(ma[i + j][j], ma[i][j] - 1); //继承全面没跳跃完的 k}}set<int>se;for (int i = 1; i <= n; ++i) {se.emplace(find(i));}return se.size();
}

E. Expected Power

状压 DP.

a 最大为 1023. 故所有数的异或结果最多 0~1023, 共 1024 种状态.

dp[i][j] 表示前 i 位选取某些异或到一起答案是 j 的概率. 就很好转移了. 见代码. 记得滚动数组优化一下空间.

eg: jiangly 的取模机真好用 ! !

eg: 赛后过题真痛苦, 就差几分钟…

//------取模机------//
using i64 = long long;
template<class T>
constexpr T power(T a, i64 b) {T res {1};for (; b; b /= 2, a *= a) {if (b % 2) {res *= a;}}return res;
} // 快速幂constexpr i64 mul(i64 a, i64 b, i64 p) {i64 res = a * b - i64(1.L * a * b / p) * p;res %= p;if (res < 0) {res += p;}return res;
} // 取模乘template<i64 P>
struct MInt {i64 x;constexpr MInt() : x {0} {}constexpr MInt(i64 x) : x {norm(x % getMod())} {}static i64 Mod;constexpr static i64 getMod() {if (P > 0) {return P;} else {return Mod;}}constexpr static void setMod(i64 Mod_) {Mod = Mod_;}//只有P<=0, setMod才生效constexpr i64 norm(i64 x) const {if (x < 0) {x += getMod();}if (x >= getMod()) {x -= getMod();}return x;}constexpr i64 val() const {return x;}constexpr MInt operator-() const {MInt res;res.x = norm(getMod() - x);return res;}constexpr MInt inv() const {return power(*this, getMod() - 2);}constexpr MInt &operator*=(MInt rhs) & {if (getMod() < (1ULL << 31)) {x = x * rhs.x % int(getMod());} else {x = mul(x, rhs.x, getMod());}return *this;}constexpr MInt &operator+=(MInt rhs) & {x = norm(x + rhs.x);return *this;}constexpr MInt &operator-=(MInt rhs) & {x = norm(x - rhs.x);return *this;}constexpr MInt &operator/=(MInt rhs) & {return *this *= rhs.inv();}friend constexpr MInt operator*(MInt lhs, MInt rhs) {MInt res = lhs;res *= rhs;return res;}friend constexpr MInt operator+(MInt lhs, MInt rhs) {MInt res = lhs;res += rhs;return res;}friend constexpr MInt operator-(MInt lhs, MInt rhs) {MInt res = lhs;res -= rhs;return res;}friend constexpr MInt operator/(MInt lhs, MInt rhs) {MInt res = lhs;res /= rhs;return res;}friend constexpr std::istream &operator>>(std::istream &is, MInt &a) {i64 v;is >> v;a = MInt(v);return is;}friend constexpr std::ostream &operator<<(std::ostream &os, const MInt &a) {return os << a.val();}friend constexpr bool operator==(MInt lhs, MInt rhs) {return lhs.val() == rhs.val();}friend constexpr bool operator!=(MInt lhs, MInt rhs) {return lhs.val() != rhs.val();}friend constexpr bool operator<(MInt lhs, MInt rhs) {return lhs.val() < rhs.val();}
};template<>
i64 MInt<0>::Mod = 1e9 + 7; //只有P<=0, Mod才生效constexpr int P = 1e9 + 7; //在这设置要用的模数
using Z = MInt<P>;
//------取模机------//i64 n, a[200010];
Z dp[2][1024], p[200010];
int solve(int _) {cin >> n;for (int i = 1; i <= n; ++i) cin >> a[i];for (int i = 1; i <= n; ++i) {cin >> p[i]; p[i] /= 1e4;}Z ans = 0;dp[0][0] = 1;for (int i = 1; i < 1024; ++i) {dp[0][i] = 0;}for (int i = 1; i <= n; ++i) {int tis = i % 2;int last = tis ^ 1;for (int j = 0; j < 1024; ++j) dp[tis][j] = 0;for (int j = 0; j < 1024; ++j) {dp[tis][j ^ a[i]] += dp[last][j] * p[i];dp[tis][j] += dp[last][j] * (1 - p[i]);}}for (int i = 0; i < 1024; ++i) {ans += dp[n % 2][i] * i * i;}return ans.val();
}

相关文章:

[题解] Codeforces Round 976 (Div. 2) A ~ E

A. Find Minimum Operations 签到. void solve() {int n, k;cin >> n >> k;if (k 1) {cout << n << endl;return;}int ans 0;while (n) {ans n % k;n / k;}cout << ans << endl; }B. Brightness Begins 打表发现, 翻转完后的序列为: 0…...

【零基础入门产品经理】学习准备篇 | 需要学一些什么呢?

前言&#xff1a; 零实习转行产品经理经验分享01-学习准备篇_哔哩哔哩_bilibili 该篇内容主要是对bilibili这个视频的观后笔记~谢谢美丽滴up主友情分享。 全文摘要&#xff1a;如何在0实习且没有任何产品相关经验下&#xff0c;如何上岸产品经理~ 目录 一、想清楚为什么…...

第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)征稿

第四届机器人、自动化与智能控制国际会议&#xff08;ICRAIC 2024&#xff09;由湖南第一师范学院主办&#xff0c;南京师范大学、山东女子学院、爱迩思出版社&#xff08;ELSP&#xff09;协办。 大会将专注于机器人、数字化、自动化、人工智能等技术的开发和融合&#xff0c…...

[数据集][目标检测]电力场景防震锤缺陷检测数据集VOC+YOLO格式705张1类别

重要说明&#xff1a;防震锤缺陷图片太难找&#xff0c;数据集里面存在大量单一场景图片&#xff0c;请仔细查看图片预览谨慎下载&#xff0c;此外数据集均为小目标检测&#xff0c;如果训练map偏低属于正常现象 数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径…...

【SpringBoot】

目录 一、Spring Boot概要 1. SpringBoot介绍 2. SpringBoot优点 3. SpringBoot缺点 4. 时代背景-微服务 二、Spring Boot 核心配置 1. Spring Boot配置文件分类 1.1 application.properties 1.2 application.yml 1.3 小结 2. YAML概述 3. YAML基础语法 3.1 注意事…...

Linux操作系统中MongoDB

1、什么是MongoDB 1、非关系型数据库 NoSQL&#xff0c;泛指非关系型的数据库。随着互联网web2.0网站的兴起&#xff0c;传统的关系数据库在处理web2.0网站&#xff0c;特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心&#xff0c;出现了很多难以克服的问…...

2、.Net 前端框架:OpenAuth.Net - .Net宣传系列文章

OpenAuth.Net 是一个开源的身份验证框架&#xff0c;由开发者 Yubaolee 创建&#xff0c;它旨在简化 Web 应用和服务的安全授权过程。这个框架以其强大的功能和易用性&#xff0c;为开发人员提供了一种高效的方式来处理用户认证和授权问题。 OpenAuth.Net 的关键特性包括&#…...

unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题分析二、解决方法1. 添加项目设置碰撞检测通道2.玩家角色碰撞设置3.怪物角色碰撞预设 最终效果 前言 在使用unreal engine5制作动作类游戏时&#xff0c;我们使用刀剑等武器攻击怪物或敌方单位时&#xff0c;发现攻击特效…...

数据权限的设计与实现系列11——前端筛选器组件Everright-filter集成功能完善2

‍ 筛选条件数据类型完善 文本类 筛选器组件给了一个文本类操作的范例&#xff0c;如下&#xff1a; Text: [{label: 等于,en_label: Equal,style: noop},{label: 等于其中之一,en_label: Equal to one of,value: one_of,style: tags},{label: 不等于,en_label: Not equal,v…...

C++ 游戏开发

C游戏开发 C 是一种高效、灵活且功能强大的编程语言&#xff0c;因其性能和控制能力而在游戏开发中被广泛应用。许多著名的游戏引擎&#xff0c;如 Unreal Engine、CryEngine 和 Godot 等&#xff0c;都依赖于 C 进行核心开发。本文将详细介绍 C 在游戏开发中的应用&#xff0…...

【历年CSP-S复赛第一题】暴力解法与正解合集(2019-2022)

P5657 [CSP-S2019] 格雷码P7076 [CSP-S2020] 动物园P7913 [CSP-S 2021] 廊桥分配P8817 [CSP-S 2022] 假期计划 P5657 [CSP-S2019] 格雷码 暴力50分 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define int long long #d…...

基于PyQt5和SQLite的数据库操作程序

基于PyQt5和SQLite的数据库操作程序:功能解析 在现代办公和数据处理中,数据库操作是不可或缺的一部分。然而,传统的数据库管理工具往往界面复杂,操作繁琐,对于非专业人士来说存在一定的学习曲线。为了解决这个问题,我们开发了一款基于PyQt5和SQLite的数据库操作程序。该…...

在Ubuntu 20.04中安装CARLA

0. 引言 CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器&#xff0c;其支持自动驾驶系统全管线的开发、训练和验证&#xff08;Development, Training, and Validation of autonomous driving systems&#xff09;。Carla提供了丰富的数字资产&#xff0c;例如城市布局…...

【高中数学/对数/导数】曲线y=ln|x|过坐标原点的两切线方程为?

【问题】 曲线yln|x|过坐标原点的两切线方程为&#xff1f;&#xff08;高考真题&#xff09; 【出处】 《高考数学 函数与导数题型解题研究》P5第8题 中原教研工作室编著 【解答】 yln|x|的图线分两部分&#xff0c;y轴左边的部分是ylnx的镜像 所以知ylnx上切线过原点的…...

Qt CMake

使用 CMake 构建 CMake 是一款用于简化跨不同平台开发项目的构建流程的工具。 CMake 可自动生成构建系统&#xff0c;如 Makefile 和 Visual Studio 项目文件。 CMake 是一个第三方工具&#xff0c;有自己的文档。 本主题介绍如何在 Qt 5 中使用 CMake 3.1.0。 开始使用 CMak…...

制造企业各部门如何参与生产成本控制与管理?

​国内制造业的分量可不轻&#xff0c;从日常生活用品到高端工业设备&#xff0c;中国制造几乎涵盖了各个领域。 不过很多制造业企业在管理方面确实存在一些难题&#xff1a;成本控制不容易&#xff0c;产品质量并不稳定&#xff0c;生产周期也常常较长。 一、中国制造业生产管…...

FireRedTTS - 小红书最新开源AI语音克隆合成系统 免训练一键音频克隆 本地一键整合包下载

小红书技术团队FireRed最近推出了一款名为FireRedTTS的先进语音合成系统&#xff0c;该系统能够基于少量参考音频快速模仿任意音色和说话风格&#xff0c;实现独特的音频内容创造。 FireRedTTS 只需要给定文本和几秒钟参考音频&#xff0c;无需训练&#xff0c;就可模仿任意音色…...

活体检测标签之2.4G有源RFID--SI24R2F+

首先从客户对食品安全和可追溯性的关注切入&#xff0c;引出活体标签这个解决方案。接着分别阐述活体标签在动物养殖和植物产品方面的应用&#xff0c;强调其像 “身份证” 一样记录重要信息&#xff0c;让客户能够了解食品的来源和成长历程&#xff0c;从而放心食用。最后呼吁…...

Web3Auth 如何工作?

Web3Auth 用作钱包基础设施&#xff0c;为去中心化应用程序 (dApp) 和区块链钱包提供增强的灵活性和安全性。在本文档中&#xff0c;我们将探索 Web3Auth 的功能&#xff0c;展示它如何为每个用户和应用程序生成唯一的加密密钥提供程序。 高级架构 Web3Auth SDK 完全存在于用…...

问:SQL中join语法的差异?

在SQL中&#xff0c;JOIN语法用于结合来自两个或多个表的数据。不同类型的JOIN会基于不同的条件来合并表中的数据。以下是几种常见的JOIN及其差异&#xff1a; 假设我们有两个表&#xff1a;employees 和 departments。 employees 表: employee_idnamedepartment_id1Alice10…...

MusePublic Art Studio效果展示:复杂提示词(多主体/空间关系/光照条件)解析能力

MusePublic Art Studio效果展示&#xff1a;复杂提示词&#xff08;多主体/空间关系/光照条件&#xff09;解析能力 1. 创作工具新体验 MusePublic Art Studio让AI图像生成变得像使用画笔一样简单。这个工具专门为创作者设计&#xff0c;不需要懂任何代码技术&#xff0c;通过…...

别再为日期格式头疼了!Oracle TO_TIMESTAMP函数保姆级使用指南(含常见报错解决)

Oracle TO_TIMESTAMP实战&#xff1a;从混乱字符串到精准时间戳的避坑指南 刚接手一个数据迁移项目时&#xff0c;我对着几十万条格式各异的日期记录发愁——有"2023/12/01"这样的斜杠分隔&#xff0c;也有"01-Dec-23 14.30.00.123"带英文月份缩写和毫秒的…...

Kafka消费者组避坑指南:从位移提交到重平衡的实战经验

Kafka消费者组实战避坑指南&#xff1a;从位移管理到重平衡优化 在分布式消息系统中&#xff0c;Kafka消费者组的稳定性直接决定了数据处理的可靠性。我曾亲眼见证过一个电商大促场景下&#xff0c;由于消费者组配置不当导致百万级订单积压的故障。本文将分享七个关键场景的深度…...

如何用网盘直链下载助手突破限制提升效率:5个实用技巧

如何用网盘直链下载助手突破限制提升效率&#xff1a;5个实用技巧 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

视频会议不止办公!揭秘它如何重构医疗与教育两大行业

在数字技术全面普及的今天&#xff0c;视频会议早已不再局限于企业内部日常办公沟通这一单一用途&#xff0c;开始深度渗透到各大垂直行业领域中。其中医疗、教育这两大与民生息息相关的领域&#xff0c;更是借助定制化开发的视频会议技术&#xff0c;解决了不少长期存在的行业…...

Java Web新手必看:EDUCODER头哥MVC用户登录实战(含JDBC连接避坑指南)

Java Web新手实战&#xff1a;EDUCODER平台MVC用户登录全流程解析 第一次接触Java Web开发时&#xff0c;最让人兴奋的莫过于亲手实现一个完整的用户登录系统。这不仅是对MVC架构的直观理解&#xff0c;更是打通前后端数据流的关键里程碑。在EDUCODER这样的实训平台上&#xff…...

数字一阶低通滤波器在嵌入式系统中的应用:从理论到代码实现(附MATLAB验证)

数字一阶低通滤波器在嵌入式系统中的工程实践&#xff1a;从参数设计到代码优化 在嵌入式系统开发中&#xff0c;信号处理是一个永恒的话题。无论是传感器数据采集、电机控制还是通信系统&#xff0c;原始信号往往混杂着各种噪声。数字一阶低通滤波器以其计算量小、实现简单的特…...

像素时装锻造坊:零基础5分钟快速部署,开启你的AI像素时装设计之旅

像素时装锻造坊&#xff1a;零基础5分钟快速部署&#xff0c;开启你的AI像素时装设计之旅 1. 为什么选择像素时装锻造坊 想象一下&#xff0c;你正在设计一款复古风格的像素游戏&#xff0c;需要为角色制作各种皮革时装。传统方法要么需要专业的美术功底&#xff0c;要么得花…...

[RAG在LangChain中的实现]常用的向量存储和基于向量存储的检索器

向量存储是RAG解决方案的核心&#xff0c;目前市面上由很多向量存储产品&#xff0c;由免费开源的&#xff0c;也有商业闭源的&#xff1b;有本地部署的&#xff0c;也有完全云托管的&#xff1b;有传统数据库产品推出的针对向量存储的扩展&#xff0c;也有新势力专门针对向量存…...

AI万能分类器零基础入门:5分钟搭建无需训练的文本分类系统

AI万能分类器零基础入门&#xff1a;5分钟搭建无需训练的文本分类系统 1. 引言&#xff1a;为什么选择零样本分类&#xff1f; 想象一下这样的场景&#xff1a;你刚接手一个新项目&#xff0c;需要快速对大量用户反馈进行分类。传统方法要求你收集数据、标注样本、训练模型&a…...