标签:
6 5 1 4 1 6 1 7 2 7 2 8 3 0
4
#include<stdio.h>
#include<string.h>
#define MAXN 110000
int max(int x,int y,int z){
int t=x>y?x:y;
t=t>z?t:z;
return t;
}
int pie[12][MAXN];
int main(){
int x,T,n,i;
while(scanf("%d",&n),n){memset(pie,0,sizeof(pie));
i=0;
while(n--){
scanf("%d%d",&x,&T);
pie[x][T]++;
i=T>i?T:i;
}
/*if(y==0){
printf("0\n");
continue;}*/
/*if(y==0){
printf("%d\n",pie[5][0]);continue;
}*/
for(int y=i-1;y>=0;y--){
for(x=1;x<=9;x++){
pie[x][y]+=max(pie[x-1][y+1],pie[x][y+1],pie[x+1][y+1]);
//printf("%d ",pie[x][y]);
pie[0][y]=pie[0][y+1]>pie[1][y+1]?pie[0][y+1]:pie[1][y+1];
pie[10][y]=pie[10][y+1]>pie[9][y+1]?pie[10][y+1]:pie[9][y+1];
}
// puts("");
}
printf("%d\n",pie[5][0]);
}
return 0;
}
大神代码:
#include<stdio.h>
#include<cmath>
#include<string.h>
#include<algorithm>
using namespace std;
int dp[100005][12];
int main()
{
int n,i,j,maxt;
int x,t;
while(scanf("%d",&n),n)
{
maxt=0;
memset(dp,0,sizeof(dp));
for(i=0;i<n;i++)
{
scanf("%d%d",&x,&t);
dp[t][x]++;
if(maxt<t) maxt=t;
}
for(i=maxt-1;i>=0;i--)
{
dp[i][0]+=max(dp[i+1][1],dp[i+1][0]);
for(j=1;j<11;j++)
{
dp[i][j]+=max(max(dp[i+1][j-1],dp[i+1][j]),dp[i+1][j+1]);
}
}
printf("%d\n",dp[0][5]);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/handsomecui/p/4530381.html