AtCoder AGC073 A 题解

news/2025/9/29 20:43:23/文章来源:https://www.cnblogs.com/turt1e/p/19119493

题目链接:https://atcoder.jp/contests/agc073/tasks/agc073_a

参考出题人题解

首先理解题意可以破圆为链,直接枚举肯定会超时,考虑将转化成期望,对于某一段黑色区域,当某区域包含一段弧时,我们给每个端点加上 \(\frac{1}{2}\) 的权值,当该区域不包含弧时,该区域存在一个距离圆心最远的唯一点,我们给该点加上 \(1\) 的权值,显然,对于一段弧来说,选中它的概率为 \(\frac{1}{2}\),并且对于一个弧来说,它附近的两个区域肯定是一黑一白,因此端点权重的期望为 \(\frac{1}{4}\)。对于两条弦的交点,首先,这两条弦都被选用的概率为 \(\frac{1}{4}\),其次,若不存在其他弦将圆心与该交点隔开,则该交点对应的区域始终为白色,权重恒为 \(0\)。反之,若存在一条或多条这样的弦,则有 \(\frac{1}{2}\) 的概率分配1的权重。综上,当无其他弦将交点与圆心隔开,期望值则为 \(0\),反之则为 \(\frac{1}{8}\)

计算总端点权值:每条弦有两个端点,每个端点的期望是 \(\frac{1}{4}\),因此总期望为 \(\frac{N}{2}\),但是对于两条的交点我们需要额外考虑,我们需要把端点带来的贡献先去掉。

假设共有 \(I\)个交点,显然所有交点的贡献便是 \(\frac{1}{8}I\)。对于没有交点的两弦来说,定义 \(V=\) 满足 \(Ai+k<=A_{i+1}\)\(i\) 的数量,那么无其他弦将其与圆心隔开的交点数量为 \(N-V\),剩下的 \(I-(N-V)\) 个交点有其他弦将其与圆心隔开。因此总交点期望便是 \((I-N+V)*\frac{1}{8}=\frac{1}{8}I-\frac{1}{8}N+\frac{1}{8}V\)

综上,总期望是 \(E=\frac{3}{8}N+\frac{1}{8}I+\frac{1}{8}V\),有 \(2^N\) 种可能,因此最后答案再乘以 \(2^N\) 即可。

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 4e5 + 10, mod = 998244353;
int a[N], l, k, n;
int ksm(int x, int y)
{int res = 1;while(y){if(y & 1) res = res * x % mod;x = x * x % mod;y >>= 1;}return res;
}
signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int V = 0, I = 0;cin >> l >> k >> n;for(int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < n; i++) {int val = (i == n - 1) ? a[0] + l : a[i + 1];if (a[i] + k <= val) V++;}// int j = 0;// for(int i = 0; i < n; i++)// {// 	while(j < n && a[j] <= a[i]) j++;// 	int h = j;// 	while(h < n && a[h] < a[i] + k) h++;// 	I += (h - j);// 	if(a[i] + k >= l)// 	{// 		int pos = a[i] + k - l;// 		int s = 0;// 		while(s < n && a[s] < pos)s++;// 		I += s;// 	}    // } //  双指针被卡了for(int i = 0; i < n; i++){if(a[i] + k < l){int lf = upper_bound(a, a + n, a[i]) - a, rf = lower_bound(a, a + n, a[i] + k) - a;I += (rf - lf);}else{int lf = upper_bound(a, a + n, a[i]) - a, rf = lower_bound(a, a + n, a[i] + k - l) - a;I += (n - lf);I += rf;}}int inv = ksm(8, mod - 2);int e = (3ll * n + I + V) % mod;e = e * inv % mod;int num = ksm(2, n) % mod;int ans = e * num % mod;cout << ans;
}

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

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

相关文章

网站flash制作教程收录平台

FreeRTOS-事件标志组 一、事件标志组简介二、事件标志组API函数三、事件标志组实验 一、事件标志组简介 事件标志位&#xff1a;用一个位来表示事件是否发生&#xff0c;裸机中的中断标志位等等事件标志组&#xff1a;是一组事件标志位的集合&#xff0c;简单认为就是一个整数…

怎么开个人网站阿里云 wordpress 响应时间

Redis 实现分布式Session 登录 借助 Redis 对 Session 信息进行统一的存储和管理&#xff0c;这样无论请求发送到哪台服务器&#xff0c;服务器都会去同一个 Redis 获取相关的 Session 信息&#xff0c;这样就解决了分布式系统下 Session 存储的问题。 【发送短信】校验手机号…

什么浏览器好用可以看任何网站android开发wordpress

「Author&#xff1a;Runsen」当初学Python的时候&#xff0c;把一些标准库和第三方开源库学的七零八落&#xff0c;不成系统&#xff0c;正好趁这个机会来系统的整理一下&#xff0c;先从Python常用的标准库os开始吧。osOS模块简单的来说它是一个Python的系统编程的操作模块&a…

童装网站建设目标网站建设公司做销售前景好不好

