VP Codeforces Round 1010 (Div. 2, Unrated)

news/2025/3/17 16:28:47/文章来源:https://www.cnblogs.com/maburb/p/18777097

A. Binary Matrix

题意:给你一个\(01\)矩阵,你要修改尽量少的位置,使得每行每列的异或和都是\(0\)

有三种修改方式:

  1. 修改一个位置使得一行一列满足
  2. 对于两个不满足条件的行,分别修改同一列的位置,使得两个行满足。
  3. 对于两个不满足条件的列,分别修改同一行的位置,使得两个列满足。

发现行或者列自己修改都是消耗两次操作,第一种操作只要一次操作就能使得一行一列满足条件,那么先进行第一次操作,使得行都满足条件或者列都满足条件,这是剩下的就只需要进行第二个操作或者第三个操作。分析发现操作数就是行不满足条件的个数和列不满足条件的个数的最大值。

点击查看代码
void solve() {int n, m;std::cin >> n >> m;std::vector<std::string> s(n);for (int i = 0; i < n; ++ i) {std::cin >> s[i];}int ansr = 0;for (int i = 0; i < n; ++ i) {int cnt = std::count(s[i].begin(), s[i].end(), '1');ansr += cnt & 1;}int ansc = 0;for (int j = 0; j < m; ++ j) {int cnt = 0;for (int i = 0; i < n; ++ i) {cnt += s[i][j] == '1';}ansc += cnt & 1;}std::cout << std::max(ansr, ansc) << "\n";
}

B. Floor or Ceil

题意:给你一个\(x\),你要进行\(n\)次除二向下取整操作和\(m\)次除二向上取整操作。问所有操作里的最小值和最大值。

发现两个操作只有在当前数是不是奇数的情况下才有差别。要想得到最小值,应该先把所有向上取整的操作用完,在向下取整,因为每次遇到一个奇数,向上取整都会是值大一,不妨让它一直操作完,这样到最后向下取整能最小化值,比如如果先向下取整可能得到1,然后向上取整就一直保持这个1,但如果先向上取整,那么向下取整就能把这个1除成0。同样分析可以分析最大值是先向下取整,然后向上取整。

点击查看代码
void solve() {int x, n, m;std::cin >> x >> n >> m;int min = x, a = n, b = m;while (min > 1 && b -- ) {min = (min + 1) / 2;}while (min && a -- ) {min /= 2;}int max = x;a = n, b = m;while (max && a -- ) {max /= 2;}while (max > 1 && b -- ) {max = (max + 1) / 2;}std::cout << min << " " << max << "\n";
}

C. Math Division

题意:给你一个二进制串,每次有\(\frac{1}{2}\)的概率进行向下取整或者向上取整。求变成\(1\)的操作次数的期望。

首先要发现,操作次数只有\(n\)\(n-1\)两种,其中\(n\)次操作是有一次向上取整使得位数不变。比如\(11\)向下取整是\(1\),向上取整是\(10\)。那么我们需要求出\(n\)次操作的情况。
其实向上取整就是末尾为1的情况可以进行进位。
那么我们需要知道第\(2\)位进位的概率(位数从高到低)。需要知道第\(2\)位进位的概率就需要知道第\(3\)位的概率,分析下去发现这是一个递推式,我们要用\(dp\)解决。
\(f_i\)为第\(i\)位进位的概率。对于第\(i\)位,如果是\(0\),那么它要进位需要第\(i+1\)位进位,那么概率是\(f_i = \frac{1}{2} \times f_{i+1}\),如果第\(i\)位是\(1\),那么第\(i+1\)位如果进位则不管第\(i\)位是什么操作都会往前进位,或者第\(i+1\)位不进位,那么第\(i\)位需要进位,则\(f_i = \frac{1}{2} \times (1 - f_{i+1}) + f_{i+1}\)
那么我们把\(f\)看作多进行一次操作的概率,则答案为\(n-1+ f_2\)。因为设进行\(n-1\)操作的概率为\(x\),进行\(y\)次操作的概率为\(y\),则答案为\((n-1)\times x + n \times y\),这个式子等于\((n - 1) \times x + (n - 1 + 1) \times y => n - 1 + y\)

