Codeforces Round #847 (Div. 3) A~E

news2024/11/14 17:41:37

比赛链接:Dashboard - Codeforces Round #847 (Div. 3) - Codeforces

目录

         A. Polycarp and the Day of Pi 

B. Taisia and Dice 

C. Premutation

D. Matryoshkas

E. Vlad and a Pair of Numbers


A. Polycarp and the Day of Pi 

题意:求出一个数字的前几位和 π 相同。

string k="314159265358979323846264338327";
void solve() {
	string s;
	int p=0;
	cin>>s;
	while(p<30&&s[p]==k[p])p++;
	cout<<p<<endl;
}

B. Taisia and Dice 

题意:已知道所有骰子的数量,骰子的点数总和,以及拿走一个最大值的点数总和,请构造所有骰子的点数。

思路:从题目中我们就能得到骰子的最大值了,所以我们先将所有骰子的值都设为最大值,若当前骰子的总点数大于我们期望的总点数就减少它。

void solve() {
	int n,s,r;
	cin>>n>>s>>r;
	int k=s-r;
	int sum=k*n;
	FOR(1,n)a[i]=k;
	FOR(1,n) {
		if(sum-(k-1)>=s)a[i]=1,sum-=k-1;
		else if(sum-(k-1)<s) {
			a[i]-=(sum-s);
			break;
		}
	}
	FOR(1,n)cout<<a[i]<<" \n"[i==n];
}

C. Premutation

题意:一个长度为 n 的排列,将 n个这样的排列每个去掉一位然后打乱。根据打乱后的排列求出原排列。

思路:排列的第一个数在每个数组的第一个位置总共会出现n-1次,由此我们可以确定排列的第一个数为k,然后我们找到那个数组第一个数不是k的数组,这个数组就是排列第2~n的数字,输出第一个数并且输出该数组即可。

void solve() {
	mem(mp,0);
	int n,k;
	cin>>n;
	FOR(1,n) {
		FORj(1,n-1)cin>>a[i][j];
		mp[a[i][1]]++;
	}
	FOR(1,n)if(mp[i]==n-1) k=i;
	cout<<k<<" ";
	FOR(1,n) {
		if(a[i][1]!=k)FORj(1,n-1)cout<<a[i][j]<<" \n"[j==n-1];
	}
}

D. Matryoshkas

题意:给定一个集合,将该集合分成若干个由连续正整数组成的集合,求分成集合的数量的最小值。

思路:若一个数前面没连续数字,则该数对于答案的贡献为该数出现的次数,但若该数前一个数出现过了,那么该数的一部分就能合并到前一个数里面,减少了上一个数出现次数的贡献(该数贡献最多减少至0)。

void solve() {
	map<int,int>mp;
	int n,x,ans=0;
	cin>>n;
	FOR(1,n) {
		cin>>x;
		mp[x]++;
	}
	for(auto [x,y]:mp)
		ans+=max(0ll,y-mp[x-1]);
	cout<<ans<<endl;
}

E. Vlad and a Pair of Numbers

题意:给你一个x ,求出两个数字a,b使得 a+b=2*x 并且a⊕b=x 。

思路:有个结论是我从别人的博客看到的:

博客链接: Codeforces Round #847 (Div. 3) E(数学) - 知乎

 由此我们可以得出a=x/2,b=3*x/2,最后代入验证一下即可。

void solve() {
	int x;
	cin>>x;
	int a=x/2,b=3*x/2;
	if(!((a+b)&1)&&(a^b)==(a+b)/2)cout<<a<<" "<<b<<endl;
	else cout<<-1<<endl;
}

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

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

相关文章

一步创建 AI 图像网站,即刻生成 AI 图像解决方案 #Graydient

过去一年当中&#xff0c;AI 画图工具非常火爆&#xff0c;一条简单的指令&#xff0c;就能快速得出超高品质的图形&#xff0c;这对于游戏开发者来说无疑是令人振奋的消息&#xff0c;尤其是没有预算和人手打造美术资源的中小团队。从网络上看到的结果来看&#xff0c;AI 的绘…

