ZOJ-4089-Little Sub and Isomorphism Sequences
给定你个数组,以及一些单点修改,以及询问,每次询问需要求得,最长的字串长度,它在其他位置存在同构。
当存在两个不相交的区间同构时,如:
1、2、……、n -1、n、n + 1、……、m、m + 1、m + 2、 ……、m + n - 1、m + n;(假设m > n&&[1, n]和[m + 1, m + n]同构)
那么 K = n 显然是存在的。但是这不是最大的K,因为[1, m]和[n + 1, n + m]也一定同构(使两边同时加上一个相同区间)
所以这题可以简化为找到一个区间首尾元素相同,求最大区间长度;
Accepted | 4089 | C++11 | 1200 | 23516 |
- #include "bits/stdc++.h"
- using namespace std;
- typedef long long LL;
- typedef pair<int, int> PII;
- const int INF = 0x3f3f3f3f;
- const int MAXN = 1e5 + ;
- map<int, set<int> > mp;
- multiset<int> ans;
- int arr[MAXN];
- int main() {
- int t, n, m;
- scanf("%d", &t);
- while (t--) {
- mp.clear();
- ans.clear();
- scanf("%d%d", &n, &m);
- for (int i = ; i <= n; i++) {
- scanf("%d", &arr[i]);
- mp[arr[i]].insert(i);
- }
- for (auto i : mp) {
- ans.insert(*(--i.second.end()) - *i.second.begin());
- }
- int op, x, y;
- while (m--) {
- scanf("%d", &op);
- if (op == ) {
- if (*(--ans.end()) == ) {
- puts("-1");
- } else {
- printf("%d\n", *(--ans.end()));
- }
- } else {
- scanf("%d%d", &x, &y);
- auto it = ans.find(*(--mp[arr[x]].end()) - *mp[arr[x]].begin());
- ans.erase(it);
- mp[arr[x]].erase(x);
- if (!mp[arr[x]].empty()) {
- ans.insert(*(--mp[arr[x]].end()) - *mp[arr[x]].begin());
- }
- if (!mp[y].empty()) {
- it = ans.find(*(--mp[y].end()) - *mp[y].begin());
- ans.erase(it);
- }
- arr[x] = y;
- mp[y].insert(x);
- ans.insert(*(--mp[y].end()) - *mp[y].begin());
- }
- }
- }
- return ;
- }
可能表述不是很清楚,这题参考了一下https://www.cnblogs.com/hua-dong/p/10293407.html这位大佬的博客;
ZOJ-4089-Little Sub and Isomorphism Sequences的更多相关文章
- ZOJ - 4089 :Little Sub and Isomorphism Sequences (同构 set)
Little Sub has a sequence . Now he has a problem for you. Two sequences of length and of length are ...
- Little Sub and Isomorphism Sequences ZOJ - 4089
ZOJ - 4089 思路:可以反正 最长重构序列必然符合 此模式 x + { } 与 { } + x 那么 题意转化为了 找两个距离最长的相同的数.eeee 先离散化 然后 ...
- ZOJ Monthly, January 2019 Little Sub and Isomorphism Sequences 【离线离散化 + set + multiset】
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5868 Little Sub and Isomorphism Seque ...
- ZOJ Monthly, January 2019 I Little Sub and Isomorphism Sequences(set 妙用) ZOJ4089
写这篇博客来证明自己的愚蠢 ...Orz 飞机 题意:给定你个数组,以及一些单点修改,以及询问,每次询问需要求得,最长的字串长度,它在其他位置存在同构 题解:经过一些奇思妙想后 ,你可以发现问题是传 ...
- ZOJ Monthly, January 2019
A: Little Sub and Pascal's Triangle Solved. 题意: 求杨辉三角第n行奇数个数 思路: 薛聚聚说找规律,16说Lucas 答案是 $2^p \;\;p 为 n ...
- ZOJ Problem Set - 1338 Up and Down Sequences 解释 ac代码
这道题目我一开始一头雾水,怎么都数不对,参考了下网上的博文,才弄懂. 题意是这样的,如果是上升序列,上升序列的长度不是所有上升数字的,是这么规定的,如果它与前一个数字构成上升,那么这个数字算上长度.所 ...
- ZOJ 3861 - Valid Pattern Lock
3861 - Valid Pattern Lock Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- ZOJ 3233 Lucky Number
Lucky Number Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on ZJU. Original I ...
随机推荐
- 统计_statistics_不同的人_大样本_分析_统计方法_useful ?
统计_statistics_不同的人_大样本_分析_
- php empty,isset,is_null判断比较(差异与异同)
php empty,isset,is_null判断比较(差异与异同) 作者: 字体:[增加 减小] 类型:转载 做php开发时候,想必在使用:empty,isset,is_null 这几个函数时候,遇 ...
- 微信获得access_token
<?php //获取access_token $appid = 'wx47a6fc3c1187e60d'; //测试账号appid $appsecret = '525f76d57c7bd7200 ...
- 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例
mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...
- Postgresql的导表
背景 前面已经介绍了常用的备份与恢复了,接下来介绍一下导表. 正文 很多情况,会有把数据导出的需求,轻重缓急总会有特别紧急的情况,但是又不是专业干db的人,还是记录下来,以防不时之需. 针对于导表,个 ...
- Insulator|enhancer|LCR|EKLF|CTCF|调控基因印记| A-USF|HATs|ChIP|Chip-seq|PAGE|
表观遗传学 转录因子 基本转录因子:TFIID.A.B.F.E.H. Pol II… 基转录因子具有稳定作用 组织特异性转录因子:GATA.EKLF.Bcl11A… 特异性是在特定组织中的细胞中时与细 ...
- python基础,if判断
一.计算机基础知识: 1.计算机基本组成:主板+CPU+内存 (CPU:主频,核数(16) 内存:大小,型号,主频 显卡:显存,位宽) 2.计算机最低层:电子电路,只能识别0和1. 二.pyt ...
- 关于Vue.js的认识(第一部分)[转载]
一.关于v-bind 1.初识v-bind (1).加冒号的是 vue 的 v-bind 语法糖(指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用),绑定vue的一个 ...
- KeyError: 'xxx does not support field: _id'
Scrapy存储爬取的数据时,提示不支持某些字段 在Item文件中,添加对应的字段即可
- mysql数据库死锁的解决方案
1. 查询锁表信息 show OPEN TABLES where In_use > 0;2. 查看当前数据库锁表的情况 SELECT * FROM information_schem ...