点击查看代码
void solve() {int n;std::cin >> n;std::string s;	std::cin >> s;Z ans = 0;for (int i = n - 1; i > 0; -- i) {if (s[i] == '0') {ans = ans / 2;} else {ans = (1 - ans) / 2 + ans;}}std::cout << (n - 1 + ans) << "\n";
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/900431.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

halcon 深度学习教程(二)halcon基于深度学习的OCR检测

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/18777081深度学习教程目录如下,还在继续更新完善中 深度学习系列教程目录 本篇非常简单,但是非常好用的OCR识别,传统的OCR识别方法一大堆各种各样的操作,麻烦的要死。halcon 22版本开始支持深度学习OCR,并且…

[ SpringMVC ] SpringMVC如何通过是否有@RestController注解来判断返回ModelAndView还是Json

引言之前在面试的遇到面试官问我SpringMVC的执行流程,我那时候回答的是SpringMVC的DispatcherServlet的dodispatch方法找到ControllerMethod之后将返回值通过convert成Json返回响应体,事后想了一下回答的其实并不正确,因为SpringMVC之前学习的时候有使用ModelAndView返回视图,我…

从HR+AI到AI+HR,企业人力资源AI进程已过半

一、人力资源管理智能化应势而上,核心价值受企业管理层肯定 过往各项研究表明,AI 已经被广泛应用于企业经营的各个环节中。根据易路于2023 年发布的《AI 在企业人力资源中的应用白皮书1.0》(以下简称《白皮书1.0》),我们可以明确感受到:AI 已不同程度应用于招聘管理、员工…

multi-object tracking in the dark

创新点:构建LMOT数据集:开发了一种双摄像头系统,同步采集明暗视频帧,形成高度对齐的低光视频对,并提供高质量的多目标跟踪标注。该数据集包含大量城市户外场景视频,涵盖多种动态物体,为模型训练和评估提供了丰富的数据支持。 提出LTrack方法:引入自适应低通下采样模块(…

LGP11831_1 [UPTS 2025] 追忆 学习笔记

LGP11831_1 [UPTS 2025] 追忆 学习笔记 Luogu Link 前言 又幻想了……唉! 幻想自己场切这道题,最后标准分上升至 \(\text{598pts}\),翻掉了 \(\text{yyz}\),不至于一点脸不要。 本题解基本借鉴这篇题解。 题意简述 给定一个 \(n\) 点 \(m\) 边的简单有向图 \(G\),有 \(m\)…

sql 在两个数据表中,A表存在字段以逗号分隔存储B表的多id对象,进行关联查询

A 表:B表:关联查询 需求为,查询出A表的数据列表,需要将A表关联B表的数据id,概要通过B表的 name 进行输出显示 SELECT A.id,A.name,A.creator,A.created_at,GROUP_CONCAT(B.name SEPARATOR , ) AS B_names -- 将 c_name 合并为逗号分隔的字符串 FROM xf_service_type A LE…

算力市场何以拥有巨大潜力

算力市场未来确实具有巨大的潜力,这一判断基于多个方面的因素: 一、算力成为经济增长的主要驱动力 随着全球数字化转型的迅猛推进,算力已成为推动经济增长的关键引擎。各国纷纷加大在算力基础设施方面的投入,以期为经济发展注入新的活力。例如,欧盟委员会批准了一项名为“…

算法备案拟公示内容编写指南

除了自评估报告,算法备案复审中的拟公示内容也是难度颇大的一份材料,导致很多开发者的算法备案申请被驳回。今天我就提供一份简易模板供大家学习参考(请结合实际情况撰写,不要照抄,不要买模板,否则会判定真实性存疑或高度雷同,影响备案)。(各类文件套模板都会判定该真…

CH585 RF_Basic例程讲解含单向和双向发送

CH585_RF基础通讯例程见下图路径:1、RF初始化参数配置/******************************************************************************** @fn RFRole_Init** @brief RF应用层初始化** @param None.** @return None.*/ void RFRole_Init(void) {rfTaskID = TMOS_…

uniapp整合SQLite(Android)

一、勾选SQLite数据库选项 (1)HBuilder工具打开项目 (2)项目/manifest.json =>App模块配置 => 勾选SQLite(数据库)二、封装sqlite.ts 在项目根目录下创建sqlite/sqlite.ts// 数据库名称 const dbName = scan/*** 数据库地址* @type {String} 推荐以下划线为开头 _d…

No.68 Vue---vue3新特性

一、vue3新特性 1.1 六大亮点二、组合API(setup)2.1 ref或者reactive 1、创建项目 vue create vue-demo5 2、进入文件,启动服务。 3、 2.2 methods中定义的方法写在setup() 2.3setup()中使用props和context 在2.x中,组件的方法中可以通过this获取到当前组件的实例,并执…

2025年2月国产数据库大事记-墨天轮

​本文为墨天轮社区整理的2025年2月国产数据库大事件和重要产品发布消息,一起看看2月有哪些大事发生~本文为墨天轮社区整理的2025年2月国产数据库大事件和重要产品发布消息。 目录2025年2月国产数据库大事记 TOP10 2025年2月国产数据库大事记(时间线) 产品/版本发布 兼容认证…