【树状数组优化哈希DP】CF1801 C

news2024/11/25 10:54:57

Problem - C - Codeforces

思路:

 

Code:

#include <bits/stdc++.h>
 
#define lowbit(x) (x & (-x))

using i64 = long long;
 
constexpr int N = 2e5 + 10;
constexpr int mod = 1e9 + 7;

std::vector<int> V[N];

int n, m, x, mxv = 0;
int a[N], id[N], tr[N];

bool cmp(int x, int y) {
	return V[x][V[x].size() - 1] < V[y][V[y].size() - 1];
}
void add(int x, int k) {
	for (int i = x; i <= mxv; i += lowbit(i)) {
		tr[i] = std::max(tr[i], k);
	}
}
int sum(int x) {
	int res = 0;
	for (int i = x; i; i -= lowbit(i)) {
		res = std::max(res, tr[i]);
	}
	return res;
}
void solve() {
	std::cin >> n;

	mxv = 0;
	for (int i = 1; i <= n; i ++) {
		id[i] = i;
		V[i].clear();
		std::cin >> m;
		int mx = 0;
		for (int j = 1; j <= m; j ++) {
			std::cin >> x;
			if (mx < x) V[i].push_back(x);
			mx = std::max(mx, x);
		}
		mxv = std::max(mxv, mx);
	}

	std::sort(id + 1, id + 1 + n, cmp);

	for (int x = 1; x <= n; x ++) {
		int i = id[x];
		int mx = 0;
		for (int j = 0; j < V[i].size(); j ++) {
			mx = std::max(mx, sum(V[i][j] - 1) + (int)V[i].size() - j);
		}

		add(V[i][V[i].size() - 1], mx);
	}

	std::cout << sum(mxv) << "\n";

	for (int i = 1; i <= n; i ++) {
		for (int j = V[i].back(); j <= 2e5; j += lowbit(j)) {
			tr[j] = 0;
		}
	}
}
signed main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
 
    int t = 1;
	std::cin >> t;
    while(t --) {
        solve();
    }
    return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/873159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL入门学习教程(一)

mysql简介 1、什么是数据库 &#xff1f; 数据库&#xff08;Database&#xff09;是按照数据结构来组织、存储和管理数据的仓库&#xff0c;它产生于距今六十多年前&#xff0c;随着信息技术和市场的发展&#xff0c;特别是二十世纪九十年代以后&#xff0c;数据管理不再仅仅…

学习笔记整理-JS-02-基本类型

文章目录 一、数据类型简介和检测1. JavaScript中两大数据类型 二、基本数据类型1. 数字类型2. 字符串类型3. 布尔类型4. undefined类型5. null 三、数据类型的转换1. 数据类型的转换 四、重点内容 一、数据类型简介和检测 1. JavaScript中两大数据类型 基本数据类型 Number S…

Android学习之路(3) 布局

线性布局LinearLayout 前几个小节的例程中&#xff0c;XML文件用到了LinearLayout布局&#xff0c;它的学名为线性布局。顾名思义&#xff0c;线性布局 像是用一根线把它的内部视图串起来&#xff0c;故而内部视图之间的排列顺序是固定的&#xff0c;要么从左到右排列&#xf…

最强自动化测试框架Playwright(22)-模拟器

可以使用测试生成器通过仿真生成测试&#xff0c;以便为特定窗口、设备、配色方案生成测试&#xff0c;以及模拟地理位置、语言或时区。测试生成器还可以生成测试&#xff0c;同时保留经过身份验证的状态。 模拟视口大小 Playwright 打开一个浏览器窗口&#xff0c;其视口设置…

电路基础之电容

电容器&#xff08;Capacitor&#xff09;是由两个导体电极之间夹着一个电介质而组成的元件。这两个电极可以是金属板、箔片、涂层等&#xff0c;而电介质则是放置在电极之间的绝缘材料。电容器的基本构成包括以下几个要素&#xff1a; 电极&#xff1a;电容器的电极是两个导体…

无涯教程-Perl - readpipe函数

描述 该函数将EXPR作为命令执行。然后,将输出作为标量文本中的多行字符串返回,或者将行作为列表context中的单个元素返回。 语法 以下是此函数的简单语法- readpipe EXPR返回值 此函数在标量context中返回String,在列表context中返回List。 例 以下是显示其基本用法的示…

HTML详解连载(6)

HTML详解连载&#xff08;6&#xff09; 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽CSS特性继承性注意 层叠性特点 优先级规则公式注意 叠加计算公式&#xff08;每以及之间不存在进位&#xff09;规则 Emmet写法分析属性名属性值注意 背景图平铺方式属性…

