交大oj-1012-增长率问题 C++ 总结

1070:人口增长 1070:人口增长 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?保留小数点后四位。 【输入】 一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。 【输出】 输出最后的人口数,以亿为单位,保留到小数点后四位。 1≤x≤100,1≤n≤100。 【输入样例】 13 10 【输出样例】 13.1306 说明: 主要考查使用循环解决数学问题。 0.1%,等于0.001。 思路分析: 本题计算的不仅仅是增 阅读详情

交大oj-1012-增长率问题 C++ 总结

明显这是一道动态规划的问题,所以我们需要思考的是怎样把S到T的问题简化为S到T-1的问题。下面是这道题需要考虑的几个问题:

1,增长率是百分比下的整数
从整数i“蹦到”整数tmp,增长率是j/100,则会有关系i*j = 100 * (tmp - i).所以i * j是100的整数倍。可以用(i*j)%100布尔表达式进判断。

2,整理思路
我原来的思路是遍历S到T的所有整数num, 检查num前面的整数哪个可以“蹦到”num,从而更新num的length和count,得到每个整数的length和count,最后可以得到T的num和count。
实际上,这种思路本身有很多问题:

  1. 计算每个num的length时,需要遍历前面的num/2的数,计算这个数能否“蹦到”num。这样的话,当num接近题目给的T最大值(200000)时,每个num都需要遍历大量的数,明显会超时。
  2. 最后一个数T对应的count并不是题目要求的count。从S到T的增长序列并不一定从S开始,到T结束,所以长度为maxlength的序列并不一定以T结束。解决方法:
    1. sol1:定义一个long long int值cnt,当长度更新时则更新cnt,当遇到长度等于maxlength的序列时,更新cnt。最后得到的cnt就是结果。
    2. sol2:还有来自网上的一个解法。定义一个数组或者是map,记录下每个长度对应的count,最后输出map[maxlength]即可。
    3. sol3:先计算maxlength,最后遍历数字,统计长度为maxlength的序列的count,求和。
  3. 注意溢出问题!!(这点让我头疼很久。。。)记录times的数组尽量用long long int型!
  4. 以2.1为例:定义和初始化时,注意初始化的值!
maxlength = T - S + 1;
long long int times_maxlen = end - start + 1;
// 不这样写可能会有错误。
// Eg:996 998
// 默认认为理想情况:times_maxlen = 1, 此时的 maxlength = T - s + 1.
// 这样写是为了避免遇到了没有数字“蹦”的情况,此时输出默认值,序列长度为1,序列数量为数字的个数
// 996 997 998 为3个序列,最大长度为1.

3,上代码

信息学奥赛C++编程:人口增长问题 信息学奥赛C++编程:(循环结构)人口增长问题 阅读详情

相关推荐

DM9000有线网卡驱动编写

DM9000有线网卡驱动编写 1.DM9000简介   DM9000 是一款完全集成的、性价比高、引脚数少、带有通用处理器接口的单芯片快速以太网控制器。 自 带一个 10/100M PHY 和 4K 双字的 SRAM ,DM9000A 为适应各种处理器提供了 8 位、16 位数据接口访问 内部存储器,DM9000 拥有自动协商功能,DM9000 特性如下:   1.集成自适应 10/100M 收发器。   2.内置 16k 字节的 SRAM。   3.支持硬件帧校验。   4.兼容 3.3V 和 5.0V

weixin_44453694的博客 4672

滑模控制概述

滑模控制概述1.滑模控制概念2.滑模控制原理3.滑模控制设计步骤4.研究现状5.发展趋势5.1自适应滑模变结构控制5.2模糊滑模控制5.3神经网络与滑模控制的结合 1.滑模控制概念   滑模控制(Sliding Mode Control,SMC)是一种特殊类型的变结构控制(Variable Structure Control,VSC),因此又称之为滑模变结构控制,是近年来广泛应用和发展的一种控制方法。滑模控制本质上是一种非线性控制,即控制结构随时间变化而变化。滑模变结构控制是非线性系统中普遍采用的一种分析方

shiyi20190828的博客 2万+

新手必看:5分钟搞懂FFT波束形成的底层原理(从阵列信号到频域处理)

本文深入浅出地解析了FFT波束形成的底层原理,从阵列信号采集到频域处理的全过程。通过音乐节场景类比和Python代码示例,帮助新手快速理解多目标波束形成的核心技术,包括频域转换、相位补偿和性能优化策略,适用于雷达、声呐和5G通信等领域。

pytorchlight8的博客 948

松灵机器人——ROS下的CAN通讯调试(内含所需调用包,都是操作步骤)

松灵机器人——ROS下的CAN通讯调试(都是操作步骤) 1 代码包地址 scout_ros package:https://github.com/westonrobot/scout_ros.git ugv_sdk-main package:https://github.com/westonrobot/ugv_sdk webots package:https://cyberbotics.com/ 2 硬件准备 2.1 SCOUT MINI 小白车 + 尾部航空插头 + CAN_TO_USB适配器

weixin_48924581的博客 1万+

TwinCAT3 Modbus-TCP Client/Server使用

/起始地址是12289//起始地址是12294。

panjinliang066333的博客 7736

深入解析组合逻辑环(combinational loop)的成因与解决方案

本文深入解析了数字电路设计中组合逻辑环(combinational loop)的成因与危害。通过边沿检测和中断轮询(round_robin)仲裁器等实例,揭示了代码如何意外形成环路,并对比了插入触发器、重构逻辑以及状态机思维三种核心解决方案,帮助硬件工程师从根本上避免这一常见设计陷阱,确保电路稳定可靠。

weixin_28278377的博客 314

领域知识图谱构建的技术流程

因此概念的属性定义十分重要,通常大部分知识库中的概念属性都是采用人工定义等方式生成的,通用知识图谱则可以从开放数据集中获取概念的属性,然后从在线百科中学习实体的属性,并对实体属性进行往上规约从而生成概念的属性。由于百科的分类体系都是经过了百科管理员或是高级编辑人员的校验,其分类系统中的数据可靠性非常高,因此从百科中抽取概念和实体,通常将标题作为实体的候选,而将百科中的分类系统直接作为概念的候选。为了对知识进行合理的组织,更好地描述知识本身与知识之间的关联,需要对知识图谱的模式进行良好的定义。

weixin_43961909的博客 334

Python爬虫博客:爬取碳排放交易数据——使用最新技术的完整实现

通过上述方法,我们可以构建一个高效的爬虫,爬取碳排放交易市场的数据并进行分析。这个项目不仅展示了如何处理静态和动态网页,还提供了如何存储数据、分析数据和可视化结果的技巧。随着爬虫技术的不断进步,我们可以进一步提升爬取效率和数据分析能力。如果你希望更深入了解如何进行数据挖掘和机器学习分析,可以尝试将碳排放数据与其他经济数据结合,利用机器学习模型进行趋势预测或决策支持。

2201_76125261的博客 352

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: C++ error 2872:不明确的符号
下一篇: 交大oj-1022-Fib数列 C++ 解题报告
code_nie
博客等级 码龄9年 6粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值