P9748 [CSP-J 2023] 小苹果 / P7071 [CSP-J2020] 优秀的拆分:做题笔记

news2024/10/5 15:35:21

目录

P9748 [CSP-J 2023] 小苹果

思路

代码

P7071 [CSP-J2020] 优秀的拆分

思路

代码


P9748 [CSP-J 2023] 小苹果

P9748 [CSP-J 2023] 小苹果

思路

先写几个看看规律

题意我们能看出来是三个三个一组的,然后每次取走的都是三个里面的第一个。我们应该很容易想到如果一轮的总数是三的倍数的话,那直接取走的个数就是倍数,那么对应就会想到如果不是恰好是三的倍数,我们发现取走的个数仍然是这个倍数,说明我们这里是向上取整的。

这里我们可以按我们想的写个if语句执行不同的情况。也可以直接使用向上取整,由于我们这里是对三向上取整,因此我们选择在原数上+2,使得在有余数的情况下,商能够增加1。因此这个式子:(n+2)/3就是对3向上取整的操作

同样对于其他的对4向上取整就是(n+3)/4....这个可以记住. (n+k−1)/k是对 k 向上取整的通式

到这里第一问应该很容易得出。

第二问问我们n是在哪一天取走的。做的时候一致没写出来qaq,看了题解才明白。

我们会发现我们每次取走的都是三个三个一组的第一个,也就是说,如果此时这一轮的苹果数量对三取余得1的话,并且是第一次出现这个情况的时候,说明此时的这一天就是取走该苹果得这一天。注意这里是有两个要求的。

代码

#include<iostream>
#include<algorithm>
using namespace std;
int n,d1,d2;
int main()
{
	cin>>n;
	int k=n;
	while(k)
	{
		d1++;
		if(d2==0 && k%3==1)d2=d1;
		if(k%3)k-=k/3+1;
		else k-=k/3;
	}
	cout<<d1<<" "<<d2;
	
	return 0;
 } 

(我这里用k当替身进行操作是不必要的)

注意我们每一行代码放置的位置。我们while循环条件是k也就是苹果数不为0的时候,就一直执行。那么说明开始执行这个循环的时候就说明已经存在这一天了,我们接下来的循环内部的一些操作都是对这一天算上之后会产生的结果进行计算的,因此我们天数要在最开始直接++。明白这样梳理之后,关于第二问的计算也就是应该放在更改苹果数之前了。可以理解哈。

P7071 [CSP-J2020] 优秀的拆分

P7071 [CSP-J2020] 优秀的拆分

 

思路

这个数可以分为正整数个2的幂相加,首先想到这个数肯定是偶数,因此先判断奇偶,奇数直接输出-1

另外关于偶数,题目要求从大到小输出,因此我们要先找到最大的但又不能超过n的这个2的次幂,找到之后我们想剩下的数其实要做的是和我们这次的操作是一样的,因此想到需要一个while循环,我们发现在不断找到2的次幂后n的值每次会减小,直到n=0。因此我们发现外层也是一个while循环。

至此。

代码

#include<iostream>
#include<algorithm>
using namespace std;
int n;
int main()
{
	cin>>n;
	int k=1;
	if(n%2){
	    cout<<"-1";
	    return 0;
	}
	int cnt=0;
	while(n)//只要n>0就一直执行循环寻找拆分方式
	{
		while(k<=n){//这里注意是要取等的
			k*=2;
		}
		k/=2;//每次都找最大的
		cout<<k<<" ";
		n-=k;
		k=1;//注意每次把k置1
	}
	
	return 0;
}

经过很多事情,对于学习这方面心态发生了很大的变化。嗯,,目前处于很模糊的状态....

有问题欢迎指出~加油!

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

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

相关文章

读人工智能时代与人类未来笔记04_理性时代

1. 理性时代 1.1. 康德在《永久和平论》一文中带着些许的怀疑主义提出&#xff0c;和平可以通过应用达成一致的规则管理独立国家之间的关系来实现 1.2. 理性则借助高等理论物理学的形式&#xff0c;开始进一步探索康德的“自在之物”&#xff0c;并产生…

现代加密技术(对称和非对称加密)

1.分类 现代加密技术&#xff1a;对称和非对称加密&#xff0c;对称加密即共享密钥&#xff0c;非对称加密是公钥加密算法。 2.基础总结 AES是什么算法&#xff1f; 分组加密算法&#xff0c;对称加密算法AES的分组长度是&#xff1f;固定128位AES密钥长度是多少&#xff1f;支…

php+vant van-uploader手机拍照 上传

设置capture”user”&#xff0c;则只会调起摄像头&#xff1b; 不设置capture“user”&#xff0c;则会弹窗让选择相册或拍照。 HTML: <link rel"stylesheet" href"/vue/vant.css"><van-field name"uploader" label"照片"&…

ControlNet原理解析

前排提示照片已经获得小姐姐许可。 光知道ControlNet好用&#xff0c;不想知道它背后的原理么&#xff1f;今天就看一看这篇论文&#xff0c;带大家了解一下ControlNet是如何炼成的。 ControlNet是干嘛的 我们知道现在文本到图像生成很火爆&#xff0c;你只需要输入文字就可以…

framework ‘CoreAudioTypes‘ not found

几天前我升级Xcode15之后遇到了这个问题。关于“CoreAudioTypes”的信息完全是误导。在我的例子中&#xff0c;原因是在删除一些旧代码时&#xff0c;我不小心删除了仍然需要的类。然而&#xff0c;在构建时弹出的唯一消息是关于“CoreAudioTypes”——当我恢复丢失的类时&…

