5375: 皇家棋神

时间限制: 1 Sec   内存限制: 128 MB
提交: 79   解决: 22
[ 提交][ 状态][ 讨论版]

题目描述

看到下图,拥有QQ宠物的同学对下图一定不会陌生,没错这就是QQ宠物皇家战棋。自从2009元旦前夕腾讯推出该款游戏,迅速成为热门游戏,不仅仅因为其可爱的造型,更有元宝和蓝钻的诱惑。
小明为了给自己的宠物赚取足够的生活费,也加入了激烈的角逐。由于战术运用得当,加上些许的运气,小明屡战屡胜。转眼间,时间过去了2个月,小明也成为了名副其实的万元户+大城主,宠物也衣食无忧。
而此时的玩家,都已具备了一定的战术经验,小明也占不到丝毫便宜,大多数时候只能靠运气取胜,此时皇家战棋也变得索然无味。于是小明开始思考另外一个有趣的问题,若是每个战棋能自我成长,又能训练新兵,那一定很有意思。
有一天,在一个毫无防备力量的城邦,诞生了一名划时代的领袖(当然他也是从士兵做起),每过一个时刻,任何一个作战单位的战斗力就会提升一分,而每个作战单位在提升力量的同时,又会培养一名新兵作为下属,每个作战单位所能拥有的下属数量上限为k。小明很想知道,在给定下属上限数量k的情况下,第n个时刻该城邦所具有的总战斗力。
在k=2,n=5时情况如下:

在第5个时刻,城邦的领袖,已经蜕变为将军,而整个军队的战斗力也从第1个时刻的1,变为26。而随着军队战斗力与部队数量的增加,城邦已经有足够的力量抵御外敌,城邦的战斗力在到达或者超过1234567890之后,每个战斗单位的战斗力将不再增加,也不再训练新兵。
小明想要知道,在第n时刻,每个单位最大下属数量为k时,城邦的战斗力。

输入

第一行包含2个正整数n和k,1<=n,k<=2^32-1。

输出

共1行,第n时刻城邦所具有的总战斗力。

样例输入

5 2

样例输出

26

开始看到K叉树求和,认为是模拟,无奈数据量太大,经仔细观察可得递推关系 dp[i]=dp[i-1]+dp[i-2]+i;

于是模拟该过程,当i>=k时,将会有多余的分叉,则将sum减去dp[i-k];

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include <vector>
#include<algorithm>
using namespace std;
typedef long long ll;ll a[1000000];
const ll inf=1234567890;
int main()
{ll n,k;cin>>n>>k;ll sum=1;a[0]=0;a[1]=1;ll ans=1;for (ll i = 2; i <= n; ++i){a[i]=sum+i;sum+=a[i];if(i>=k) sum-=a[i-k];if(a[i]>=inf){ans=a[i];break;}ans=a[i];}cout<<ans<<endl;return 0;
}

递推例题--upc皇家棋神相关推荐

  1. AcWing 蓝桥杯AB组辅导课 01、递归与递推

    文章目录 前言 一.递归 知识点 例题 题目1:AcWing 95.斐波那契数列[简单,递归写法] 题目2:AcWing 92.递归实现指数型枚举[简单] 题目3:AcWing 94.递归实现排列型枚 ...

  2. 递归递推区别分析与例题总结

    递归与递推 文章目录 递归与递推 特点 递归(recursive) 递推(iterative) 例题 递推例子 平面分割问题 直线分割平面(基本结论) 线圈分割平面 折线分割平面 偷懒方法 Catal ...

  3. 基础算法整理(1)——递归与递推

    程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一 ...

  4. 0x02.基本算法 — 递推与递归

    目录 一.递推与递归 二.分治 三.模拟计算机实现递归 四.相应习题: 0.AcWing 92. 递归实现指数型枚举(递归/循环+位运算) 1.AcWing 93. 递归实现组合型枚举 2.AcWin ...

  5. 贪心、递归、递推以及动态规划算法的分析与对比

    PS:   头一次规规矩矩的按照论文的格式写文章,呵呵.虽然是小儿科的不能再小儿科的东西了..不过..也忽悠了6000多字~~嘿嘿..肯定写的不好,第一次嘛..所以..接受大家一切批评哈!...文章N ...

  6. ACM训练赛--递推专题

    1001: Buy the Ticket Problem Description The "Harry Potter and the Goblet of Fire" will be ...

  7. 蓝桥杯C++ AB组辅导课 第一讲 递归与递推 Acwing

    例题 AcWing 92. 递归实现指数型枚举 从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案. 输入格式 输入一个整数 n. 输出格式 每行输出一种方案. 同一行内的数必须升序 ...

  8. 基础算法 —— 递推算法

    [概述] 递推算法:通过已知条件,利用相邻的数据项间的关系(即:递推关系),得出中间推论,直至得到结果的算法. 递推关系:给定一个数的序列H0,H1,-,Hn,若存在整数N0,使当n>N0时,可 ...

  9. 递归与递推类型题小结

    文章目录 1. 递归 1.1 解题思想 1.2 例题1(指数型枚举) 题意: 思路: 递归树模型: 时间复杂度: 代码实现: 1.3 例题2(排列型枚举) 题意: 思路: 递归树模型: 时间复杂度分析 ...

最新文章

  1. px4flow智能光学流动传感器
  2. maven 排除配置文件打包_Maven打包pom里面配置exclude 排除掉环境相关的配置文件...
  3. 跨系统服务器data,oracle 新增pdb环境,并通过database link实现跨服务器在线克隆
  4. 静态NAT、动态NAT、PAT(端口多路复用)的配置
  5. vue 圆形百分比进度条_vue 圆形进度条组件解析
  6. 美通社企业新闻汇总 | 2019.2.20 | 华为云新加坡大区开服;默克就提高CRISPR基因组编辑方法获首个美国专利...
  7. Pwned Vulnhub
  8. keras 实现GAN(生成对抗网络)
  9. WIN10下用anaconda安装tensorflow-gpu1.8.0并用pycharm作编译器(WIN10下anaconda+tensorflow-gpu+pycharm)
  10. 咏南linux中间件状态查看,咏南跨平台中间件
  11. Java笔试面试-JVM
  12. jquery发送put请求_通过 Ajax 发送 PUT、DELETE 请求的两种实现方式
  13. 解决captcha验证码无法显示的问题
  14. 我们谈谈面试技巧(初入职场年轻人该学的)
  15. 高德全链路压测平台TestPG的架构与实践
  16. 万字干货:大道至简,用户增长模型体系/完整方法论/实操经验分享
  17. 【长句分析】2019.7.25
  18. 赶紧换掉windows系统自带记事本
  19. OpenCV去除绿幕 抠图
  20. php interface理解与实例

热门文章

  1. Service中bindService
  2. cxf拦截器,实现对接收到的报文和发送出去的报文格式自定义
  3. 15种区块链共识算法全面详解
  4. DRAM芯片安全(Rowhammer)
  5. 使用netlink机制在内核与应用程序之间通信
  6. 求三角形面积——C语言
  7. 爱奇艺缓存的视频qsv怎样转mp4
  8. 【每日早报】2019/12/19
  9. 什么是java?为什么要学Java? 学Java有什么用?
  10. C++ 工厂方法模式