zoukankan      html  css  js  c++  java
  • [bzoj3208]花神的秒题计划I

    滑雪那道题变了一下,结果就跑到bzoj里面了

    这数据范围也是感人。。

    直接记忆化搜索,对于改变的值直接修改就可以了

    在字符读入的时候卡了半天QAQ,还是需要用字符数组,毕竟它遇到空格就停下

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 using namespace std;
     5 int num[705][705],f[705][705];
     6 bool available[705][705];
     7 int n,m;
     8 int fx[4]={0,0,1,-1};
     9 int fy[4]={1,-1,0,0};
    10 
    11 int search(int x,int y){
    12     if (f[x][y]!=-1) return f[x][y];
    13     int tmp=1;
    14     for (int i=0;i<4;i++){
    15         if (available[x+fx[i]][y+fy[i]]&&num[x][y]>num[x+fx[i]][y+fy[i]])
    16           tmp=max(tmp,search(x+fx[i],y+fy[i])+1);
    17     }
    18     f[x][y]=tmp;
    19     return tmp;
    20 }
    21 
    22 int main(){
    23   memset(num,-1,sizeof(num));
    24   memset(available,0,sizeof(available));
    25   scanf("%d",&n);
    26   for (int i=1;i<=n;i++)
    27     for (int j=1;j<=n;j++){
    28         scanf("%d",&num[i][j]);
    29         available[i][j]=1;
    30     }    
    31   scanf("%d",&m);
    32   char c[2];
    33   int x,y,z,u;
    34   for (int t=1;t<=m;t++){
    35       scanf("%s",c);
    36       if (c[0]=='C') {
    37           scanf("%d%d%d",&x,&y,&z);
    38         num[x][y]=z;
    39     }
    40     if (c[0]=='S'){
    41         scanf("%d%d%d%d",&x,&y,&z,&u);
    42         for (int i=x;i<=z;i++)
    43           for (int j=y;j<=u;j++)
    44             available[i][j]=0;
    45     }
    46     if (c[0]=='B'){
    47         scanf("%d%d%d%d",&x,&y,&z,&u);
    48         for (int i=x;i<=z;i++)
    49           for (int j=y;j<=u;j++)
    50             available[i][j]=1;
    51    }
    52    //int time=0;
    53     if (c[0]=='Q') {
    54         //printf("%d
    ",++time);
    55         memset(f,-1,sizeof(f));
    56         int Ans=1;
    57         for (int i=1;i<=n;i++)
    58           for (int j=1;j<=n;j++){
    59             if (!available[i][j]) continue;
    60             Ans=max(Ans,search(i,j));
    61           }
    62         printf("%d
    ",Ans);
    63     }
    64   }
    65   return 0;
    66 }
    View Code
  • 相关阅读:
    MySQL (一)(未完成)
    HTML 学习笔记 CSS3 (边框)
    HTML 学习笔记 JavaScript (函数)
    HTML 学习笔记 JavaScript (对象)
    HTML 学习笔记 JavaScript (变量)
    HTML 学习笔记 JavaScript (实现)
    HTML 学习笔记 JavaScript(简介)
    iOS RunTime运行时(1):类与对象
    iOS UITableView 分割线从零开始
    HTML 学习笔记 CSS(选择器4)
  • 原文地址:https://www.cnblogs.com/vincent-hwh/p/6061383.html
Copyright © 2011-2022 走看看