news 2026/4/29 12:30:43

打卡信奥刷题(3184)用C++实现信奥题 P8048 [COCI 2015/2016 #4] ENDOR

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(3184)用C++实现信奥题 P8048 [COCI 2015/2016 #4] ENDOR

P8048 [COCI 2015/2016 #4] ENDOR

题目描述

如果我们相信《吉尼斯世界纪录大全》的话,在布满森林的 Endor 卫星上,有一根全银河系最长的棍子。在那根L LL米长的棍子上有n nn只欢快的变色龙。每只变色龙以1 11米/秒的恒定速度沿着棍子在两个可能的方向(左或右)中的一个方向上移动,并以可能的k kk种颜色之一着色。

众所周知,Endor 卫星上的变色龙崇拜古老的蚂蚁法则,该法则规定变色龙必须沿着棍子行走直到走到棍子的末端,并且当与另一只变色龙发生碰撞时,该变色龙必须转过180 180180度,继续朝相反的方向行走。此外,在向左移动着色为a aa的变色龙与向右移动的着色为b bb的变色龙发生碰撞后,碰撞前向左移动的变色龙采用碰撞前向右移动的变色龙的颜色b bb,而在碰撞前向右移动的变色龙会采用新的颜色( a + b ) m o d k (a+b)\bmod k(a+b)modk

如果给你所有变色龙的初始位置、颜色和运动方向,对于每种颜色,确定采用该种颜色的变色龙在离开棍子之前的总行程。

输入格式

第一行输入三个整数n , k , L n,k,Ln,k,L,分别表示变色龙的只数,颜色的种数和棍子的长度。
随后n nn行,每行两个整数d i , b i d_i,b_idi,bi和一个字符LD,其中d i , b i d_i,b_idi,bi分别表示第i ii只变色龙到棍子左端的距离和第i ii只变色龙的颜色,字符如果是L,则表示第i ii只变色龙初始时面朝左边,否则表示第i ii只变色龙初始时面朝右边。保证d i d_idi两两不同且按升序给出。

输出格式

输出k kk行,第i ii行输出一个实数,表示采用第i − 1 i-1i1种颜色的变色龙离开棍子之前的总行程,保留一位小数。可以证明,答案要么是整数,要么是形如x.5 \texttt{x.5}x.5的一位小数。

输入输出样例 #1

输入 #1

2 3 10 0 0 D 10 1 L

输出 #1

10.0 10.0 0.0

输入输出样例 #2

输入 #2

4 3 7 1 0 D 3 0 D 4 1 L 6 2 D

输出 #2

10.0 4.0 1.0

输入输出样例 #3

输入 #3

4 4 5 1 1 D 3 3 L 4 2 D 5 0 L

输出 #3

2.5 4.0 2.5 4.0

说明/提示

【样例 1 解释】

两只变色龙在行走了5 55米之后发生碰撞。在此之后,1 11号变色龙的颜色变为0 002 22号变色龙的颜色变为1 11,然后它们各又继续走了5 55米然后离开棍子。因此,采用第0 00种颜色和第1 11种颜色的变色龙各走了10 1010米,在此过程中不存在采用第2 22种颜色的变色龙。

【数据范围】

对于50 % 50\%50%的数据,保证1 ⩽ n ⩽ 3000 1\leqslant n\leqslant 30001n3000
对于所有数据,1 ⩽ n ⩽ 10 5 1\leqslant n\leqslant 10^51n1051 ⩽ k ⩽ 40 1\leqslant k\leqslant 401k401 ⩽ L ⩽ 10 6 1\leqslant L\leqslant 10^61L1060 ⩽ d i ⩽ L 0\leqslant d_i\leqslant L0diL0 ⩽ b i < k 0\leqslant b_i<k0bi<kd i − 1 < d i d_{i-1}<d_idi1<di

【题目来源】

本题来源自COCI 2015-2016 CONTEST 4 T6 ENDOR,按照原题数据配置,满分160 160160分。

由 Eason_AC 翻译整理提供。

C++实现

#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;doublecnt[50],ans[50];signedmain(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);intn,k,l;cin>>n>>k>>l;intlst=0,del=0;for(inti=1;i<=n;++i){intd,col;charop;cin>>d>>col>>op;if(op=='L'){ans[col]+=(d-lst)/2.0;ans[(col+del)%k]+=d/2.0;for(inti=0;i<k;++i)ans[(i+col)%k]+=cnt[i];}else{ans[col]+=l-d;rotate(cnt,cnt+k-col,cnt+k);cnt[col]+=(d-lst)/2.0;del=(del+col)%k;lst=d;}}for(inti=0;i<k;++i)cout<<fixed<<setprecision(1)<<ans[i]<<'\n';return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 12:30:33

别再为兼容性问题头疼!超声波一体式气象站一次解决

&#xff08;1&#xff09;十参数高度集成&#xff0c;综合性环境监测设备一体化集成气象环境空气质量声学监测十大参数&#xff0c;不仅可满足常规微气象监测需求&#xff0c;还可同步监测大气颗粒物与环境噪音&#xff0c;一套设备即可完成区域综合环境质量评价&#xff0c;替…

作者头像 李华
网站建设 2026/4/29 12:24:22

从Netflix到Uber:拆解大厂真实案例,看Lambda和Kappa架构到底怎么选

从Netflix到Uber&#xff1a;拆解大厂真实案例&#xff0c;看Lambda和Kappa架构到底怎么选 在数据驱动的时代&#xff0c;企业如何构建高效、可靠的大数据处理架构成为技术决策的关键难题。Netflix每天处理超过5000亿个事件&#xff0c;Uber的实时风控系统需要在毫秒级别做出响…

作者头像 李华
网站建设 2026/4/29 12:19:24

LFM2.5-VL-1.6B从零开始:无AI经验开发者30分钟完成图文问答Demo

LFM2.5-VL-1.6B从零开始&#xff1a;无AI经验开发者30分钟完成图文问答Demo 1. 项目介绍 LFM2.5-VL-1.6B是Liquid AI最新发布的轻量级多模态大模型&#xff0c;专为边缘计算和端侧设备优化设计。这个模型结合了1.2B参数的语言模型和约400M参数的视觉模型&#xff0c;总参数量…

作者头像 李华
网站建设 2026/4/29 12:16:53

BilibiliDown:3步掌握B站视频下载的完整免费解决方案

BilibiliDown&#xff1a;3步掌握B站视频下载的完整免费解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi…

作者头像 李华