Codeforces Round 895 (Div. 3)

A. Two Vessels

求出目标水位,然后计算倒水的次数向上取整即可

void solve(){db a, b, c; cin >> a >> b >> c;print(int(ceil((max(a, b) - (abs(b + a) / 2)) / c)));
}

B. The Corridor or There and Back Again

对于每个可能被激活的陷阱,计算该陷阱激活后可以走到的最右边的距离,答案就是所有最远距离里的最小值

void solve(){int n; cin >> n;int ans = inf;while (n--){int a, b; cin >> a >> b;ans = min(ans, a + (b - 1) / 2);}print(ans);
}

trap是在刚进入时激活的,所以可以移动的步数是b - 1

C. Non-coprime Split

预处理sqrt(1e7)内的质数,然后对于每个l,r,去扫描一遍质数数组,对于每个质数做计算看是否存在符合条件的结果。

vi primes;
void PreProcess(){primes = sievePrimes(4444);        //函数模板
}void solve(){int l, r; cin >> l >> r;liter(prime, primes){int a = (l / prime - 1)* prime, b = (r / prime - 1) * prime;//如果除以Prime后不减1,可能会出现:l==r且l被prime整除,则prime + l > r。r%prime >= 0,但是没有 - 1,导致prime + b> rif (a > 1 && prime + a >= l && prime + 1 <= r){print(prime, a);return;}else if (b > 1 && prime + b >= l && prime + b<= r){print(prime, b); return;}}print(-1);
}

一开始读错题了,以为a,b都要在l,r区间内。

第一种算法预处理了1e7的质数,TLE。

第二种算法尝试用2与[l, r]之间的偶数进行匹配, WA。

第三种算法对每个质数尝试找到一个解,AC。

为什么在寻找含有prime的因子时一定要被prime除了以后将结果-1,而且这种方法一定正确?

因为r/prime - 1>=1必须成立,才可能有解。如果这个式子不成立,说明r最多只能包含一个当前的prime,不可能包含第二个也含有prime的因子。比如r= 5, r/2-1 = 1,可以包含2,2。r = 3, r/2 -1 = 0,r范围内只能包含一个2,不可能包含第二个2出来。

所以也可以这么理解,先将r降为当前prime最大整数倍r = r / prime * prime,然后看r中是否包含了至少2个prime,即r / prime >= 2。这两个条件都满足,则一定有解。

至于为什么要计算L,因为做题时没有想到L的计算是非必须的。只要单独的把R拿出来进行计算,L最后只用来做大小的比较即可,代码也可以AC。

如果按L来计算的话,应该是这样的:L = L / prime  + (L % prime != 0),然后再判断L是否小于R,L中是否包含了至少2个prime即可。

D. Plus Minus Permutation

统计x下标出现的次数,y下标出现的次数,以及两者同时出现的次数。

贪心策略:将从n开始计数的大的数放到x的下标上,从1开始计数的小的数放到y的下标上,其他的数无所谓。因为位置最多只能有n个,所以这种放置策略一定正确。

void solve(){ll n, x, y; cin >> n >> x >> y;ll x1 = n / x, y1 = n / y, z = n / lcm(x, y);//x和y的最小公倍数x1 -= z, y1 -= z;ll r = n, l = 1;ll a = (r - x1 + 1 + r) * (x1) / 2;ll b = (y1 + l) * y1 / 2;print(a - b);
}

一开始居然看成了把加减法看成了乘数法qaq
 

E. Data Structures Fan

给长度为n的字符串01序列和长度为n的数组,将数组按字符串中为0还是为1分成两部分。q个询问,每个询问可能是将区间LR中的数取反,或者询问数组中所有字符串对应位置为0或者为1的异或和。

预处理一个前缀异或和,以及数组中1的异或和,数组中0的异或和。区间修改时将两个异或结果与区间异或和[L, R]做一次运算即可。

void solve(){int n; cin >> n;vi a(n + 1); LITER(x, a) cin >> x;string s; cin >> s;s = ' ' + s;vi prefix(n + 1);int z = 0, o = 0;lfor (i, 1, n){prefix[i] = prefix[i - 1] ^ a[i];if (s[i] == '1'){o ^= a[i];}else z ^= a[i];}int q; cin >> q;vi ans;while (q--){int c; cin >> c;if (c == 2){int d; cin >> d;ans.pb(d == 0 ? z : o);}else{int l, r; cin >> l >> r;o ^= prefix[r] ^ prefix[l - 1];z ^= prefix[r] ^ prefix[l - 1];}}print(ans);
}

算法正确性的保证在于:区间取反说明区间中的0都变成了1,1 都变成了0。如果[L, R]中有新的数变成了1,那么1一定要跟他们做运算(增加这些数到结果中),如果有1变成了0,那么1也要跟他们做运算(从结果中消除这部分数),对于0同理。

写完E题已经晚上11点半,洗洗睡了。等有机会FG再见

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

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

相关文章

使用Docker部署Gitlab的记录

docker版本 使用docker -v查看 Docker version 1.13.1, build 7d71120/1.13.1运行容器镜像 映射本机的9980端口为Docker内部的80端口 映射本机的9922端口为Docker内部的22端口 使用root用户启动 映射本机目录/mnt/sda/gitlab/log为Docker内部的/var/log/gitlab 映射本机目录…

4 | Java Spark实现 WordCount

简单的 Java Spark 实现 WordCount 的教程,它将教您如何使用 Apache Spark 来统计文本文件中每个单词的出现次数。 首先,确保您已经安装了 Apache Spark 并设置了运行环境。您需要准备一个包含文本内容的文本文件,以便对其进行 WordCount 分析。 代码 package com.bigdat…

我的创作纪念日-2023

突然看到CSDN有这么一个发文模版&#xff08;后文都是按照模版填空了&#xff09;&#xff0c;那就写一些吧。 机缘 具体有什么机缘呢&#xff1f;简单就是说&#xff0c;在CSDN上得到了一些帮助&#xff0c;因此也想写一些文章以期帮助别人。为什么不在自己的网站写呢&#…

Golang复习

golang的特点 Golang 针对并发进行了优化&#xff0c;并且在规模上运行良好 自动垃圾收集明显比 Java 或 Python 更有效&#xff0c;因为它与程序同时执行 golang数据类型 基本数据类型&#xff08;值类型&#xff09; 布尔类型 数字类型 整型 根据有符号分为&#xff1a;…

[NLP]LLM---FineTune自己的Llama2模型

一 数据集准备 Let’s talk a bit about the parameters we can tune here. First, we want to load a llama-2-7b-hf model and train it on the mlabonne/guanaco-llama2-1k (1,000 samples), which will produce our fine-tuned model llama-2-7b-miniguanaco. If you’re …

axios 请求和响应拦截器

1. 创建实例 使用 axios.create() 使用自定义配置创建一个 axios 实例。 const $http axios.create({timeout: 1000,headers: {Content-Type: application/json,} })2. 拦截器 在请求或响应被 then 或者 catch 处理前拦截他们&#xff0c;拦截分为请求拦截和响应拦截。 //…

微信小程序电影票订票小程序软件设计与实现

摘 要 我们的生活水平正在不断的提高&#xff0c;然而提高的一个重要的侧面表现就是更加注重我们的娱乐生活。电影是我们都喜欢的一种娱乐方式&#xff0c;各式各样的电影给我们带来的喜悦也是大不相同的。带来快乐的同时也因为其复杂、繁琐的流程让电影爱好者们变得烦躁起来。…

以太坊虚拟机

1.概述 以太坊虚拟机 EVM 是智能合约的运行环境。它不仅是沙盒封装的&#xff0c;而且是完全隔离的&#xff0c;也就是说在 EVM 中运行代码是无法访问网络、文件系统和其他进程的。甚至智能合约之间的访问也是受限的。 2.账户 以太坊中有两类账户&#xff08;它们共用同一个…

人大金仓分析型数据库备份和恢复(三)

目录 备份或恢复过滤内容 过滤叶子分区 使用gprestore过滤 备份或恢复过滤内容 gpbackup备份指定数据库中的所有schema和表&#xff0c;除非您使用schema级别或表级别过滤器选项排除或包含单个schema或表对象。 schema级别选项是--include-schema或--exclude-schema命令行选…

​@Cacheable 注解​

1. 功能说明 Cacheable 注解在方法上&#xff0c;表示该方法的返回结果是可以缓存的。也就是说&#xff0c;该方法的返回结果会放在缓存中&#xff0c;以便于以后使用相同的参数调用该方法时&#xff0c;会返回缓存中的值&#xff0c;而不会实际执行该方法。 注意&#xff0c;这…

华为云API对话机器人CBS的魅力—实现简单的对话操作

云服务、API、SDK&#xff0c;调试&#xff0c;查看&#xff0c;我都行 阅读短文您可以学习到&#xff1a;人工智能AI智能的问答管理、全面的对话管理、高效训练部署 1.IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts …

Unity 2018发布在iOS 16.3偶尔出现画面不动的问题

1&#xff09;Unity 2018发布在iOS 16.3偶尔出现画面不动的问题 2&#xff09;IL2CPP在Xcode下增量编译问题 3&#xff09;帧同步实现PuppetMaster布娃娃系统的问题 这是第351篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了UWA问答、社区帖子等…

每日刷题-3

目录 一、选择题 二、编程题 1、计算糖果 2、进制转换 一、选择题 1、 解析&#xff1a;在C语言中&#xff0c;以0开头的整数常量是八进制的&#xff0c;而不是十进制的。所以&#xff0c;0123的八进制表示相当于83的十进制表示&#xff0c;而123的十进制表示不变。printf函数…

ASP.NET Core IOC容器

//IOC容器支持依赖注入{ServiceCollection serviceDescriptors new ServiceCollection();serviceDescriptors.AddTransient<IMicrophone, Microphone>();serviceDescriptors.AddTransient<IPower, Power>();serviceDescriptors.AddTransient<IHeadphone, Headp…

【SQL应知应会】索引 • Oracle版:B-树索引;位图索引;函数索引;单列与复合索引;分区索引

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文免费学习,自发文起3天后,会收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 索引 • MySQL版 前言一、Oracle索引1.索引概述及分类…

upload-labs1-17思路

1 直接写一个php文件测试一下&#xff0c;发现弹窗不让上传 原理很简单&#xff0c;就是把后缀名拿出来过滤一遍&#xff0c;而白名单就是弹窗的这三个 解决方法&#xff1a; 因为这是在前端防御的一个手段&#xff0c;所以直接在浏览器设置上禁用js就行了&#xff1a; 也可…

springboot整合neo4j--采用Neo4jClient和Neo4jTemplate方式

1.背景 看了spring-boot-starter-data-neo4j的源码之后发现&#xff0c;该starter内已经实现了Neo4jClient和Neo4jTemplate&#xff0c;我们只需要使用Autowire就能直接使用它操作neo4j。 Neo4jClient方式与我的另一篇springboot整合neo4j-使用原生cypher Java API博客方式一样…

java与hadoop中正则表达式有什么区别

Java和Hadoop中的正则表达式有一些区别&#xff0c;主要体现在以下几个方面&#xff1a; 语法差异&#xff1a;Java中的正则表达式遵循Java的正则表达式语法&#xff0c;而Hadoop中的正则表达式基于Google的RE2库实现&#xff0c;语法稍有不同。例如&#xff0c;在Java中使用\d…

Springboot整合Neo4J图数据库

1.引入依赖 JDK11&#xff0c; neo4J4.4.23 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version><relativePath/> <!-- lookup parent …

机器学习笔记 - 【机器学习案例】基于KerasCV的预训练模型自定义多头+多标签预测

一、KerasCV KerasCV 是一个模块化计算机视觉组件库,可与 TensorFlow、JAX 或 PyTorch 原生配合使用。这些模型、层、指标、回调等基于Keras Core构建,可以在任何框架中进行训练和序列化,并在另一个框架中重复使用,而无需进行昂贵的迁 KerasCV 可以理解为 Keras API 的水平…