live archive 3029

/**
 * @brief live archive 3029
 * @file 3029.cpp
 * @author mianma
 * @created 2015/01/05 14:18
 * @edited  2015/01/05 14:18
 * @type dp
 * @note
 */
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <cstring>

using namespace std;

#define max(a, b)  ((a) > (b) ? (a) : (b))
#define min(a, b)  ((a) > (b) ? (b) : (a)) 
#define abs(a)     ((a) >  0  ? (a) : (0 - (a)))
#define CLR(vec)   memset(vec, 0, sizeof(vec))

#ifdef DEBUG
ifstream in;
ofstream out;
#define CIN in
#define COUT out
#else
#define CIN cin
#define COUT cout
#endif

#define MAXN     (1000 + 10)

int table[MAXN][MAXN];
int up[MAXN][MAXN];
int lft[MAXN][MAXN];
int rht[MAXN][MAXN];
int m, n, ans, cases;

static inline void input(void){
    char ch;
    CLR(up);
    CLR(rht);
    CLR(lft);
    CLR(table);
    ans = 0;
    CIN >> m >> n;
    for(int i = 1; i <= m; i++)
        for(int j = 1; j <= n; j++){
            CIN >> ch;
            if(ch == ‘R‘) table[i][j] = 1;
        }
}

static inline void output(void){
        COUT << ans << "\n";
}

static inline void solve(void){
    int record;
    for(int i = 1; i <= m; i++){
        record  = 0;
        for(int j = 1; j <= n; j++){    /*check from lft to rht*/
            if(!table[i][j]){
                                        /*try to reset status for lft*/
                lft[i][j] = lft[i - 1][j] == 0 ? 1 : lft[i - 1][j];
                lft[i][j] = max( lft[i][j], record + 1);
                up[i][j] = up[i - 1][j] + 1;
            }else{
                record = j;
            }
        }
        record = n + 1;
        for(int j = n; j >= 1; j--){    /*check from rht to lft*/
            if(!table[i][j]){
                                        /*try to reset status for rht*/
                rht[i][j] = rht[i - 1][j] == 0 ? n : rht[i - 1][j];
                rht[i][j] = min( rht[i][j], record - 1);
                ans = max( ans, up[i][j] * (rht[i][j] - lft[i][j] + 1));
            }else{
                record = j;
            }
        }
    }
    ans *= 3;
}

int main(void){
    ios_base::sync_with_stdio(0);
#ifdef DEBUG
    CIN.open("./in",   ios::in);
    COUT.open("./out", ios::out);
#endif
    CIN >> cases;

    while(cases--){
        input();
        solve();
        output();
    }
    return 0;
}
时间: 2024-08-30 13:58:30

live archive 3029的相关文章

[iOS]App上架流程[利用Archive进行上传]

今天给大家带来项目如何上架的教程 准备: 1. 一个开发者账号(需要交过钱的,??好黑) 2. 一个做完的项目 检查: 1. 你的Xcode必须是正式版,不可以是beta版本(不能上传项目) 2. 请确认你的Xcode是从App Store或者从开发者网站下的Xcode安装,而不是非法获取的安装包,因为可能有Ghost.如何检查? 开始吧. 一.生成发布证书(证书的作用:类似于驾照,证明你的身份可以进行开发者一些操作) 打开https://developer.apple.com 点击右上角开发者

ORA-16009 remote archive log destination must be a STANDBY database

ORA-16009错误处理 问题描述: 主备在做Switchover切换时,在切换后的备库报如下错误: Wed Jul 22 04:49:02 2015 Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_arc0_8755.trc: ORA-16009: remote archive log destination must be a STANDBY database 解决办法: 查看主库log_archive_dest_2 参数,结果此参

eclipse Archive for required library in project cannot be read or is not a valid ZIP file

遇到问题: 由于项目开发需要用到spark的第三方jar包,于是下载spark的jar包并引入,显示问题如下: Archive for required library: 'F:/lib/spark-assembly-1.5.2-hadoop2.4.0.jar' in project 'project' cannot be read or is not a valid ZIP file Archive for required library: 'F:/lib/spark-examples-1.

Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive

Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive 现象一: E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用) E: 无法对管理目录(/var/lib/dpkg/)加锁,是不是另一个包管理程序在使用它? 无法执行其他apt-get命令 解决办法: 第一种(比较暴力) 把lock的文件强行删掉,解决问题: sudo rm /var/lib/dpkg/lock 或 sudo rm /var/lib/ap

Hadoop小文件解决之道之一 Hadoop archive

简介 hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在namenode节点占用内存,如果存在这样大量的小文件,它们会吃掉namenode节点的大量内存. hadoop Archives可以有效的处理以上问题,他可以把多个文件归档成为一个文件,归档成一个文件后还可以透明的访问每一个文件,并且可以做为mapreduce任务的输入. 用法 hadoop Archives可以使用archive工具创建,同上一篇讲的distcp一样,archive也是一个mapre

archive gap

什么是archive gap Archive Gap就是standby端日志应用的过程中丢失的一段范围的redo.典型的发生在standby端不能接收primary的redo信息或者接收后不能应用这些redo. 一旦出现GAP,则standby端的Log Apply Services将会暂停,直到Gap解决后恢复正常. 产生Archive Gap的可能原因: - 网络或者日志传输服务中断 - standby故障 - 日志传输服务配置错误 - standby端I/O异常 - 在archivelog

转:HAR(HTTP Archive)规范

HAR(HTTP Archive),是一个用来储存HTTP请求/响应信息的通用文件格式,基于JSON.这个格式的出现可以使HTTP监测工具以一种通用的格式导出所收集的数据,这些数据可以被其他支持HAR的HTTP分析工具(包括Firebug,httpwatch,Fiddler等)所使用,来分析网站的性能瓶颈.目前HAR规范最新版本为HAR 1.2.HAR文件必须是UTF-8编码,有无BOM无所谓. 查看har文件数据的URL:http://www.softwareishard.com/har/vi

ACm-ICPC Live Archive 7464---Robots

ACm-ICPC Live Archive 7464---Robots Write a program to collect data from robots. We are given two sets of robots X = {X1, . . . , Xm}, Y = {Y1, . . . , Yn}, and a base B. Each robot has a data and we would like to compute the sum of data from all rob

phonegap archive 报错 Cordova/CDVViewController.h&#39; file not found

在BuildSettings->Header Search Paths  增加如下路径,问题解决 $(OBJROOT)/UninstalledProducts/include phonegap archive 报错 Cordova/CDVViewController.h' file not found