对于每个操作,直接暴力做就行了,询问的话搜一遍,然后

就这么水过去了。

/**************************************************************
    Problem:
    User: BLADEVIL
    Language: Pascal
    Result: Accepted
    Time: ms
    Memory: kb
****************************************************************/
 
//By BLADEVIL
var
    n, m                        :longint;
    map, w                      :array[..,..] of longint;
    flag                        :array[..,..] of boolean;
    ans                         :longint;
    go                          :array[..,..] of longint;  
     
function max(a,b:longint):longint;
begin
    if a>b then max:=a else max:=b;
end;
 
procedure find(x,y:longint);
var
    i                           :longint;
    nx, ny                      :longint;
begin
    for i:= to do
    begin
        nx:=x+go[,i];
        ny:=y+go[,i];
        if flag[nx,ny] then continue;
        if map[nx,ny]>=map[x,y] then continue;
        if w[nx,ny]= then find(nx,ny);
        w[x,y]:=max(w[x,y],w[nx,ny]+);
    end;
end;
 
procedure init;
var
    i, j                        :longint;
begin
    read(n);
    for i:= to n do
        for j:= to n do read(map[i,j]);
    fillchar(flag,sizeof(flag),false);
    for i:= to n+ do
    begin
        flag[,i]:=true;
        flag[i,]:=true;
        flag[n+,i]:=true;
        flag[i,n+]:=true;
    end;
    go[,]:=-; go[,]:=;
    go[,]:=; go[,]:=-;
end;
 
procedure main;
var
    i, j, t                     :longint;
    ss                          :char;
    x, y, z                     :longint;
    a1, b1, a2, b2              :longint;
     
begin
    readln(m);
    for t:= to m do
    begin
        read(ss);
        if ss='C' then
        begin
            readln(x,y,z);
            map[x,y]:=z;
        end else
        if ss='S' then
        begin
            readln(a1,b1,a2,b2);
            for i:=a1 to a2 do
                for j:=b1 to b2 do
                    flag[i,j]:=true;
        end else
        if ss='B' then
        begin
            readln(a1,b1,a2,b2);
            for i:=a1 to a2 do
                for j:=b1 to b2 do
                    flag[i,j]:=false;
        end else
        begin
            readln;
            for i:= to n do
                for j:= to n do w[i,j]:=;
            for i:= to n do
                for j:= to n do
                if (not flag[i,j]) and (w[i,j]=) then
                    find(i,j);
            ans:=-maxlongint;
            for i:= to n do
                for j:= to n do ans:=max(ans,w[i,j]);
            writeln(ans);
        end;
    end;
end;
 
begin
    init;
    main;
end.

bzoj 3208 暴力的更多相关文章

  1. bzoj 3208 花神的秒题计划I

    bzoj 3208 花神的秒题计划I Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪 ...

  2. bzoj 1028 暴力枚举判断

    昨天梦到这道题了,所以一定要A掉(其实梦到了3道,有两道记不清了) 暴力枚举等的是哪张牌,将是哪张牌,然后贪心的判断就行了. 对于一个状态判断是否为胡牌,1-n扫一遍,然后对于每个牌,先mod 3, ...

  3. bzoj 2073 暴力

    2073: [POI2004]PRZ Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 442  Solved: 327[Submit][Status][D ...

  4. bzoj 3620 暴力KMP

    十分暴力的KMP,枚举左端点,在向右侧推进的同时,取较小的la保证条件,n方暴力 #include<bits/stdc++.h> #define rep(i,j,k) for(int i= ...

  5. bzoj 3916 暴力哈希

    暴力的哈希,注意: 将一个串当作另一个串的前缀,需要乘上p[len],len=后面串的长度 这是自己的代码,拿数据在本地测A掉了,但是bz上wa了??bz换数据了难道?? #include<cs ...

  6. bzoj 1493 暴力

    我们可以枚举每个点,然后求出这个点到其余点最小消耗的代价,求出比t小的且距离最大的更新答案. /**************************************************** ...

  7. bzoj 1800 暴力枚举

    直接暴力枚举四个点,然后判断是否能组成矩形就行了 注意枚举的点的标号从小到大,保证不重复枚举 /**************************************************** ...

  8. BZOJ 3208: 花神的秒题计划Ⅰ

    这就是一道滑雪嘛= = 所有操作都爆力,求路径就dp,完了 CODE: #include<cstdio>#include<iostream>#include<algori ...

  9. NOIP 考前 暴力练习

    BZOJ 1028 暴力枚举听的那张牌,和那个多余的两张牌,其余的mod3后模拟就可以了 #include <cstdio> ; int n,m,a[Maxn],b[Maxn],cnt,A ...

随机推荐

  1. Windows模拟linux终端工具Cmder+Gow

    1. 说明 Cmder:Windows下的终端模拟器. Gow: Windows下模拟Linux命令行工具集合.可以在windows执行linux下的大部分命令,如ls.grep.xargs等. 2. ...

  2. 单链表无head各种操作及操作实验

    #encoding=utf-8 class ListNode: def __init__(self,x): self.val=x; self.next=None;   #链表逆序 def revers ...

  3. 【性能监控】虚拟内存监控命令vmstat详解

    一.Vmstat说明 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.vmstat 工具提供了一种低开销的系 ...

  4. LeetCode 234——回文链表

    1. 题目 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O( ...

  5. 基于规则的中文分词 - NLP中文篇

    之前在其他博客文章有提到如何对英文进行分词,也说后续会增加解释我们中文是如何分词的,我们都知道英文或者其他国家或者地区一些语言文字是词与词之间有空格(分隔符),这样子分词处理起来其实是要相对容易很多, ...

  6. C++学习---- virtual的三种用法

    virtual用法一:多态 #include<iostream> using namespace std; class A{ public: virtual void display(){ ...

  7. 安装floodlight遇到的问题和解决

    环境:ubuntu18.04 安装floodlight先前准备:java的环境,ant. sudo apt-get install build-essential defailt-jdk ant py ...

  8. Asp.Net生命周期系列一

    Asp.Net生命周期对于初级甚至中级程序员来说,一直都是一个难题,很多程序员不了解生命周期,导致使用Asp.Net做开发感觉很不灵活,感觉太多东西被微软封装好了,我们不能改变,其实只要你稍微了解一下 ...

  9. 【linux】亲测成功_CentOS7.2/rhel7.2 忘记root密码及重置root密码的方法?

    本文转自:https://www.jb51.net/article/146320.htm  CentOS 7 root密码的重置方式和CentOS 6完全不一样,以进入单用户模式修改root密码为例. ...

  10. 【linux】linux中tree的安装

    # 2018/7/29 10:17:46测试成功! 一 Tree命令简介 tree是一种递归目录列表命令,产生一个深度缩进列表文件. 二 Tree命令安装 1.下载安装包,地址:http://mama ...