hdu 1176 무료 파이(dp)

861 단어 HDU
http://acm.hdu.edu.cn/showproblem.php?pid=1176
 
#include<cstdio>

#include<cstring>

#include<iostream>

#include<algorithm>

using namespace std;

int  dp[100000+10][12];

int mat[100000+10][12];

int main()

{

  int n;

  int i,j,k;

  int maxt;

  while(scanf("%d",&n),n)

  {

    memset(mat,0,sizeof(mat));

    memset(dp,0,sizeof(dp));

    maxt=-1;

    while(n--)

    {

      int x,y;

      scanf("%d%d",&x,&y);

      mat[y][x]++;

      if(maxt<y) maxt=y;

    }

    for(i=maxt;i>=0;i--)

    {

      for(j=0;j<=10;j++)

      {

        dp[i][j]=max(dp[i+1][j],dp[i+1][j+1]);

        if(j>0) dp[i][j]=max(dp[i+1][j-1],dp[i][j]);

        dp[i][j]+=mat[i][j];

      }

    }    

    printf("%d
",dp[0][5]); } return 0; }

좋은 웹페이지 즐겨찾기