Codeforces Round 926 (Div. 2)(A~C)

A. Sasha and the Beautiful Array

分析:说实话,打比赛的时候看到这题没多想,过了一下样例发现将数组排序一下就行,交了就过了。刚刚写题解反应过来,a2-a1+a3-a2.....an-a(n-1) = an - a1,所以最后结果只取决于最大和最小的差。

int a[N];
void solve() {int n; cin >> n;rep(i, 1, n) cin >> a[i];sort(a + 1, a + 1 + n);int ans = 0;rep(i, 2, n) {ans += a[i] - a[i - 1];}cout << ans << endl;
}

B. Sasha and the Drawing

分析:同样是过了第三个样例发现,只需要涂第一排和最后一排就行了,而且(1,1)和(1,n)要放在最后涂,因为先把别的格子涂满,每涂一个格子贡献+2,最后(1,1)和(1,n)这两个格子,每格贡献+1。

void solve() {int n, k; cin >> n >> k;int cnt = 4 * n - 2 - 2;int d = k - cnt;//tans;if (d <= 0) {if (k % 2) k++;cout << k / 2 << endl;}else {cout << cnt / 2 + d << endl;}}

C. Sasha and the Casino

 

题意:每次下注y元,输了失去y元,赢了得到y*k元(也就是增加y*(k-1)元,如果加上下注的本金就算y*k元了)。

sasha不会连续输x次,也就是说如果连输x次,第x+1次必赢。

最后问,sasha能不能依靠赌博,来无限赢钱。

反思:做题的时候陷入一个误区,我前x场都输掉,然后第x+1场把剩下的钱全下注了,那么只要本金足够,这样不是很好赢钱吗?其实不是的,因为赌场不会一直让你前x场全输的,可能会在第x-1场让你赢一下,“刷新”一下你输的场数。还有一个很需要反思的事情,明明之前一直提醒自己,做题要勤列公式,可是当时脑抽了一直在钻牛角尖没列公式。。。

分析:

我们要保证每一轮赢的钱>输的钱,这样我们才能赢到无限的钱。一轮的结尾是赢的那一把,因为我们一旦赢了,就“刷新”了我们输的场数。

上面说了,在第1~x场,赌场可能会让你赢一场,而如果1~x场全输了,第x+1场必赢。

我们可以得出一个结论:1~x+1场,我们必赢一场!这是重点

一轮中,当我们在第i场(1<=i<=x+1)赢了,说明第1 ~ i-1场是输的,因此我们在第i场赢的前要大于前i-1场输的钱。

可以得到公式

y_{1},y_{2},...y_{i-1},y_{i},yi表示第i场下注的金额

sum = y_{1}+y_{2}+...y_{i-1},sum表示输的金额

win = yi*(k-1),win表示在第i场赢的金额

win - sum > 0

yi > sum / (k-1)

说明,我们第i场的下注金额yi至少是 sum/(k-1)+1。

而到了第i场我们还剩下 a-sum元,

因此得到了不等式,sum/(k-1) + 1 <= a-sum

int k, x, a;void solve() {cin >> k >> x >> a;int sum = 0;int f = 1;rep(i, 1, x + 1) {int y = sum / (k - 1) + 1;if (y <= a - sum) {//有钱下注。然后我们要假设输掉这场sum += y;}else {//没钱下注,就算赢了也没用f = 0;break;}}//tans;if (!f) cout << "NO" << endl;else cout << "YES" << endl;
}

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

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

相关文章

103.二叉树的锯齿形层序遍历

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;103. 二叉树的锯齿形层序遍历 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 每一层从左到右遍历&#xff0c;逐一判断是否需要反转。 解题代码&#xff1a; /*** Definition for a bina…

Python字典全面指南:基础操作与高级应用实例解析

在Python编程中&#xff0c;字典作为核心的数据结构之一&#xff0c;凭借其高效查询、动态添加与删除属性&#xff0c;成为了处理键值对数据的理想选择。本文将逐步详解Python字典的基本操作&#xff0c;并通过实际案例展示如何查找共同键、设置默认值、更新字典、合并字典&…

python工具方法 45 基于ffmpeg以面向对象多线程的方式实现实时推流

1、视频推流 参考基于ffmpeg模拟监控摄像头输出rtsp视频流并opencv播放 实现视频流的推流。 其基本操作就是,安装视频流推流服务器,ffmpeg,准备好要推流的视频。 命令如下所示:ffmpeg -re -stream_loop -1 -i 风景视频素材分享.flv -c copy -f rtsp rtsp://127.0.0.1:554/…

Java数组,你想要的重点都在这。

1.数组的概述 数组 , 就可以理解为多个多个数据的组合 是程序中的容器 : 数组 , 集合框架(以后会将 : List , Set , Map) 数组存储中的数据的特点 : 依次紧密排列 , 有序的 , 可以重复的 此时的数组 , 集合框架都是在内存中对多个数据的存储 . 数组的其他特点 : 一旦初始化…

STM32 与 ARM 谁比较强大?

STM32 和 ARM 是两个不同的概念&#xff0c;STM32 是一种微控制器产品&#xff0c;而 ARM 是一家处理器架构设计和许可的公司。因此&#xff0c;无法简单地比较它们的强大程度。 STM32 是基于 ARM Cortex-M 核的微控制器产品&#xff0c;具有高性能、低功耗、低成本和易于开发等…

突破编程_C++_高级教程(多线程编程的基础知识)

1 多线程编程基础 线程是操作系统能够进行运算调度的最小单位&#xff0c;它被包含在进程之中&#xff0c;每个进程至少有一个线程&#xff0c;即主线程。线程依赖于进程&#xff0c;不能单独存在。线程的主要作用是实现并发执行&#xff0c;即多个线程可以同时执行不同的任务…

怎么搭建自己的网站?

怎么搭建自己的网站 一.领取一个免费域名和SSL证书&#xff0c;和CDN 特点&#xff1a;支持Cloudflare CDN Cloudflare是全球知名的CDN提供商&#xff0c;如果你不想暴露你的源站&#xff0c;又想使用我们的二级域名&#xff0c;不需要前往Cloudflare添加域名&#xff0c;修…

【机器学习笔记】 6 机器学习库Scikit-learn

Scikit-learn概述 Scikit-learn是基于NumPy、 SciPy和 Matplotlib的开源Python机器学习包,它封装了一系列数据预处理、机器学习算法、模型选择等工具,是数据分析师首选的机器学习工具包。 自2007年发布以来&#xff0c;scikit-learn已经成为Python重要的机器学习库了&#xff…

家里台式机需要把一个网站发布到外网可用,怎么搞?--DDNS配置(动态域名解析配置)

前言 Dynamic DNS是一个DNS服务。当您的设备IP地址被互联网服务提供商动态变更时,它提供选项来自动变更一个或多个DNS记录的IP地址。 此服务在技术术语上也被称作DDNS或是Dyn DNS 如果您没有一个静态IP,那么每次您重新连接到互联网是IP都会改变。为了避免每次IP变化时手动更…

java数据结构与算法刷题-----LeetCode18. 四数之和

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 此题为三数之和的衍生题&#xff0c;代码完全一样&#xff0c;只…

全局异常处理器简单使用

一、为什么需要全局异常处理器&#xff1f; 统一异常处理&#xff1a;在应用程序中&#xff0c;可能会出现各种各样的异常情况&#xff0c;如数据库连接失败、资源不存在、权限问题等等。全局异常处理器允许我们统一处理这些异常&#xff0c;而不是在每个地方都去处理它们&…

一、Java安装JDK8

Java安装JDK8 一、Centos7.91.命令行安装2.安装包安装2.1 下载2.2 安装2.3 配置java环境 二、Windows1.下载2.安装3.配置环境变量 一、Centos7.9 1.命令行安装 yum install java-1.8.0-openjdk.x86_642.安装包安装 2.1 下载 下载地址&#xff1a;https://www.oracle.com/cn…

基于T1w/T2w 比值揭示髓磷脂相关变化

前言&#xff1a; 最近在阅读文献的时候发现2篇文章&#xff0c;是采用T1w/T2w 比值表征髓磷脂&#xff0c;有点感兴趣&#xff0c;因此尝试了一下文献所提出的方法。&#xff08;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9247578/ https://www.ncbi.nlm.nih.gov/pmc/ar…

鸿蒙开发系列教程(二十四)--List 列表操作(3)

列表编辑 1、新增列表项 定义列表项数据结构和初始化列表数据&#xff0c;构建列表整体布局和列表项。 提供新增列表项入口&#xff0c;即给新增按钮添加点击事件。 响应用户确定新增事件&#xff0c;更新列表数据。 2、删除列表项 列表的删除功能一般进入编辑模式后才可…

【C语言】Linux 内核listen系统调用代码

一、Linux 4.19内核listen系统调用代码注释 /** 开始对一个 socket 进行监听。这个函数做一些准备工作以便 socket 可以开始监听&#xff0c;* 如果操作成功&#xff0c;则将 socket 标记为准备好监听的状态。*/int __sys_listen(int fd, int backlog) {struct socket *sock…

VueCLI核心知识4:动画效果、过渡效果

1 动画效果 【代码】 <template><div><button click"isShow !isShow">显示/隐藏</button><!-- <transition name"xxx" :appear"true"> 可以指定name属性&#xff0c;也可以不指定&#xff0c;name属性在有…

Codeforces Round 926 (Div. 2)

这场比赛我觉得题目不是特别难&#xff0c;就是有点难读懂&#xff0c;基本上读懂就差不多会做了。 Problem - A - Codeforces 1.思路&#xff1a; Q1&#xff1a;首先这个题我们一定能确定一个下界答案就是最大值减去最小值&#xff0c;那么我们怎样证明下界答案就是上界答案…

数值类型的运算方式总结

提纲1&#xff1a;常见的位运算使用场景 提纲2&#xff1a;整数类型运算时的类型溢出问题&#xff0c;产生原因以及解决办法 提纲3&#xff1a;浮点类型运算时的精度丢失问题&#xff0c;产生原因以及解决办法 数值类型&#xff08;6种&#xff09;分为&#xff1a; 整型&…

六、Datax通过json字符串运行

Datax通过json字符串运行 一、场景二、代码实现 一、场景 制作一个web应用&#xff0c;在页面上配置一个json字符串&#xff0c;保存在数据库里面。在执行json的时候&#xff0c;动态在本地创建一个json文件后执行&#xff0c;并识别是否成功&#xff0c;将执行过程保存在数据…

[运行报错] Maven打包SpringBoot项目,运行报错:no main manifest attribute, in xxx.jar

文章目录 问题描述解决办法附录 问题描述 IDEA创建SpringBoot 2.6.13项目&#xff08;仅引入SpringMVC依赖&#xff09;&#xff0c;对生成的代码不做修改直接Maven打包。但运行报错&#xff1a; # java -jar xxx.jar no main manifest attribute, in xxx.jar检查jar包&…