zoukankan      html  css  js  c++  java
  • BZOJ 3208: 花神的秒题计划Ⅰ

    这就是一道滑雪嘛= =

    所有操作都爆力,求路径就dp,完了

    CODE:

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    #define maxn 710
    #define inf 0x7fffffff
    bool bo[maxn][maxn],b[maxn][maxn];
    int f[maxn][maxn],a[maxn][maxn];
    int way[4][2]={{1,0},{-1,0},{0,-1},{0,1}};
    int dfs(int x,int y){
     if (bo[x][y]||b[x][y]) return f[x][y];
     int ans=0;
     bo[x][y]=1;
     for (int i=0;i<4;i++)
      if (a[x][y]>a[x+way[i][0]][y+way[i][1]])
      ans=max(dfs(x+way[i][0],y+way[i][1]),ans);
     ans++;
     f[x][y]=ans;
     return ans;
    }
    char s[2];
    int main(){
     int n,m;
     scanf("%d",&n);
     for (int i=1;i<=n;i++)
     for (int j=1;j<=n;j++) scanf("%d",&a[i][j]);
     for (int i=1;i<=n;i++) a[i][0]=a[0][i]=a[i][n+1]=a[n+1][i]=inf;
     scanf("%d",&m);
     while (m--){
      scanf("%s",s);
      int x1,y1,x2,y2,x;
      if (s[0]=='C'){
       scanf("%d%d%d",&x1,&y1,&x);
       a[x1][y1]=x;
      }
      if (s[0]=='S'){
       scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
       for (int i=x1;i<=x2;i++)
        for (int j=y1;j<=y2;j++) b[i][j]=1;
      }
      if (s[0]=='B'){
       scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
       for (int i=x1;i<=x2;i++)
        for (int j=y1;j<=y2;j++) b[i][j]=0;
      }
      if (s[0]=='Q'){
       memset(bo,0,sizeof(bo));
       memset(f,0,sizeof(f));
       int ans=0;
       for (int i=1;i<=n;i++)
        for (int j=1;j<=n;j++)
         ans=max(ans,dfs(i,j));
       printf("%d ",ans);
      }
     }
     return 0;
    }

  • 相关阅读:
    python 枚举enum
    python lambda 三元表达式
    python修改类属性
    python获取引用对象的个数
    python 返回实例对象个数
    python __del__() 清空对象
    python面向对象:继承
    python面向对象:多态
    Docker容器和K8s添加Health Check
    mkfs.xfs: /dev/vdb appears to contain a partition table (dos)
  • 原文地址:https://www.cnblogs.com/New-Godess/p/4348940.html
Copyright © 2011-2022 走看看