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

TOP

BZOJ 3208 »¨ÉñµÄÃëÌâ¼Æ»®¢ñ ¼ÇÒ仯ËÑË÷
2015-07-20 17:24:02 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:2´Î
Tags£ºBZOJ 3208 »¨Éñ ¼Æ»® ¼ÇÒä ËÑË÷

ÌâÄ¿´óÒ⣺¸ø¶¨Ò»¸ö¾ØÕ󣬶à´Î¸Ä±äij¸öµãµÄȨֵ£¬É趨ij¸ö×Ó¾ØÕóÄÚµÄËùÓеã¿ÉÓÃ/½ûÓã¬Çó»¬Ñ©µÄ×î´ó³¤¶È

ÔÙÒ²²»¸Ò²»¿´Êý¾Ý·¶Î§¾Í×öÌâÁË233333

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #define M 710 using namespace std; const int dx[]={0,0,1,-1}; const int dy[]={1,-1,0,0}; int n,m,a[M][M],f[M][M]; bool reserved[M][M]; int Memorial_Search(int x,int y) { if(reserved[x][y]) return 0; if(f[x][y]) return f[x][y]; int i; f[x][y]=1; for(i=0;i<4;i++) { int xx=x+dx[i]; int yy=y+dy[i]; if(xx<=0||yy<=0||xx>n||yy>n) continue; if(a[xx][yy]>=a[x][y]) continue; f[x][y]=max(f[x][y],Memorial_Search(xx,yy)+1); } return f[x][y]; } int main() { int i,j,k,x1,y1,x2,y2,x,y,z; char p[10]; cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]); cin>>m; for(k=1;k<=m;k++) { scanf("%s",p); switch(p[0]) { case 'C': scanf("%d%d%d",&x,&y,&z); a[x][y]=z; break; case 'S': scanf("%d%d%d%d",&x1,&y1,&x2,&y2); for(i=x1;i<=x2;i++) for(j=y1;j<=y2;j++) reserved[i][j]=1; break; case 'B': scanf("%d%d%d%d",&x1,&y1,&x2,&y2); for(i=x1;i<=x2;i++) for(j=y1;j<=y2;j++) reserved[i][j]=0; break; case 'Q': int ans=0; memset(f,0,sizeof f); for(i=1;i<=n;i++) for(j=1;j<=n;j++) ans=max(ans,Memorial_Search(i,j) ); printf("%d\n",ans); break; } } } 
     
    
   
  


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£º[C++]LeetCode: 110 Spiral Matri.. ÏÂһƪ£ºPOJ 1182 ʳÎïÁ´ £¨ÖÖÀಢ²é¼¯£©

ÆÀÂÛ

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

¡¤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)