文章目录 前言一、抽象类和接口对比二、举例说明三种情况1.接口实现类接口 2.抽象类实现类抽象类实现类(子类) 3.抽象类实现接口接口抽象类三个实现类 总结 前言 抽象类和接口其实都是抽象的一种,那么他俩有何异同呢? 抽象类实现接口的意义何在? 一、抽象类和接口对比 接口…

wordpress下载网站西安哪里可以做公司网站

实时监控&#xff1a; 可视化大屏可以实时监控通讯网络的运行状态和性能指标。通过可视化展示网络的拓扑结构、设备状态、带宽利用率、延迟等数据&#xff0c;运维人员可以及时发现和解决网络故障&#xff0c;保障通讯网络的稳定性和可靠性。 故障诊断与分析&#xff1a; 可视…

山西企业网站建设手机app制作网站

真格这周是学习使用了不少,功能算是很不错,但在做的时候也发现了一个问题: 数据缺失:我在做回测,要求获取每天的delta值,并从中筛选条件值时,报错,显示无数据。不得不使用pass,影响我的回测连贯性。 现在开始讲下,我做的几个功能函数: 算起来,挺烦的,就是各种细节…

本地网站服务器搭建360网站建设基本情况

1 Ansible 介绍 Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于python 开发的&#xff08;集合了众多运维工具 puppet、cfengine、chef、func、fabric的优点&#xff09;自动化运维工具, 其功能实现基于ss…

雄安免费网站建设公司智能建站代理

目录 问题描述 解决方案 方案1&#xff1a; 方案2&#xff1a; 结果示意图 问题描述 做UI的时候&#xff0c;我们很多时候需要给绘制一个圆角边框&#xff0c;初识Qt绘制的童鞋&#xff0c;可能绘制出来的圆角边框很是锯齿&#xff0c;而且粗细不均匀&#xff0c;如下图&…

郑州网站建设兄长好晋城客运东站网站开发

获取源码或者论文请私信博主 演示视频&#xff1a; 基于微信小程序的中医体质辨识文体活动的设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java s…

郑州网站排名公司微信营销的方式有哪些

摘录自&#xff1a;PendingIntent详解 如何判断两个PendingIntent对等&#xff1a; 两个PendingIntent对等是指它们的operation一样, 且其它们的Intent的action, data, categories, components和flags都一样。但是它们的Intent的Extra可以不一样。 主要常量 FLAG_CANCEL_CUR…

Monsters And Spells

题目大意 给定一个长度为 \(n\) 的序列 \(a\),你需要构造一个序列 \(b\) 满足:\(b_0 = 0\) 对于任意一个 \(1 < i < n\),\(b_i \ge a_i\) 对于任意一个 \(1 < i < n\),\(b_i\) 为 \(0\),\(1\) 或 \(b…

Bilibili音频播放器开发 2025-9-29

🎯 前言我的网易云音乐快过期了(10-2)。📅 大致效果主窗口:下载窗口:歌单窗口:📝 总结与反思整体的实现上依靠的是GPT。 可以考虑一下嵌入式之类的方便嵌入手机进行使用。 发朋友圈没人赞......很尴尬了。其…

防爬虫逆向日志爆炸,精简追踪不崩浏览器控制台 - 详解

防爬虫逆向日志爆炸,精简追踪不崩浏览器控制台 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

网站备案 有效期中小企业网络规划与设计方案

题目描述(力扣题库 84): 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 解题思想: 单调栈: 利用先进后出的思想, 先算出长度更高的柱子所能勾勒…

使用 Jenkins 的流水线方案实施 CI/CD

使用 Jenkins 的流水线方案实施 CI/CDpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

抚松做网站wordpress小程序二开

这几天公司在排查内部数据账号泄漏&#xff0c;原因是发现某些实习生小可爱居然连带着账号、密码将源码私传到GitHub上&#xff0c;导致核心数据外漏&#xff0c;孩子还是没挨过社会毒打&#xff0c;这种事的后果可大可小。说起这个我是比较有感触的&#xff0c;之前我TM被删库…

湘潭网站建设出色磐石网络网站搭建详细教程

泛型&#xff0c;英文是generic。 泛型是一种参数化多态。就是把类型作为参数&#xff0c;使用时才指定具体类型。 这样一套代码可以应用于多种类型。比如Vec<T>&#xff0c;可以是整型向量Vec<i32>&#xff0c;也可以是浮点型向量Vec<f64>。 Rust中的泛型属…

重庆微信网站代理商把数据库wordpress

springboot注解扫描范围是由ComponentScan指定的;默认情况下为启动程序所在目录及其子包; 如果需要指定扫描路径&#xff0c;在启动程序中添加修改 ComponentScan(basePackages{"org.jstudio.a","org.jstudio.b"}) SpringBootApplication public class xxx…

平顶山市城乡建设职工培训网站花生壳官网免费域名申请

目录 一、Linux的哲学思想 1.1 基础知识 1.2 根目录下的文件夹 二、Shell 1、Shell的定义 2、Shell的作用 三、Linux命令行 1、Linux通用命令行使用格式 四、Linux命令的分类 1、内部命令和外部命令的理解 2、内部命令和外部命令的区别 3、命令的执行过程 五、编辑…