【分布式存储】数据存储和检索~B+树

为什么数据存储结构重要 在存储系统中&#xff0c;其实不管数据是什么样的&#xff0c;归根结底其实都还是取决于数据的底层存储结构&#xff0c;而主要常见的就是数据库索引结构&#xff0c;B树、Redis中跳表、以及LSM、搜索引擎中的倒排索引。本质都是如何利用不用的数据结构…

群辉nas看剧设置

首先打开NAS的后台页面&#xff0c;打开“控制面板” 然后依次点开“文件服务--SMB--高级设置”&#xff0c;在最小SMB协议后面的方框选择“SMB1"&#xff0c;然后点击”保存“按钮即可&#xff0c;这里这样设置的原因是因为还有很多旧设备只支持SMB1&#xff08;我几年前…

章节7:Burp Intruder模块

章节7&#xff1a;Burp Intruder模块 参考资料 https://portswigger.net/burp/documentation/desktop/tools/intruder 01 Intruder模块作用与原理 原理 http://xxx.xx.com/bbs/index.php?namewuyanzu&mottogo 对请求参数进行修改&#xff0c;分析响应内容&#xff0…

腾讯:海量小文件场景下CephFS优化之路

Ceph开源社区 2021-02-25 17:58 摘自&#xff1a;https://mp.weixin.qq.com/s/rTNyzY9W3ZunroYo57tjoA 1. 背景 随着大数据、人工智能技术的蓬勃发展&#xff0c;人类对于算力资源的需求也迎来大幅度的增长。在腾讯内部&#xff0c;星辰算力平台以降本增效为目标&#xff0c;…

数据分析 | 随机森林如何确定参数空间的搜索范围

1. 随机森林超参数 极其重要的三个超参数是必须要调整的&#xff0c;一般再加上两到三个其他超参数进行优化即可。 2. 学习曲线确定n_estimators搜索范围 首先导入必要的库&#xff0c;使用sklearn自带的房价预测数据集&#xff1a; import numpy as np import pandas as pd f…

最强自动化测试框架Playwright(18)- 执行js脚本

page.evaluate&#xff08;&#xff09; API 可以在网页上下文中运行 JavaScript 函数&#xff0c;并将结果带回 Playwright 环境。 href page.evaluate(() > document.location.href) 如果结果是 Promise 或函数是异步的&#xff0c;则计算将自动等待&#xff0c;直到解析…

虚拟现实与增强现实技术的商业应用

章节一&#xff1a;引言 随着科技的不断发展&#xff0c;虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;与增强现实&#xff08;Augmented Reality&#xff0c;简称AR&#xff09;技术正日益成为商业领域中的重要创新力量。这两种技术为企业带来了前所未…

Android多屏幕支持-Android12

Android多屏幕支持-Android12 1、概览及相关文章2、屏幕窗口配置2.1 配置xml文件2.2 DisplayInfo#uniqueId 屏幕标识2.3 adb查看信息 3、配置文件解析3.1 xml字段读取3.2 简要时序图 4、每屏幕焦点 android12-release 1、概览及相关文章 AOSP > 文档 > 心主题 > 多屏…

206、仿真-51单片机锂电池蓄电池电压电流加按键控制开关状态Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括&#xff1a; 需要完整的资料可以点击下面的名片加下我&#xff0c;找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&a…

基于STM32CUBEMX驱动TMOS模块STHS34PF80(1)----获取ID

基于STM32CUBEMX驱动TMOS模块STHS34PF80----1.获取ID 概述样品申请视频教程所有功能接口最小系统图生成STM32CUBEMX串口配置IIC配置IO口设置串口重定向 模块地址参考demoIIC写函数IIC读函数参考程序初始化获取ID主函数 概述 STHS34PF80 是一款非冷却、工厂校准的红外运动和存在…

变压器保护高侧过流保护整定原则

电流速断保护的动作电流可按下列两个条件来选择&#xff1a; &#xff08;1&#xff09; 躲过厂用变压器负荷侧母线上短路时流过保护装置的最大短路电流。 动作电流整定为&#xff1a; IsdKkIDmax &#xff08;1-1&#xff09; 式中 Kk——可靠系数&#xff0c; 一般取1.3&…

Oracle将与Kubernetes合作推出DevOps解决方案!

导读Oracle想成为云计算领域的巨头&#xff0c;但它不是推出自己品牌的云DevOps软件&#xff0c;而是将与CoreOS在Kubernetes端展开合作。七年前&#xff0c;Oracle想要成为Linux领域的一家重量级公司。于是&#xff0c;Oracle主席拉里埃利森&#xff08;Larry Ellison&#xf…