首页 > 其他分享 >CF1773E Easy Assembly

CF1773E Easy Assembly

时间:2024-05-10 14:00:23浏览次数:27  
标签:cut Assembly int ll lst Easy each CF1773E include

链接:https://codeforces.com/problemset/problem/1773/E
思路
首先先得出最终序列,因为它具有唯一性,然后再根据其中的前后关系来判断原来的数列需要切几刀。然后再根据切几刀形成的最终数列判断需要合并几次。
例如:
目标数列是ABCDEF,而给出的某两段序列是ADBC,EF,那么必要的解法一定是在A后面切一刀,D后面切一刀,然后合并。
本题代码采用两个vector记录:第一个lst记录最终序列,第二个each记录原有的n分段序列,然后通过补0判断是否本来就是缺口位(即结尾),通过遍历each改变cut,最后修改merge为n+cut-1即可。
代码:

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<cmath>
#include<limits.h>
#include<climits>
#include<fstream>
#include<set>
typedef long long ll;
using namespace std;
const ll N = 3e5 + 10;
vector<ll>lst;
vector<ll>each;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	ll cut = 0, merge = 0;
	map<int, int>mp;
	int n; cin >> n;
	for (int i = 0; i < n; i++)
	{
		int k; cin >> k;
		for (int i = 0; i < k; i++)
		{
			ll now; cin >> now;
			lst.push_back(now), each.push_back(now);
		}
		each.push_back(0);
	}
	sort(lst.begin(), lst.end());
	for (int i = 0; i < lst.size(); i++)
		mp[lst[i]] = i;
	for (ll i = 0; i < each.size(); i++)
		if (each[i] and each[i+1])
			if (mp[each[i + 1]] != mp[each[i]] + 1)
				cut++;
	merge = n + cut - 1;
	cout << cut << ' ' << merge;
	return 0;
}

这种需要反向思考的题目需要多加注意!

标签:cut,Assembly,int,ll,lst,Easy,each,CF1773E,include
From: https://www.cnblogs.com/zzzsacmblog/p/18184160

相关文章

  • [ISITDTU 2019]EasyPHP RCE异或限制
    解决一个一直以来的问题,RCE的异或绕过问题。先了解下奇技淫巧吧-->https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html接下来说说今天的问题,在做异或问题是发现许多payload都是(xxxxx)^(%ff....),这都是怎么来的呢。现在说说吧,就比如拿'_'号来说,实质上异......
  • 第二届数信杯南区wp-easyJava
    writeupeasyJava用EclipseMemoryAnalyzer进行分析,利用OQL查找字符串这里要写正则表达式:我写了\\u.*意思是找unicode字符串,因为这里的中文都做了unicode编码搜索到这么一个字符串列表,转码——红色框框里的是还原后的内容。如下:想跟你说一个小秘密:我把码表修改成了......
  • 安防监控/视频汇聚系统EasyCVR视频融合云平台+AI智能分析助力解决校园霸凌事件
    一、方案背景校园霸凌这一校园中不应存在的现象,却屡见不鲜,它像一把锋利的刀,深深地刺入那些无辜的心灵,让受害者承受着无尽的痛苦。随着科技的进步与发展,我们应该追求有效、进步的手段来阻止校园霸凌事件的发生,弥补当前校园安防监控工作的不足之处。在实际应用中,无须借助人力干预......
  • AI赋能EasyCVR视频汇聚/视频监控平台加快医院安防体系数字化转型升级
    背景近来,云南镇雄一医院发生持刀伤人事件持续发酵,目前已造成2人死亡21人受伤。此类事件在医院层出不穷,有的是因为医患纠纷、有的是因为打架斗殴。而且在每日大量流动的人口中,一些不法分子也将罪恶的手伸到了医院,实行扒、窃、抢、破坏等卑劣手段扰乱医院工作秩序,窃取他人钱财,破坏......
  • 如何使用多协议视频汇聚/视频安防系统EasyCVR搭建智慧园区视频管理平台?
    智慧园区作为现代化城市发展的重要组成部分,不仅承载着产业升级的使命,更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化,将项目打造成完善的智慧园区是越来越多用户关注的内容。然而我们往往在规划前期就开始面临众多难题,如:要在哪些地方做到智慧化?怎样选择合适项目的软硬......
  • AI智能分析高精度烟火算法EasyCVR视频方案助力打造森林防火建设
    一、背景随着夏季的来临,高温、干燥的天气条件使得火灾隐患显著增加,特别是对于广袤的森林地区来说,一旦发生火灾,后果将不堪设想。在这样的背景下,视频汇聚系统EasyCVR视频融合云平台+AI智能分析在森林防火中发挥着至关重要的作用。二、方案描述视频汇聚EasyCVR视频融合云平台是一......
  • 视频汇聚边缘网关EasyCVR硬件设备无法访问域名,解析失败该如何处理?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视频监控的能力,也具备接入AI智能分析的能力......
  • 【视频监控】视频汇聚平台EasyCVR能力分析及应用分析
    一、方案背景安防视频监控技术是通过各种监控设备捕捉实时画面,并将其传输到监控中心或数据存储设备的技术。随着科技的发展,监控视频技术已经得到了不断的改进与创新,并在各种领域得到了广泛的应用。但是当前视频监控的发展也面临着以下问题:1)不同单位在视频平台建设中以所属领域......
  • AI智能分析赋能EasyCVR视频汇聚平台,为安全生产监管提供保障
    一、背景需求为提升公共及生产安全监管,深入贯彻落实中央关于智慧城市、数字乡村的部署要求,视频设备融合管理已成为视频治理的必然趋势。针对当前部分地区在视频监控系统建设中存在的问题,如重点地区视频监控系统建设零散、视频监控数据孤立、综合运维保障能力较差等,深化视图资源共......
  • 安防视频/视频汇聚系统EasyCVR视频融合云平台助力智能化酒店安防体系的搭建
    一、背景需求2024年“五一”假期,全国文化和旅游市场总体平稳有序。文化和旅游部6日发布数据显示,据文化和旅游部数据中心测算,全国国内旅游出游合计2.95亿人次。“五一”假期县域市场酒店预订订单同比增长68%,而酒店作为一个高安全和隐私性要求的区域,需要确保内部公共区域的安全。......