2016NOIP普及组真题 1. 金币

2024-04-17 02:44

本文主要是介绍2016NOIP普及组真题 1. 金币,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线上OJ:

一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid=1969

核心思想:

解法1、由于数据量只有 10000 天,估可以采用 模拟每一天 的方式。

#include <bits/stdc++.h>
using namespace std;int k = 0;int main()
{int ans = 0, coin = 1, cnt = 0;cin >> k;for(int i = 1; i <= k; i++) // k 轮{ans += coin; 	// +当前的金币金额cnt++;			// 金币出现的次数+1(比如3出现了1次,出现了2次,出现了3次)if(cnt == coin) // 如果金币金额和金币出现的次数相等(连续3天出现3),则重置金币数量和金币出现的次数{coin++;cnt = 0;}}cout << ans << endl;return 0;
}

解法2、在 数据量大 的情况下,模拟每一天容易超时,此时可以考虑用瞪眼法寻找数学规律

在这里插入图片描述

比如我们的目标是第6天:在如下的表格中,发现第6天正好在完整的第3轮。所以第6天的金币数量前3轮的金币数量总和,1*1+2*2+3*3 = 14
比如我们的目标是第13天:在如下的表格中,发现 第13天 正好是 走过了完整的4轮,它自身 在第5轮。所以第13天的金币数量前面完整4轮的金币数量总和,再加上后面还缺的3天,即 (1*1+2*2+3*3+4*4)+5*3 = 31
综上所述,方法二是先找出 完整的n轮,然后 每一轮的金币直接用 i*i 计算(不用for循环i次),再补上最后缺的金币即可。

#include <bits/stdc++.h>
using namespace std;int k = 0;
int main()
{int ans = 0, lun = 0; // 第1轮1个,第2轮2个,第3轮3个,第4轮4个。可知6在第3轮,7在第4轮cin >> k;	while(k >= ++lun) // 如果剩余的轮次还次包含完整的一轮(lun) ,则继续。k -= lun;lun--; // 跳出时,最后一次while多了一次++lun,所以要减回去	for(int i = 1; i <= lun; i++)ans += i * i; // 第i轮的金币数量是 i*ians += (lun + 1) * k;  // 把最后一轮不完整的金币加上cout << ans;return 0;
}

这篇关于2016NOIP普及组真题 1. 金币的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910595

相关文章

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

安卓金币字符串转换成三位一个逗号的格式

DecimalFormat df1 = new DecimalFormat("###,###,###,##0.##");         return df1.format(Double.parseDouble(“ 17352208.25 ”)); 输出   17,352,208,25

信息学奥赛初赛天天练-83-NOIP2014普及组-基础题2-输入设备、输出设备、操作系统、二进制、整数除法、while、do while循环

1 NOIP 2014 普及组 基础题2 4 以下哪一种设备属于输出设备( ) A 扫描仪 B 键盘 C 鼠标 D 打印机 5 下列对操作系统功能的描述最为完整的是( ) A 负责外设与主机之间的信息交换 B 负责诊断机器的故障 C 控制和管理计算机系统的各种硬件和软件资源的使用 D 将没有程序编译成目标程序 11 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( ) A 296

免费SSL证书大全,加速普及网站实现HTTPS加密

免费SSL证书大全,加速普及网站实现HTTPS加密   SSL 证书用于加密 HTTP 协议,实现网站通过HTTPS加密协议访问。随着国内外各大网站实现全站 HTTPS 协议,以及搜索引擎对使用 HTTPS 协议网站的更加友好,加之互联网对数据和隐私安全的加强,网站添加 SSL 证书并实现 HTTPS 加密协议访问已经成为趋势和必然。 SSL证书大全​zzzjtd.com 而对于给网站添加

讨论运维监控工具的普及程度

在讨论运维监控工具的普及程度时,加入PIGOSS BSM产品的分析是非常有意义的,因为PIGOSS BSM是一款在中国市场具有一定影响力的运维监控工具。 PIGOSS BSM运维监控工具是一款综合性的IT运维监控解决方案,它能够对多层次的IT资源进行监测,包括但不限于性能监测、事件管理、报表管理等功能模块。PIGOSS BSM的一个独特之处在于其拓扑关联配置工具,这使得用户可以根据自身的I

P2239 [NOIP2014 普及组] 螺旋矩阵

P2239 [NOIP2014 普及组] 螺旋矩阵 50分 //O(n^2)复杂度,能算n<=10000的 #include <bits/stdc++.h>using namespace std;//row当前行, column当前列, left:左边界,righ:右边界,top:上边界,bottom:下边界 int n, x, y, ans, row=1, column=0, lef,

实现用python刷王者荣耀金币

刷冒险最后一关,需要满符文 需要安装adb,可以网上查阅怎么安装 将adb路径加入环境变量 # -*- coding: utf-8 -*-"""Created on Wed Feb 20 13:48:11 2019微信区:东皇,鲁班,扁鹊QQ区:赵云,鲁班,扁鹊@author: 邓磊"""from subprocess import runimport timepath="D:\

2020计算机挑战赛Java组真题

单选题 1.下列叙述哪些是错误的(). A.final 类不可以有子类 B.构造方法是类的一种特殊方法,其方法名必须与类名相同 C.抽象类可以用new运算符创建对象 D.内存回收程序不允许程序员直接释放内存2.下列叙述哪些是错误的(). A.abstract类不可以用new和构造函数定义对象 B.构造方法的返回值类型只能是void型 C.内存回收程序负责释放无用内存 D.Java类只能是单继承的

信息学奥赛初赛天天练-80-NOIP2015普及组-基础题5-错位排列、二叉树、完全二叉树、叶子节点、完全二叉树叶子节点

NOIP 2015 普及组 基础题5 21 重新排列 1234使得每一个数字都不在原来的位置上,一共有( )种排法 22 一棵结点数为 2015的二叉树最多有( )个叶子结点 2 相关知识点 1) 错位排列 考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n) 错排问题最早被尼古拉·伯努利和欧拉研究