1513

这题好久之前就看过了,悲催的是当时看题解都没看懂,今天又看了看so easy...

n个B里不能出现超过连续k个L的情况 一维递推就可以 两种情况 1、dp[i] += dp[i-1] 在i-1的串后面直接加一个B 2、dp[i]+=dp[i-2]+dp[i-3]+...+dp[i-k-1] 这部分的意思是在串后面补连续1个L 2个L 3个L。。K个L的情况 那补一个L的情况要取决于dp[i-1]里面最后一位为B的个数 正好为dp[i-2],依次可做。

 import java.text.*;
import java.io.*;
import java.util.*;
import java.math.*;
import java.applet.*;
public class Lemon {
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
BigInteger dp[] = new BigInteger[10010];
BigInteger s[] = new BigInteger[10010];
int i,j,n,k;
n = cin.nextInt();
k = cin.nextInt();
for(i = 0; i <= n ; i++)
dp[i] = s[i] = BigInteger.valueOf(0);
dp[0] = s[0] = BigInteger.valueOf(1);
if(k==0)
dp[1] = BigInteger.valueOf(1);
else
dp[1] = BigInteger.valueOf(2);
s[1] = s[0].add(dp[1]);
for(i = 2; i <= n ; i++)
{
dp[i] = dp[i].add(dp[i-1]);
BigInteger ss ;
if(i-k-2>=0)
ss = s[i-2].subtract(s[i-k-2]);
else
ss = s[i-2];
if(k>=i) dp[i] = dp[i].add(BigInteger.valueOf(1));
dp[i] = dp[i].add(ss);
s[i] = s[i-1].add(dp[i]); }
System.out.println(dp[n]);
} }

URAL1513. Lemon Tale(dp)的更多相关文章

  1. LightOJ 1033 Generating Palindromes(dp)

    LightOJ 1033  Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  2. lightOJ 1047 Neighbor House (DP)

    lightOJ 1047   Neighbor House (DP) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730# ...

  3. UVA11125 - Arrange Some Marbles(dp)

    UVA11125 - Arrange Some Marbles(dp) option=com_onlinejudge&Itemid=8&category=24&page=sho ...

  4. 【POJ 3071】 Football(DP)

    [POJ 3071] Football(DP) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4350   Accepted ...

  5. 初探动态规划(DP)

    学习qzz的命名,来写一篇关于动态规划(dp)的入门博客. 动态规划应该算是一个入门oier的坑,动态规划的抽象即神奇之处,让很多萌新 萌比. 写这篇博客的目标,就是想要用一些容易理解的方式,讲解入门 ...

  6. Tour(dp)

    Tour(dp) 给定平面上n(n<=1000)个点的坐标(按照x递增的顺序),各点x坐标不同,且均为正整数.请设计一条路线,从最左边的点出发,走到最右边的点后再返回,要求除了最左点和最右点之外 ...

  7. 2017百度之星资格赛 1003:度度熊与邪恶大魔王(DP)

    .navbar-nav > li.active > a { background-image: none; background-color: #058; } .navbar-invers ...

  8. Leetcode之动态规划(DP)专题-详解983. 最低票价(Minimum Cost For Tickets)

    Leetcode之动态规划(DP)专题-983. 最低票价(Minimum Cost For Tickets) 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行.在接下来的一年里,你要旅行的 ...

  9. 最长公共子序列长度(dp)

    /// 求两个字符串的最大公共子序列长度,最长公共子序列则并不要求连续,但要求前后顺序(dp) #include <bits/stdc++.h> using namespace std; ...

随机推荐

  1. c++ 继承和组合的区别

    .什么是继承 A继承B,说明A是B的一种,并且B的所有行为对A都有意义 eg:A=WOMAN B=HUMAN A=鸵鸟 B=鸟 (不行),因为鸟会飞,但是鸵鸟不会. .什么是组合 若在逻辑上A是B的“ ...

  2. [百度空间] [转] 四元数(Quaternions)

    转:四元数(Quaternions) 好吧,我必须承认到目前为止我还没有完全理解四元数,我一度把四元数理解为轴.角表示的4维向量,也就在下午我才从和同事的争辩中理解了四元数不完全是角.轴这么简单,为此 ...

  3. https+ssl详解

    这是转载别人的写的很好,(转:崔永秀) 把这几天学习到的关于ssl和https协议的内容在这里分享一下,适合一些像我一样的网络协议初学者. ssl协议的起源和历史我就不再多说了,就是那个Netscap ...

  4. android 关于Location of the Android SDK has not been setup in the preferences的解决方法

    今天在部署android开发环境的时候,每次打开eclipse的时候点击AVD Manager的按钮就会弹出Location of the Android SDK has not been setup ...

  5. 迁移到MariaDB galera

    迁移到MariaDB galera [已注销] [已注销] -- :: [安装] ====== https://downloads.mariadb.org/mariadb/repositories/ ...

  6. Javascript Arguments,calle,caller,call,apply

    一.Arguments 该对象代表正在执行的函数和调用他的函数的参数. [function.]arguments[n] 参数function :选项.当前正在执行的 Function 对象的名字. n ...

  7. Mysql统计总结 - 最近30天,昨天的数据统计

    -- 最近30天的医说发布数量SELECT substr(a.feed_publish_time,6, 5) AS '日期', count(*) AS '医说数' FROM xm_feed a WHE ...

  8. PHP5.4最新特性

     PHP5.4最新特性   官网:ChangeLog-5.php#5.4.0 原文Oracle:LAMP 体系有了新的竞争,但此版本中的特性使 PHP 再次挑战极限. 稍微做了修改.: 概述总结:1. ...

  9. BZOJ 1296: [SCOI2009]粉刷匠 分组DP

    1296: [SCOI2009]粉刷匠 Description windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上 ...

  10. 欧拉工程第51题:Prime digit replacements

    题目链接 题目: 通过置换*3的第一位得到的9个数中,有六个是质数:13,23,43,53,73和83. 通过用同样的数字置换56**3的第三位和第四位,这个五位数是第一个能够得到七个质数的数字,得到 ...