ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

UVA 10534--Wavio Sequence+¶þ·Ö+DP
2015-07-20 17:23:25 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºUVA 10534--Wavio Sequence +¶þ·Ö

¿ªÊ¼µÄʱºòÒ»Ö±Ïë²»µ½Ò»¸öºÏÊʵÄ×´Ì¬×ªÒÆ·½³Ì£»

ºóÃæÏëµ½¿ÉÒÔ·Ö±ðÇóÒÔÖмäÄǸöÊýΪÖÕµãºÍÆðµãµÄ×ÉÏÉý×ÓÐòÁеij¤¶È£¬

È»ºóÒÔÕâ¸öÊýΪÖÐÐÄÊýµÄWavio SequenceµÄ³¤¶È¾ÍÊÇÆäÖж̵ÄÄǸöÖµ*2-1µÄÖµ£»

È»ºóÎÒÃÇÈ¡ËùÓÐÊýWavio SequenceµÄ×î´ó³¤¶È×÷Ϊ´ð°¸¡£

Õâ¸öÌâÄ¿¿¨ÁËn^2µÄÇó×ÉÏÉý×ÓÐòÁеÄËã·¨£¬±ØÐëÓÃnlgnËã·¨²ÅÄܹý¡£


´úÂëÈçÏ£º


#include
  
   
#include
   
     #include
    
      #include
     
       using namespace std; int a[10010],n; int d1[10010],d2[10010]; int d[10010]; int lower_bound(int* A,int x,int y,int v) { int m; while(x
      
       =v) y=m; else x=m+1; } return x; } int main() { while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) d1[i]=1,d2[i]=1; int len=1; d[1]=a[1]; for(int i=2;i<=n;i++) { if(a[i]>d[len]) { d[++len]=a[i]; d1[i]=len; } else { int t=lower_bound(d,1,len,a[i]); d[t]=a[i]; d1[i]=t; } } len=1; d[1]=a[n]; for(int i=n-1;i>=1;i--) { if(a[i]>d[len]) { len++; d[len]=a[i]; d2[i]=len; } else { int t=lower_bound(d,1,len,a[i]); d[t]=a[i]; d2[i]=t; } } int ans=0; for(int i=1;i<=n;i++) ans=max(ans,min(d1[i],d2[i])*2-1); printf("%d\n",ans); } return 0; } 
      
     
    
   
  



¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºuva 11210 Chinese Mahjong(±©Á¦.. ÏÂһƪ£ºZOJ 1037 && HDU 1046 Gr..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Spring Boot Java£º (2025-12-26 16:20:19)
¡¤Spring Boot¤ÇHello (2025-12-26 16:20:15)
¡¤Spring ¤Î»ù±¾¤«¤éŒ (2025-12-26 16:20:12)
¡¤C++Ä£°å (template) (2025-12-26 15:49:49)
¡¤C ÓïÑÔÖÐÄ£°åµÄ¼¸ÖÖ (2025-12-26 15:49:47)