1270: [BeijingWc2008]雷涛的小猫

Time Limit: 50 Sec  Memory Limit: 162 MB
[Submit][Status][Discuss]

Description

 

Input

Output

Sample Input

Sample Output

8

HINT

思路:保存i+z的max值;上一行的dp值;

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll __int64
  4. #define mod 100000007
  5. #define esp 0.00000000001
  6. const int N=5e3+,M=1e6+,inf=1e9;
  7. int a[N][N];
  8. int dp[N];
  9. int pre[N];
  10. int maxx[N];
  11. void init()
  12. {
  13. memset(dp,,sizeof(dp));
  14. memset(a,,sizeof(a));
  15. memset(pre,,sizeof(pre));
  16. memset(maxx,,sizeof(maxx));
  17. }
  18. int main()
  19. {
  20. int x,y,z,i,t;
  21. while(~scanf("%d%d%d",&x,&y,&z))
  22. {
  23. init();
  24. for(i=;i<=x;i++)
  25. {
  26. scanf("%d",&t);
  27. for(int j=;j<t;j++)
  28. {
  29. int v;
  30. scanf("%d",&v);
  31. a[v][i]++;
  32. }
  33. }
  34. for(i=y;i>=;i--)
  35. {
  36. for(t=;t<=x;t++)
  37. {
  38. dp[t]=max(maxx[i+z],pre[t])+a[i][t];
  39. pre[t]=dp[t];
  40. maxx[i]=max(maxx[i],dp[t]);
  41. }
  42. for(t=;t<=x;t++)
  43. {
  44. printf("%d ",dp[t]);
  45. }
  46. cout<<endl<<endl;
  47. }
  48. int ans=;
  49. for(i=;i<=x;i++)
  50. ans=max(ans,dp[i]);
  51. printf("%d\n",ans);
  52. }
  53. return ;
  54. }
  55. /*
  56. 3 10 2
  57. 3 1 4 10
  58. 6 3 5 9 7 8 9
  59. 5 4 5 3 6 9
  60. */

bzoj 1270: [BeijingWc2008]雷涛的小猫 简单dp+滚动数组的更多相关文章

  1. BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )

    简单的dp.. dp(i,j) = max(dp(x,y))+cnt[i][j], (x,y)->(i,j)是合法路径. 设f(i)= max(dp(x,y))(1≤x≤N, 1≤y≤i), g ...

  2. [bzoj 1270][BeijingWc2008]雷涛的小猫

    Description 雷涛的小猫雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助的小猫(当然,这样的行为是违反学 生宿舍管理条例的).  在他的照顾下,小猫很快恢复了健康,并且愈发的活泼可 ...

  3. 【BZOJ】1270: [BeijingWc2008]雷涛的小猫(DP+水题)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1270 这完全是一眼题啊,但是n^2的时间挺感人.(n^2一下的级别请大神们赐教,我还没学多少dp优化 ...

  4. 1270: [BeijingWc2008]雷涛的小猫

    1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 905  Solved: 430[Submit][ ...

  5. 【BZOJ】1270 [BeijingWc2008]雷涛的小猫

    [算法]DP [题解]f1[i]表示第i棵树当前高度能得到的最多果子数 f2[i]表示高度i能得到的最多果子数. 于是有: f1[j]=max(f1[j],f2[i+delta])+mp[j][i]; ...

  6. 【BZOJ1270】1270: [BeijingWc2008]雷涛的小猫 DP

    Description   Input Output Sample Input Sample Output 8 HINT Source 唉这么蠢的Dp没一下子看出来,Dp真是太弱了啦. #includ ...

  7. BZOJ1270: [BeijingWc2008]雷涛的小猫

    1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 836  Solved: 392[Submit][ ...

  8. B1270 [BeijingWc2008]雷涛的小猫 dp

    这个题的原始方法谁都会,但是n^3会T.之后直接优化,特别简单,就是每次处理出来每层的最大值,而不用枚举.之前没这么做是因为觉得在同一棵树的时候没有下落,所以不能用这个方法.后来想明白了,在同一棵树上 ...

  9. bzoj1270 BeijingWc2008 雷涛的小猫 DP

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1270 比较水的一道dp f1[i]为高度为i的时候的最大值 f2[i]为当前高度在第i棵树 ...

随机推荐

  1. SharePoint 2013 附加内容数据库后出现404错误

    本文讲述怎样解决SharePoint 2013 加内容数据库(Content DataBase)后出现404错误. 笔者依照http://technet.microsoft.com/en-us/lib ...

  2. Spark2.0 协同过滤推荐

    ALS矩阵分解 http://blog.csdn.net/oucpowerman/article/details/49847979 http://www.open-open.com/lib/view/ ...

  3. SDUT3141:Count(哈希)好题

    题目:传送门 题目描述 You are given an integer array s[] and are asked to count how many positions a, b, c and ...

  4. python3 对excel读、写、修改的操作

    一.对excel的写操作实例: 将一个列表的数据写入excel, 第一行是标题,下面行数具体的数据 import xlwt #只能写不能读 stus = [['姓名', '年龄', '性别', '分数 ...

  5. 1、初识JavaScript

    前端之 JavaScript 1.存在方式. <!-- 导入javascript脚本方法 --><script type="text/javascript" sr ...

  6. python中is和==区别

    is比较两个对象的id值是否相等,是否指向同一个内存地址 ==比较的是两个对象的内容是否相等,值是否相等 is运算符比==效率高,在变量和None进行比较时,应该使用is

  7. 滑块控件CCControlSlider

    #include "cocos-ext.h" //包含头文件 using namespace cocos2d::extension;//引用命名空间 /** * 创建CCContr ...

  8. loadrunner配置多台负载机设置

    面对并发量比较大的性能需求,用单台机子进行加压由于本身硬件资源.网络资源等的限制已经不能满足该性能测试条件,这个时候就需要在场景中添加多台负载机来联机做性能测试.添加多台负载机的设置非常简单下面做一个 ...

  9. Java并发编程之CountDownLatch的用法

    一.含义 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能.CountDownLatch是一个同步的辅助类,它可以允许一个或多个线程等待, ...

  10. C++之map使用

    解析文件或者字符串,一key跟keyvalue来存在map中,如下代码: test.h: #include <map>#include <vector> Class test ...