使用python给图片加上文字水印

使用python给图片加上文字水印 作用效果代码 作用 给图片加上文字水印文字水印的字体&#xff0c;颜色&#xff0c;位置可自定义 效果 原图&#xff1a; 加水印后的图&#xff1a; 代码 from PIL import Image, ImageDraw, ImageFontdef add_text_watermark(input_image…

BERT for Joint Intent Classification and Slot Filling 论文阅读

BERT for Joint Intent Classification and Slot Filling 论文阅读 Abstract1 Introduction2 Related work3 Proposed Approach3.1 BERT3.2 Joint Intent Classification and Slot Filling3.3 Conditional Random Field 4 Experiments and Analysis4.1 Data4.2 Training Detail…

【PB案例学习笔记】-03用户名密码校验

写在前面 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git 需要源代码的小伙伴们可以自行…

微软宣布GPT-4o模型,可在 Azure OpenAI上使用

5月14日&#xff0c;微软在官网宣布&#xff0c;OpenAI最新发布的多模态模型GPT-4o&#xff0c;可以在 Azure OpenAI 云服务中使用。 据悉&#xff0c;GPT-4o支持跨文本、视频、音频多模态推理&#xff0c;例如&#xff0c;通过GPT-4o打造一个AI助手&#xff0c;用于辅导孩子解…

AIGC时代已至,你准备好抓住机遇了吗?

一、行业前景 AIGC&#xff0c;即人工智能生成内容&#xff0c;是近年来人工智能领域中发展迅猛的一个分支。随着大数据、云计算、机器学习等技术的不断进步&#xff0c;AIGC已经取得了显著的成果&#xff0c;并且在广告、游戏、自媒体、教育、电商等多个领域实现了广泛应用。…

界面组件DevExpress WPF v23.2 - 全新升级的数据编辑器、流程图组件

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF控件日…

Ubuntu16 扩展磁盘空间

一、扩展容量 关闭虚拟机->硬盘->扩展->输入要扩展的空间大小 二、重新磁盘分区 打开虚拟机&#xff0c;在终端安装gparted&#xff1a; sudo apt-get install gparted 打开gparted&#xff1a; sudo gparted 磁盘分区如下图所示 选择/dev/sda5分区&#xff0c;选择…

平均工资数据分析之回归

链接: R语言实战——中国职工平均工资的变化分析——相关与回归分析 1、模型诊断和评估的方法 1. 残差分析 1、残差图 (Residual Plot)&#xff1a;用于检查残差是否存在非随机模式。理想情况下&#xff0c;残差应随机分布在零附近。 2、Q-Q 图 (Quantile-Quantile Plot)&am…

MATLAB基础—变量及其操作

众所周知&#xff0c;计算机所处理的数据都是存放在内存单元中的&#xff0c;而每个内存单元都有一个唯一的地址&#xff0c;程序就是通过这个内存单元的地址来访问内存单元的。 在高级语言中&#xff0c;只需要给每个内存单元取一个名字&#xff0c;然后通过这个名字就能够访问…

大模型学习笔记九:模型微调

文章目录 一、什么时候需要Fine-Tuning二、用Hugging Face根据电影评论输出来对电影进行情感分类1)安装依赖2)操作流程3)名字解释4)代码导入库和加载模型、加载数据库、加载tokenlizer5)其他相关公共变量赋值(随机种子、标签集评价、标签转token_Id)6)处理数据集:转成…

数据挖掘与机器学习——概念篇

目录 一、数据增长情况与计量单位 二、数据挖掘的概念 三、数据挖掘的应用案例 1. 互联网行业 2. 医学方面 3. 网络安全方面 4. 交通方面 5. 通信方面 6. 个人生活 四、数据挖掘的方法 1.对比分析 2. 同比分析 3. 环比分析 4. 80/20分析 5. 回归分析 6. 聚…

PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来

日前&#xff0c;第十二期 CCF 秀湖会议在苏州 CCF 业务总部 & 学术交流中心成功举办。本次会议以“开源教育&#xff1a;使命、挑战与发展”为主题&#xff0c;汇聚了来自学术界、工业界的二十余位专家&#xff0c;共同探讨开源教育的现状与未来。 PingCAP 联合创始人兼 C…

C++ | Leetcode C++题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; class Solution { public:int numDecodings(string s) {int n s.size();// a f[i-2], b f[i-1], c f[i]int a 0, b 1, c;for (int i 1; i < n; i) {c 0;if (s[i - 1] ! 0) {c b;}if (i > 1 && s[i - 2] ! 0 &&a…

风电功率预测 | 基于GRU门控循环单元的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测 | 基于GRU门控循环单元的风电功率预测(附matlab完整源码)完整代码风电功率预测 | 基于GRU门控循环单元的风电功率预测(附matlab完整源码) 完整代码 clc; clear close allX = xlsread(风电场预测.xlsx)

启明云端ESP32-S3模组WT32-S3选型,Flash最大可选16MB,PSRAM最大可选8MB

使用ESP32-S3单芯片&#xff0c;可以完成语音连接屏控三合一功能。接下来给大家推荐一款ESP32-S3模组WT32-S3&#xff0c;Flash 最大可选 16MB,PSRAM 最大可选 8MB。核心芯片是ESP32-S3。 2.4GHz Wi-Fi(802.11b/g/n)Bluetooth 5(LE)模组&#xff0c;内置ESP32-S3系列芯片&#…