JDBC(powernode 文档)(内含源代码)

源代码下载地址链接&#xff1a;https://download.csdn.net/download/weixin_46411355/87400304 目录 JDBC概述 1.1 前言 1.2 什么是JDBC 1.3 JDBC的原理 1.4 程序员&#xff0c;JDBC&#xff0c;JDBC驱动的关系及说明 1.4.1 JDBC API 1.4.2 JDBC 驱动 1.4.3 Java程序员…

并发编程-多线程并发设计原理

并发编程-多线程&并发设计原理并发编程简介多线程&并发设计原理1 多线程回顾1.1 Thread和Runnable1.1.1 Java中的线程1.1.2 Java中的线程&#xff1a;特征和状态1.1.3 Thread和Runnable接口1.1.4 Callable1.2 synchronized关键字1.2.1 锁的对象1.2.2 锁的本质1.2.3 实现…

k8s实现controller如何远程调式?

背景&#xff1a; 使用kubebuilder和code-generate生成自定义资源代码后&#xff0c;实现管理自定义资源的controller逻辑。此时&#xff0c;需要调试controller代码逻辑&#xff0c;有2种思路。方法1&#xff1a;对该代码打包成镜像文件&#xff0c;直接部署进入k8s集群中&…

Springboot+vue中小企业合同管理系统

编写企业合同管理系统&#xff0c;让其能创建合同、修改合同、删除合同、合同变更标识、合同收款提醒、合同时间管理、合同废止标识、结束合同、合同统计、合同查询等几大功能。 (1) 创建合同 管理人员将签订后的合同的各项信息存入数据库中&#xff0c;使合同进入开始执行的…

网络编程(2)

封装和分用 1)封装:就是在数据中添加一些辅助传输的信息&#xff1b; 2)分用:就是解析这些信息 3)发送数据的时候&#xff0c;上层协议要把数据交给下层协议&#xff0c;由下层协议来添加一些信息 4)接收数据的时候&#xff0c;下层协议要把数据交给上层协议&#xff0c;有上层…

分割pdf的办法?看这里就明白了!

对于大多数办公党来说&#xff0c;困难的或许不是制作一些办公文件、文档&#xff0c;重要的是如何将这些文档以合适的形式发送给需要的人。不管是客户还是同事、上级&#xff0c;他们对文档格式、内容的要求都是有不一样的标准的。这时候我们就面临一个重要的问题了&#xff0…

Linux驱动开发:块设备驱动

这里写自定义目录标题一、块设备的简介二、块设备驱动框架1、block_device 结构体2、gendisk 结构体3、block_device_operations 结构体4、块设备 I/O 请求过程5、bio 结构体三、使用请求队列方式的块设备驱动程序1、经过第“二”部分的讲解总结&#xff0c;可以得出驱动程序的…

Java基础10:常用API(上)

Java基础10&#xff1a;常用API&#xff08;上&#xff09;一、Math二、System1. currentTimeMillis2. arraycopy三、Runtime四、Object1. toString2. equals3. clone五、Objects六、BigInteger1. 构造方法&#xff08;获取BigInteger&#xff09;2. 常用方法七、BigDecimal1. …

2023年房地产地段研究报告

房地产的投资业务中&#xff0c;选择一个好的地段&#xff0c;或者说区位&#xff0c;是十分重要的。在房地产行业&#xff0c;房价中包含地价&#xff0c;而房价上升的主要原因则是地价的上升。当房屋所处的地段深受消费者青睐、该地段的房屋供不应求时&#xff0c;房屋的价格…

Minecraft 1.19.2 Fabric模组开发 08.3D动画盔甲

