Solution -「CF 1372E」Omkar and Last Floor
\(\mathcal{Description}\)
Link.
给定一个 \(n \times m\) 的矩阵,每行被划分为若干段,你可以钦定每段中恰好一个位置为 \(1\),其余位置为 \(0\)。设 \(c_i\) 为第 \(i\) 列 \(1\) 的个数,最大化 \(\sum_{i=1}^{m} c_i^2\)。
\(n,m\le100\)。
\(\mathcal{Solution}\)
区间 DP,不过状态设计比较巧妙:令 \(f(l,r)\) 表示确定在 \([l,r]\) 区间内的所有段的最大和。记 \(c_{l,r,k}\) 表示在区间 \([l,r]\) 内,包含了第 \(k\) 列的段的个数,转移:
\]
复杂度 \(\mathcal O(n^4)\)(求转移时在线求 \(c_{l,r,k}\))。
\(\mathcal{Code}\)
/* Clearink */
#include <cstdio>
const int MAXN = 100;
int n, m, f[MAXN + 5][MAXN + 5], L[MAXN + 5][MAXN + 5], R[MAXN + 5][MAXN + 5];
inline void chkmax ( int& a, const int b ) { a < b ? a = b : 0; }
int main () {
scanf ( "%d %d", &n, &m );
for ( int i = 1, k; i <= n; ++ i ) {
scanf ( "%d", &k );
for ( int j = 1, l = 1, r; j <= k; ++ j, l = r + 1 ) {
scanf ( "%*d %d", &r );
for ( int h = l; h <= r; ++ h ) L[h][i] = l, R[h][i] = r;
}
}
for ( int len = 1; len <= m; ++ len ) {
for ( int l = 1, r; ( r = l + len - 1 ) <= m; ++ l ) {
int& cur = f[l][r] = -1;
for ( int k = l; k <= r; ++ k ) {
int c = 0;
for ( int h = 1; h <= n; ++ h ) c += l <= L[k][h] && R[k][h] <= r;
chkmax ( cur, f[l][k - 1] + f[k + 1][r] + c * c );
}
}
}
printf ( "%d\n", f[1][m] );
return 0;
}
Solution -「CF 1372E」Omkar and Last Floor的更多相关文章
- Solution -「CF 1392G」Omkar and Pies
\(\mathcal{Description}\) Link. 给定两个长度为 \(K\) 的 \(01\) 串 \(S,T\) 和 \(n\) 组操作 \((a_i,b_i)\),意义为交换 ...
- Solution -「CF 1342E」Placing Rooks
\(\mathcal{Description}\) Link. 在一个 \(n\times n\) 的国际象棋棋盘上摆 \(n\) 个车,求满足: 所有格子都可以被攻击到. 恰好存在 \(k\ ...
- Solution -「CF 1622F」Quadratic Set
\(\mathscr{Description}\) Link. 求 \(S\subseteq\{1,2,\dots,n\}\),使得 \(\prod_{i\in S}i\) 是完全平方数,并最 ...
- Solution -「CF 923F」Public Service
\(\mathscr{Description}\) Link. 给定两棵含 \(n\) 个结点的树 \(T_1=(V_1,E_1),T_2=(V_2,E_2)\),求一个双射 \(\varph ...
- Solution -「CF 923E」Perpetual Subtraction
\(\mathcal{Description}\) Link. 有一个整数 \(x\in[0,n]\),初始时以 \(p_i\) 的概率取值 \(i\).进行 \(m\) 轮变换,每次均匀随机 ...
- Solution -「CF 1586F」Defender of Childhood Dreams
\(\mathcal{Description}\) Link. 定义有向图 \(G=(V,E)\),\(|V|=n\),\(\lang u,v\rang \in E \Leftrightarr ...
- Solution -「CF 1237E」Balanced Binary Search Trees
\(\mathcal{Description}\) Link. 定义棵点权为 \(1\sim n\) 的二叉搜索树 \(T\) 是 好树,当且仅当: 除去最深的所有叶子后,\(T\) 是满的: ...
- Solution -「CF 623E」Transforming Sequence
题目 题意简述 link. 有一个 \(n\) 个元素的集合,你需要进行 \(m\) 次操作.每次操作选择集合的一个非空子集,要求该集合不是已选集合的并的子集.求操作的方案数,对 \(10^9 ...
- Solution -「CF 1023F」Mobile Phone Network
\(\mathcal{Description}\) Link. 有一个 \(n\) 个结点的图,并给定 \(m_1\) 条无向带权黑边,\(m_2\) 条无向无权白边.你需要为每条白边指定边权 ...
随机推荐
- mysql 5.7.29 在centos7.6下超简单的本地yum源安装与配置
目录 生成yum源元数据 从网易镜像站下载MySQL 5.7 的 bundle包 创建文件 mysql-local.repo 执行yum install命令 生成yum源元数据 createrepo ...
- java mapreduce实现网站PV分析
原文链接: https://www.toutiao.com/i6765677128022229517/ PV 是Page Views的缩写,即页面浏览量,用户每一次对网站中的每个网页访问均被记录一次. ...
- day 16 int *p; scanf("%d",p);问题
(1).以下不能用于描述算法的是[A] (A).E-R图 (B).伪代码 (C).计算机语言 (D).流程图 分析:E-R图也称实体-联系图,提供了表示实体类型.属性和联系的方法,用来描述现实世界的概 ...
- RichTextBox单独设置文字颜色
richTextBox1.Select(index, "str1".Length); richTextBox1.SelectionColor = Color.Red;
- macos下命令行通过ndk编译android下可以执行的ELF程序(并验证opencl的调用)
源码如下,实现把一个JPG保存成灰度图格式的BMP 1 //jpg2bmp.cpp 2 #include <stdio.h> 3 #include <inttypes.h> 4 ...
- 返回void-(响应ajax,响应json格式)(了解)
将jquery库文件加入到idea中 引入json依赖 index.jsp中 设置按钮发起ajax请求 从处理器方法返回void,响应ajax请求 MyController中
- 如何修改主机名hostname
hostname是Linux系统下的一个内核参数,它保存在/proc/sys/kernel/hostname下,但是它的值是Linux启动时从rc.sysinit读取的.而/etc/rc.d/rc.s ...
- linux主机名称文件修改
目录 一:linux主机名称查看与修改 1.查看自己主机名: 3.临时修改 4.永久修改 一:linux主机名称查看与修改 1.查看自己主机名: [root@localhost ~]# echo $H ...
- jenkins自动化pipline的ci/cd流水线
pipeline { agent any tools { //工具必须预先在jenkins中预配置 maven 'mvn' jdk 'jdk' } stages { stage('Env') { st ...
- Android开发-数据库代码编写
数据库代码主要是查找 package com.example.Utils.database; import android.annotation.SuppressLint; import androi ...