HDU 1257 ac了!

来源:互联网 发布:winpe 网络 编辑:程序博客网 时间:2024/04/29 14:52

背景:

是昨天校赛的A题,当时没做出来;晚上想了想用了贪心过了,但是群里大神说贪心只是侥幸过了,实际是dp就留在此处以后再来看看dp吧;

学习:

1:事先开一个第一个数据来就会替代的初值,不要设置只读一次。

2:开一个key来保存数组的下标和值。

心得:

不能ac一定要自己想,自己去理清楚问题实质,相信自己!

#include<stdio.h>int main(void){int n=0;while(scanf("%d",&n)!=EOF){int str[1000],t=0,temp;str[0]=0;/*第一次读取的数据一定大于这个,会开一个数组*/ while(n--){scanf("%d",&temp);    int flag=1;    int key=str[t],keyj=t;    for(int j=t;j>=0;j--)    {    if(temp<=str[j])    {        flag=0;        str[keyj]=key;        key=str[j],keyj=j;/*还原上次被修改的数组,因为这个更接近面对导弹高度*/         str[j]=temp;    }        }    if(flag)    {    str[++t]=temp;    }    }printf("%d\n",t);}return 0;}


0 0