zoukankan      html  css  js  c++  java
  • hdu 1176 免费馅饼

    这个题目第一眼看了真没思路,也没想到跟动态规划有关系,最后还是看了Tanky Woo的文章才明白

    看图片对比一下,数轴以5为塔顶,左右两边依次往下落,就形成数塔

      题目传送门

     1 #include<stdio.h>
     2 #include<string.h>
     3 int dp[11][100001];
     4 int max(int a, int b)
     5 {
     6     return a>b?a:b;
     7 }
     8 
     9 int main()
    10 {
    11     int n,x,t,maxtime;
    12     int i,j;
    13     while(scanf("%d",&n),n)
    14     {
    15         memset(dp,0,sizeof(dp));
    16         maxtime = 0;
    17         for(i=0;i<n;i++)
    18         {
    19             scanf("%d%d",&x,&t);
    20             ++dp[x][t];
    21             maxtime = t>maxtime?t:maxtime;
    22         }
    23         for(j=maxtime-1;j>=0;j--)
    24         {
    25             dp[0][j] += max(dp[0][j+1], dp[1][j+1]);
    26             dp[10][j] += max(dp[10][j+1], dp[9][j+1]);
    27             for(i=1;i<10;i++)
    28                 dp[i][j] += max(max(dp[i][j+1], dp[i+1][j+1]),dp[i-1][j+1]);
    29         }
    30         printf("%d\n",dp[5][0]);
    31     }
    32     return 0;
    33 }

    参考:http://www.wutianqi.com/?p=2457

     

  • 相关阅读:
    HelloJava.java
    建表
    JAVA连接数据库
    数据查询
    时间片轮转法
    最高优先级
    进程调度
    磁盘调度管理
    Fibonacci数列
    众数问题
  • 原文地址:https://www.cnblogs.com/quantumplan/p/3071231.html
Copyright © 2011-2022 走看看