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

就这么水过去了。

/**************************************************************
    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. Android PopupWindow 疑难杂症之宽度WRAP_CONTENT

    一直以来都觉得 Android 中的 PopupWindow 不好用.主要有以下两点:1.宽度不好控制2.位置不好控制 今天单说第1点. 由于应用有好几种国家的语言,加上各设备宣染效果不完全一样,对p ...

  2. eclipse 关闭validating

    1.起因 validating XXX  总是非常的浪费时间,有时候还会造成程序卡死 2.解决 windows - Perferences - Validation build 全部去掉

  3. ASP NET Core --- HTTP 翻页、过滤、排序

    参照 草根专栏- ASP.NET Core + Ng6 实战:https://v.qq.com/x/page/v07647j3zkq.html 翻页, 过滤, 排序等 – 如何传递参数? Query ...

  4. javaX邮件发送

    /** * *  * @param mailServerHost 邮件服务器 * @param mailServerPort 端口 * @param validate 是否需要身份验证 * @para ...

  5. Htmlemail邮件发送

    /** * * @param path //发送附件路径 * @param name //附件名称 * @param hostName //邮件服务器名称 * @param port //服务器端口 ...

  6. 如何在指定文件夹下进入jupyter notebook

    第一步: 打开 Anaconda Prompt 第二步: 查看文件夹所在路径 例如:你有个jupyterwork文件夹在 D:\ 路径下 第三步: 在Anaconda Prompt依次输入一下命令: ...

  7. LeetCode 4——两个排序数组中的中位数

    1. 题目 2. 解答 2.1. 方法一 由于两个数组都是排好序的,因此首先可以想到的思路就是利用归并排序把两个数组合并成一个有序的长数组,然后直接取出中位数即可. class Solution: d ...

  8. 1.16. BIP39协议:使用助记词生成确定性钱包

    以太坊系统学习教程: https://www.netkiller.cn/blockchain/bip39.html 1.16. BIP39协议:使用助记词生成确定性钱包 BIP:39 层:应用层 标题 ...

  9. feof问题

    feof()函数是我们C语言中操作文件常见的函数,也是我们最容易出错的函数 这个函数用来表示文件指针是否已经到了文件末尾的下一个位置.这个函数是通用的 可以用在文本文件和二进制文件 (EOF是文件结束 ...

  10. PHP变量的实现原理【转】

    PHP是一门弱语言,也就说PHP的一个变量可以保存任意类型的变量,PHP是用C语言实现的,而C语言是一个强类型的语言,每个变量都有固定的类型,不能随意改变变量的类型(虽然可以通过强制类型转换,可能会出 ...