BZOJ4580/Luogu3147 [Usaco2016 Open]248
amazing
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define R(a,b,c) for(register int  a = (b); a <= (c); ++ a)
#define nR(a,b,c) for(register int  a = (b); a >= (c); -- a)
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define Min(a,b) ((a) < (b) ? (a) : (b))
#define Fill(a,b) memset(a, b, sizeof(a))
#define Swap(a,b) a^=b^=a^=b
#define ll long long
#define ON_DEBUG
#ifdef ON_DEBUG
#define D_e_Line printf("\n\n----------\n\n")
#define D_e(x)  cout << #x << " = " << x << endl
#define Pause() system("pause")
#else
#define D_e_Line ;
#endif
struct ios{
    template<typename ATP>ios& operator >> (ATP &x){
        x = 0; int f = 1; char c;
        for(c = getchar(); c < '0' || c > '9'; c = getchar()) if(c == '-')  f = -1;
        while(c >= '0' && c <= '9') x = x * 10 + (c ^ '0'), c = getchar();
        x*= f;
        return *this;
    }
}io;
using namespace std;
const int N = 270007;
int f[61][N];
int main(){
	int n;
    io >> n;
    int ans = 0;
    R(i,1,n){
        int x;
        io >> x;
        f[x][i] = i + 1;
        ans = Max(ans, x);
    }
    R(i,2,58)
        R(j,1,n){
            if(!f[i][j])
                f[i][j] = f[i-1][f[i-1][j]];
            if(f[i][j])
                ans = i;
        }
    printf("%d",ans);
    return 0;
}
normal
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define R(a,b,c) for(register int  a = (b); a <= (c); ++ a)
#define nR(a,b,c) for(register int  a = (b); a >= (c); -- a)
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define Min(a,b) ((a) < (b) ? (a) : (b))
#define Fill(a,b) memset(a, b, sizeof(a))
#define Swap(a,b) a^=b^=a^=b
#define ll long long
#define ON_DEBUG
#ifdef ON_DEBUG
#define D_e_Line printf("\n\n----------\n\n")
#define D_e(x)  cout << #x << " = " << x << endl
#define Pause() system("pause")
#else
#define D_e_Line ;
#endif
struct ios{
    template<typename ATP>ios& operator >> (ATP &x){
        x = 0; int f = 1; char c;
        for(c = getchar(); c < '0' || c > '9'; c = getchar()) if(c == '-')  f = -1;
        while(c >= '0' && c <= '9') x = x * 10 + (c ^ '0'), c = getchar();
        x*= f;
        return *this;
    }
}io;
using namespace std;
const int N = 257;
int f[N][N];
int main(){
    int n;
    io >> n;
    int ans = 0;
    R(i,1,n){
        io >> f[i][i];
        ans = Max(ans, f[i][i]);
    }
    R(i,1,n){
        R(l,1,n-i+1){
            int r = l + i - 1;
            R(k,l,r-1){
                if(f[l][k] == f[k+1][r]){
                    f[l][r] = Max(f[l][r], f[l][k] + 1);
                    ans = Max(ans, f[l][r]);
                }
            }
        }
    }
    printf("%d", ans);
    return 0;
}

BZOJ4580/Luogu3147 [Usaco2016 Open]248的更多相关文章
- 【bzoj4580】[Usaco2016 Open]248  区间dp
		题目描述 Bessie likes downloading games to play on her cell phone, even though she does find the small t ... 
- bzoj4580: [Usaco2016 Open]248(区间dp)
		4580: [Usaco2016 Open]248 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 255 Solved: 204[Submit][S ... 
- BZOJ4580: [Usaco2016 Open]248
		n<=248个数字,可以进行这样的操作:将相邻两个相同的数字合并成这个数字+1,求最大能合成多少. f(i,j)--区间i到j能合成的最大值,f(i,j)=max(f(i,k)+1),f(i,k ... 
- 4580: [Usaco2016 Open]248
		Description Bessie likes downloading games to play on her cell phone, even though she does find the ... 
- BZOJ 4580: [Usaco2016 Open]248
		Description 一个序列,每次可以把相邻的两个数合为一个,价值+1,求最后的最大价值. Sol 区间DP. \(f[i][j]\) 表示 \(i-j\) 中合成一个数字为多少,转移就是枚举断点 ... 
- BZOJ 4576: [Usaco2016 Open]262144
		Description 一个序列,每次可以将两个相同的数合成一个数,价值+1,求最后最大价值 \(n \leqslant 262144\) Sol DP. 这道题是 BZOJ 4580: [Usaco ... 
- bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)
		听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ... 
- bzoj AC倒序
		Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ... 
- 【BZOJ 4580】【Usaco2016 Open】248
		http://www.lydsy.com/JudgeOnline/problem.php?id=4580 区间dp,f(i,j)表示区间[i,j]全部合成一个数,这个数是多少. 可以归纳证明[i,j] ... 
随机推荐
- Vben Admin 源码学习:状态管理-错误日志
			0x00 前言 本文将对 Vue-Vben-Admin 的状态管理实现源码进行分析解读,耐心读完,相信您一定会有所收获! 0x01 errorLog.ts 错误日志 文件 src\store\modu ... 
- 内网穿透frp教程  windows远程桌面连接
			鉴于ngrok不是特别好用 昨天又发现frp这个神器 在管理端还有图形界面十分友好 话不多说开始 准备工作 1.一个域名 2.一台服务器 一.域名与服务器 域名和服务器直接买就好咯 价格不高 一定要在 ... 
- 10分钟快速部署camunda BPM开源版
			安装部署Camunda BPM有多种方式,基于Camunda独立web应用程序安装部署是最简单的一种方式,您只需要有tomcat即可. 本文档将指导您安装和配置Camunda独立web应用程序,快速体 ... 
- 自嗨ReentrantReadWriteLock
			import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ... 
- 关于react的props你需要知道的一个简单方法
			//注意一点:函数名必须大写 function Clock(props) { return ( <div> <h1>Hello, world!</h1> <h ... 
- javascript写淡入淡出效果的轮播图
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- SAP 实例 5 CFW Events
			REPORT demo_custom_control . * Declarations ***************************************************** CL ... 
- 一条 SQL 语句是如何执行的
			一条 SQL 语句是如何执行的 SQL查询语句 select * from user where ID=10; MySQL 的基本架构可以分为 Server 层和存储引擎两部分.Server 层又包含 ... 
- nginx启动失败/报错(bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket...permissions) nginx启动失败
			出现这个问题是因为80端口被占用了 1.cmd输入命令netstat -aon|findstr "80" 2..查看80端口 16356对应的任务 输入命令 tasklist|fi ... 
- Docker Buildx使用教程:使用Buildx构建多平台镜像
			写在前边 记录一下前阵子在X86_64平台使用Docker Buildx构建多平台镜像的办法,包含但不限于构建ARM镜像. 构建环境 软件名 版本 Ubuntu 18.04.2 LTS Docker ... 
