AtCoder Beginner Contest 360

A - A Healthy Breakfast

枚举一下,只要R在M之前就行了

#include <iostream>using namespace std;int main()
{char a,b,c;cin >> a >> b >> c;if((a == 'R' && (b == 'M' || c == 'M')) || (b == 'R' && c == 'M')){cout << "Yes" << endl;}else cout << "No" << endl;return 0;
}

B - Vertical Reading 

题意:把字符串每隔w个字符拆分一次,取每段的第c个字符拼接在一起,看能不能得到t

数据范围很小,直接暴力枚举(*^_^*)

#include <iostream>using namespace std;int main()
{string a, b;cin >> a >> b;a = ' ' +a;int na = a.size()-1;//枚举每一种长度for(int w = 1; w < na; w++){//枚举cfor(int c = 1; c <= w; c++){string ans = "";for(int i = 1; i <= na; i += w){//判断第c个字符是否超过字符串长度if(i + c - 1 <= na) ans += a[i + c - 1];}if(ans == b) {puts("Yes");return 0;}}}puts("No");return 0;
}

C - Move It

分析:因为最终每个箱子中只有一个小球,并且要使移动的代价最小,所以只需要把每个箱子里除去最大权值的物品逐个加起来即可,代码如下:

#include <iostream>
#include <algorithm>
#include <vector>
#include <map>using namespace std;const int N = 1e5+10;int w[N];bool cmp(int i, int j)
{return w[i] < w[j];
}int main()
{int n;cin >> n;map<int, vector<int>> mp;int x;for(int i = 1; i <= n; i++) {cin >> x;mp[x].push_back(i);}for(int i = 1; i <= n; i++) cin >> w[i];long long ans = 0;for(auto t : mp){vector<int> v = t.second;if(v.size() <= 1) continue;sort(v.begin(), v.end(), cmp);//把除了最大的数加起来for(int i = 0; i < v.size() - 1; i++){ans += w[v[i]];}}cout << ans << endl;return 0;
}

D - Ghost Ants

分析:因为所有蚂蚁的速度都是相同的,所以方向相同的蚂蚁是不会碰头的,这样就可以把蚂蚁分成两个部分,一部分朝向正方向,一部分朝向负方向,然后我们就可以枚举正方向的每个蚂蚁都能与负方向的哪些蚂蚁碰头,为了降低时间复杂度,这个过程我们可以先将负方向的蚂蚁位置进行从小到大排序,然后利用二分来去寻找合适能碰头的蚂蚁的数量,代码如下:

#include <iostream>
#include <algorithm>
#include <vector>using namespace std;int main()
{int n;long long t;cin >> n >> t;string s;cin >> s;s = ' ' + s;vector<long long> a;vector<long long> b;long long x;for(int i = 1; i <= n; i++) {cin >> x;if(s[i] == '1') a.push_back(x);else b.push_back(x);}sort(a.begin(), a.end());sort(b.begin(), b.end());long long ans = 0;for(long long y : a){auto l = lower_bound(b.begin(), b.end(), y), r = upper_bound(b.begin(), b.end(), y + t + t);ans += r - l;}cout << ans << endl;return 0;
}

E - Random Swaps of Balls 

分析:首先对于位置1,黑球有两种选择,一是改变位置,二是保持在原地,然后我们可以计算一次操作黑球的期望位置:

对于保持在原地,我们可以两个都不选择位置1处的球,它的概率是\frac{(n-1)^{2}}{n^{2}},也可以选择两个都是位置1处的球,它的概率为\frac{1}{n^{2}},因此,保持原地的概率为\frac{(n-1)^{2}+1}{n^2},此时保持原地的期望为\frac{(n-1)^{2}+1}{n^2}*1

对于改变位置,我们有\frac{1}{n}的概率选择位置1,有\frac{1}{n}的概率选择其他位置,并且两者可以互换位置,所以要乘以2,那么期望位置为:2*\frac{1}{n}*(\frac{1}{n}*2 + \frac{1}{n}*3+...+\frac{1}{n}*n)=2*\frac{1}{n^{2}}*(2+3+...+n)=2*\frac{1}{n^{2}}*(1+2+3+...+n - 1)=\frac{2}{n^{2}}*(\frac{(n+1)*n}{2} - 1)

将两者相加后即是一次操作后的期望位置。

算出这次的期望位置后,我们通过此次的期望位置来算出后面的期望位置,只是需要把保持在原地乘以1换成乘以此次的期望值,把改变位置的期望值中减1,改成减去此次的期望值,假如此次的期望为f[i],则f[i]=\frac{(n-1)^{2}+1}{n^{2}}*f[i-1]+\frac{2}{n^{2}}*(\frac{n*(n+1)}{2}-f[i-1])

然后循环k次就可以了,

对于第0次,它的期望就是1,代码如下:

#include <iostream>using namespace std;using ll = long long;const int mod = 998244353, N = 1e5+10;ll f[N];ll qmi(ll a, ll b)
{ll res = 1;a%=mod;while(b){if(b&1) res = 1LL * res * a % mod;a = 1LL * a * a % mod;b >>= 1;}return res;
}ll inv(ll x)
{return qmi(x, mod-2);
}int main()
{ll n, k;cin >> n >> k;f[0] = 1;//求n*n逆元ll invn = inv(n*n);ll sum = ((n-1) * (n-1) % mod + 1) % mod; ll p = (n + 1)*n / 2 % mod;for(int i = 1; i <= k; i++){f[i] = f[i-1]*sum % mod * invn % mod;f[i] += 2LL * invn % mod * (p - f[i-1]) % mod;f[i] = (f[i] % mod + mod)%mod;}cout << f[k] << endl;return 0;
}

F、E不会,以后再补

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

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

相关文章

【trition-server】运行一个pytorch的ngc镜像

ngc 提供了pytorch容器 号称是做了gpu加速的 我装的系统版本是3.8的python,但是pytorch似乎是用conda安装的3.5的: torch的python库是ls支持gpu加速是真的 英伟达的pytorch的说明书 root@a79bc3874b9d:/opt/pytorch# cat NVREADME.md PyTorch ======= PyTorch is a python …

顶会FAST24最佳论文|阿里云块存储架构演进的得与失-1.引言

今年早些时候&#xff0c;2月份举办的全球计算机存储顶会USENIX FAST 2024&#xff0c;最佳论文来自阿里云&#xff0c;论文名称《What’s the Story in EBS Glory: Evolutions and Lessons in Building Cloud Block Store》 &#xff0c;论文详尽地探讨了阿里云在过去十年中开…

HTML(28)——空间转换

空间&#xff1a;是从坐标轴角度定义的XYZ三条坐标轴构成了一个立体空间 Z轴位置与视线方向相同 空间转换 平移 属性&#xff1a; transform: translate3d(x,y,z);transform: translateX();transform: translateY();transform: translateZ(); 取值&#xff1a;像素单位数值…

国内教育科技公司自研大语言模型

好未来的数学大模型九章大模型&#xff08;MathGPT&#xff09; 2023年8月下旬&#xff0c;在好未来20周年直播活动中&#xff0c;好未来公司CTO田密宣布好未来自研的数学领域千亿级大模型MathGPT正式上线并开启公测。根据九章大模型的官网介绍&#xff0c;九章大模型&#xff…

强化学习编程实战-2马尔可夫决策过程

2.1 从多臂赌博机到马尔可夫决策过程 如图2-1&#xff0c;图中A为多臂赌博机&#xff0c;B为一堆鸳鸯&#xff0c;其中左上角为雄性鸳鸯&#xff0c;右上角为雌性鸳鸯&#xff0c;B展示的任务是雄性鸳鸯绕过障碍物找到词性鸳鸯。跟多臂赌博机不同的是&#xff0c;雄性鸳鸯经过一…

019-GeoGebra中级篇-GeoGebra的坐标系

GeoGebra作为一款强大的数学软件&#xff0c;支持多种坐标系的使用&#xff0c;包括但不限于&#xff1a;笛卡尔坐标系&#xff08;Cartesian Coordinate System&#xff09;、极坐标系&#xff08;Polar Coordinate System&#xff09;、参数坐标系&#xff08;Parametric Coo…

虚拟机使用

1、安装 如何安装虚拟机&#xff1f;保姆级安装教程&#xff01; - 知乎 (zhihu.com) 2、使用 2.1 快照 作用&#xff1a;保留当前系统信息为快照&#xff0c;随时可以恢复&#xff0c;以防未来系统被你玩坏&#xff0c;就好比游戏中的归档&#xff01;每配置好一个就可以保…

Linux dig命令常见用法

Linux dig命令常见用法 一、dig安装二、dig用法 DIG命令(Domain Information Groper命令)是常用的域名查询工具&#xff0c;通过此命令&#xff0c;你可以实现域名查询和域名问题的定位&#xff0c;对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说&#xff0c;它是一个非…

昇思MindSpore学习笔记6-01LLM原理和实践--FCN图像语义分割

摘要&#xff1a; 记录MindSpore AI框架使用FCN全卷积网络理解图像进行图像语议分割的过程、步骤和方法。包括环境准备、下载数据集、数据集加载和预处理、构建网络、训练准备、模型训练、模型评估、模型推理等。 一、概念 1.语义分割 图像语义分割 semantic segmentation …

【计算机毕业设计】018基于weixin小程序实习记录

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

【Java系列】深入解析 Lambda表达式

简化这个代码 这个就是Lambda表达式,可以简化匿名内部类的写法 package lambda;public class demo2 {public static void main(String[] args) {//第二个参数是一个接口,所以我们在调用方法的时候,需要传递这个接口的实现类对象--接口多态// 但是这个实现类,我只要用一次,所以我…

@Builder注解详解:巧妙避开常见的陷阱

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 Builder注解详解&#xff1a;巧妙避开常见的陷阱 前言1. Builder的基本使用使用示例示例类创建对…

极客时间:使用Autogen Builder和本地LLM(Microsoft Phi3模型)在Mac上创建本地AI代理

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

运维系列.Nginx:自定义错误页面

运维系列 Nginx&#xff1a;自定义错误页面 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…

本地部署秘塔开源搜索引擎

秘塔AI搜索是由秘塔科技于2024年初推出的一款新型搜索引擎&#xff0c;被业界誉为“中国版的Perplexity”。秘塔科技成立于2018年4月&#xff0c;其核心团队包括CEO闵可锐、技术专家唐悦和首席运营官王益为等。秘塔AI搜索以其高效简洁的特点受到关注&#xff0c;其搜索结果直接…

LeetCode——第 405 场周赛

题目 找出加密后的字符串 给你一个字符串 s 和一个整数 k。请你使用以下算法加密字符串&#xff1a; 对于字符串 s 中的每个字符 c&#xff0c;用字符串中 c 后面的第 k 个字符替换 c&#xff08;以循环方式&#xff09;。 返回加密后的字符串。 示例 1&#xff1a; 输入&…

谷粒商城学习笔记-16-人人开源搭建后台管理系统

文章目录 一&#xff0c;克隆前/后端代码1&#xff0c;克隆前端工程renren-fast-value2&#xff0c;克隆后端工程renren-fast 二&#xff0c;集成后台管理系统的后端代码三&#xff0c;启动后台管理系统四&#xff0c;前端系统的安装和运行1&#xff0c;下载安装VSCode2&#x…

为什么KV Cache只需缓存K矩阵和V矩阵,无需缓存Q矩阵?

大家都知道大模型是通过语言序列预测下一个词的概率。假定{ x 1 x_1 x1​&#xff0c; x 2 x_2 x2​&#xff0c; x 3 x_3 x3​&#xff0c;…&#xff0c; x n − 1 x_{n-1} xn−1​}为已知序列&#xff0c;其中 x 1 x_1 x1​&#xff0c; x 2 x_2 x2​&#xff0c; x 3 x_3 x…

STM32对数码管显示的控制

1、在项目开发过程中会遇到STM32控制的数码管显示应用&#xff0c;这里以四位共阴极数码管显示控制为例讲解&#xff1b;这里采用的控制芯片为STM32F103RCT6。 2、首先要确定数码管的段选的8个引脚连接的单片机的引脚是哪8个&#xff0c;然后确认位选的4个引脚连接的单片机的4…

京东技术团队撰写的整整986页《漫画学Python》到底有什么魅力?

这是一本Python入门书。无论您是想学习编程的小学生&#xff0c;还是想参加计算机竞赛的中学生&#xff0c;抑或是计算机相关专业的大学生&#xff0c;甚至是正在从事软件开发的职场人&#xff0c;本书都适合您阅读和学习。但您若想更深入地学习Python并进行深层次应用&#xf…