hdu1257 최소 차단 시스템 (욕심)

4521 단어
제목: 상승자 서열의 개수를 구하는 것이 가장 간단하다. 욕심을 부리면 몇 개의 상승자 서열이 있는지 직접 훑어볼 수 있다. 두 프로그램의 차이는 각 시스템의 최저치를 저장하느냐 안 하느냐에 있다.
#include<cstdio>
using namespace std;
int high[1010];
int main()
{
    #ifdef yexiaoju
    freopen("yxj.txt","r",stdin);
    #endif // yexiaoju
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=1;i<=n;i++)
            scanf("%d",&high[i]);
        int Count=n,num=0;
        while(Count)
        {
            int Min=99999999;
            for(int i=1;i<=n;i++)
            {
                if(high[i]!=-1)
                {
                    if(high[i]<=Min)
                    {
                        Min=high[i];
                        high[i]=-1;
                        Count--;
                    }
                }
            }
            num++;
        }
        printf("%d
"
,num); } }
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[1010],high[1010];
int main()
{
    #ifdef yexiaoju
    freopen("yxj.txt","r",stdin);
    #endif // yexiaoju
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=1;i<=n;i++)
            scanf("%d",&high[i]);
         dp[1]=high[1];
        int num=1,Min=99999999;
        for(int i=2;i<=n;i++)
        {
           for(int j=1;j<=num;j++)
           {
               if(high[i]<=dp[j])
               {
                 dp[j]=high[i];
                 break;
               }
               else if(j==num)
               {
                 num++;
                 dp[num]=high[i];
                 break;
               }
           }
        }
        printf("%d
"
,num); } return 0; }

좋은 웹페이지 즐겨찾기