我们本次在Fabric 1.19.2中实现具有动画效果的3D盔甲 效果演示效果演示效果演示 1.首先&#xff0c;为了实现这些效果&#xff0c;我们需要首先使用到一个模组:geckolib(下载地址) 找到项目的build.gradle文件&#xff0c;在repositories和dependencies中添加依赖。 reposit…

python+django校园大学生兼职系统vue357

目 录 摘 要 I Abstracts II 目 录 III 第1章 绪论 1 1.1课题背景 1 1.2研究意义 1 1.3研究内容 2 第2章 技术介绍 1 第3章 需求分析 4 3.1需求分析概述 4 3.2可行性分析 4 3.2.1经济可行性 5 3.2.2技术可行性 5 3.3系统功能设计 …

Target 塔吉特DVS EDI 业务测试指南

Target塔吉特是美国仅次于Walmart沃尔玛的第二大巨型折扣零售百货集团&#xff0c;由于拓展了其数字化履约能力&#xff0c;使得越来越多的国内零售产品供应商和Target建立合作关系。Target要求其供应商通过EDI&#xff08;Electronic Data Interchange&#xff0c;中文名称是电…

基于蜣螂算法改进的随机森林回归算法 - 附代码

基于蜣螂算法改进的随机森林回归算法 - 附代码 文章目录基于蜣螂算法改进的随机森林回归算法 - 附代码1.数据集2.RF模型3.基于蜣螂算法优化的RF4.测试结果5.Matlab代码6.Python代码摘要&#xff1a;为了提高随机森林数据的回归预测准确率&#xff0c;对随机森林中的树木个数和最…

来看看这些电脑清理内存的方法

随着电脑使用时间的增加&#xff0c;你有没有发现电脑用得越多反应越慢&#xff1f;如果你遇到这个问题&#xff0c;可以试试这几个优化设置&#xff0c;让你的电脑速度起死回生&#xff01; 方法一&#xff1a;删除临时文件 按键盘上的Win R&#xff0c;在对话框中输入【%temp…

96. 不同的二叉搜索树

96. 不同的二叉搜索树题目算法设计&#xff1a;枚举算法设计&#xff1a;动态规划题目 传送门&#xff1a;https://leetcode.cn/problems/unique-binary-search-trees/ 算法设计&#xff1a;枚举 当 n 5&#xff0c;用 {1、2、3、4、5} BST数是多少组&#xff1f; 有 5 种情…

如何在 macOS 上安装虚拟机软件 VMware Fusion Player (个人版免费)

文章目录IntroVMware 网站注册事宜安装在 VMware Fusion 中创建虚拟机准备 iso 文件VMware Fusion 主界面Intro VMware 网站注册事宜 需要一个邮箱地址&#xff0c;先注册登陆 VMware。 然后在之后某个页面再次 register &#xff0c;就是随意填写一些字段&#xff1a;所在公…

记录晖哥程序员职业规划一次授课笔记

发现 发明 道 普通知识、特殊知识 形而上学&#xff0c;为道&#xff0c;职场规律 形而下学&#xff0c;为气&#xff0c;python、go 万物生于有&#xff0c;而有生于无&#xff01; 在职场中做无中生有的事。 利他精神 利他即利己 天予弗取反受其咎&#…

mathtype2023专门打数学符号的软件

mathtype是数学公式编辑器&#xff0c;与常见的文字处理软件及演示程序配合使用&#xff0c;能够在各种文档中加入复杂的数学公式及符号&#xff0c;可用在编辑数学的试卷、书籍、报刊、论文、幻灯演示等方面&#xff0c;mathtype2023版是编辑数学资料工具! 在这款软件中主要帮…

JavaScript基础(18)_Date对象、Math对象

Date对象 Date(日期对象)是一个构造函数,必须使用new来调用创建日期对象 1、创建一个Date对象&#xff0c;如果直接使用构造函数创建一个Date对象&#xff0c;则会封装为当前代码"执行的时间"。 var d new Date(); console.log(d); 2、创建一个指定的时间对象&am…