Codeforces-1682 C: LIS or Reverse LIS?

题目传送门:Codeforces-1682 C: LIS or Reverse LIS?

题目

题目截图

样例描述

题目大意

  给定一个数组 aaa,可以调整其任意顺序。令 LIS(⋅)LIS(\sdot)LIS(⋅) 为最长上升(严格)子序列,a′a'a′ 为反转 aaa 后得到的数组,求 min⁡(LIS(a),LIS(a′))\min (LIS(a), LIS(a'))min(LIS(a),LIS(a′))。

题目解析

  如果学过 LIS,里面有一种做法,从一个空数组(结果数组)开始,用二分替换的方式求一个给定数组的 LIS,其核心思想是插入数值,让结果数组变得更优,这道题也是属于利用插入。
  一个显然的性质是:反转数组的最长上升(严格)子序列就是原数组的最长下降(严格)子序列,显然,这两个最多只能有一个下标的交集。
  因此,对数组中有重复的数字,我们可以将它放入上升和下降两个子序列中(更多的同一重复数字没有作用)。那么没有重复的数字,我们就可以将它们等量地插入进这两个子序列中。当这个没有重复的数字个数 ttt 是奇数个时,我们可以将它当作两个序列公共的那个数字,因此答案只需要再加上一个有重复的数字个数 sss。最终结果是:s+⌈t2⌉s + \lceil \frac{t}{2} \rceils+⌈2t​⌉。

Code

#include <bits/stdc++.h>
using namespace std;int main() {int T, n;cin >> T;while(T--) {cin >> n;vector<int> a(n); map<int, int> M;for(int& i : a) cin >> i, ++M[i];int s = 0, t = 0;for(auto& [i, j] : M) t += (j == 1), s += (j > 1);cout << s + ((t + 1) / 2) << endl;}return 0;
}

Codeforces-1682 C: LIS or Reverse LIS? 【构造】相关推荐

  1. Codeforces Round #446 (Div. 1) B. Gluttony 构造 + 补集思想

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,保证aaa中每个数都互不相同,让你构造一个数组bbb,满足对于任意的S=x1,x2,...,xk,1≤xi≤n,0≤k<nS={x_ ...

  2. Codeforces Round #592 (Div. 2) F. Chips 构造 + 细节

    传送门 文章目录 题意: 思路: 题意: 思路: 恶心的构造题,思路很简单但是代码细节很多,搞了半天. 根据题目的性质不难发现,如果有两个相同颜色的球相邻,那么他们的颜色永远不会改变. 根据这个性质, ...

  3. Codeforces - 814B - An express train to reveries - 构造

    http://codeforces.com/problemset/problem/814/B 构造题烦死人,一开始我还记录一大堆信息来构造p数列,其实因为s数列只有两项相等,也正好缺了一项,那就把两种 ...

  4. 大型三甲医院检验系统LIS源码 LIS系统源代码

    开发环境:.NET 4.0 WPF +VS2017或VS2019+SQL2016 一套功能完善,源码完整,可完美运行的医院LIS系统源码.源码中附带第三方示例代码,除Redis外源码中还有MongoD ...

  5. CodeForces - 1364C Ehab and Prefix MEX(贪心+构造)

    题目链接:点击查看 题目大意:给出一个数组 a ,要求构造一个数组 b ,使得 a[ i ] = MEX{ b[ 1 ] , b[ 2 ] , ... b[ i - 1 ] , b[ i ] },a[ ...

  6. CodeForces - 1341F Nastya and Time Machine(dfs+构造)

    题目链接:点击查看 题目大意:给出一棵树,现在要求从点1出发遍历所有的结点一遍后再回到点1,额外给出一个时光机,可以到某个节点的任意时刻,需要满足的条件如下: 初始时在节点 1 ,时间为 0 每次操作 ...

  7. CodeForces - 715A Plus and Square Root(思维+构造)

    题目链接:点击查看 题目大意:我们在玩一个游戏,屏幕上有一个数字,我们设这个数字为x,初始值为2,我们一开始的等级是k,我们每一次可以有两种操作: 加法:可以让x加上k 开根号:可以让x开根号,并且等 ...

  8. 【CodeForces - 483C】Diverse Permutation(思维构造)

    题干: Permutation p is an ordered set of integers p1,   p2,   ...,   pn, consisting of ndistinct posit ...

  9. codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)

    题目链接: C. Mashmokh and Reverse Operation time limit per test 4 seconds memory limit per test 512 mega ...

  10. Codeforces Gym 101173 K. Key Knocking (构造)

    题意 对于给定的长为 3×N3\times N 的 01 字符串 S,求在最多变换 N 次下使得字符串 S 的 weight >= 2n . 字符串的 weight 为 相邻不同字符的个数 + ...

最新文章

  1. 用netty实现zcool_Netty 如何玩转内存使用
  2. 黑盒测试之功能分解法
  3. C技巧:结构体参数转成不定参数
  4. 如何发布打印机文件夹及ICA 客户端打印机配置工具
  5. 成功解决TabError: inconsistent use of tabs and spaces in indentation
  6. php 覆盖写文件内容,php写入文件不覆盖的实例讲解
  7. 用反射简化 asp.net 报表的一点总结
  8. Oracle导入ixf文件,Shell读取文本批量导出\导入DB2数据
  9. 手把手教你启动若依前后端分离项目
  10. 云计算:大数据时代的系统工程(二)
  11. JSP实用教程 第二章 JSP语法
  12. 伺服电机算功率基本公式_伺服电机选型通用计算公式
  13. SSD-tensorflow Windows环境下,mAP的计算
  14. SumaTraPDF
  15. python爬取王者_Python爬取王者荣耀英雄图片及装备!你玩吗?
  16. Linux增加硬盘详细教程,Linux 添加新硬盘
  17. 阿龙的学习笔记---转载及精炼总结github仓库:cpp-backend-reference
  18. 赛灵思 Xilinx UG1387 - Versal ACAP 硬件、IP 和平台开发方法指南(中文版) (v2020.2)
  19. 1001 害死人不偿命的(3n+1)猜想
  20. 《需求工程——软件建模与分析》读书笔记

热门文章

  1. PDF打开后出现中文乱码情况
  2. 跑PIN码破解无线网络WIFI密码的原理分析(转)
  3. iPhone4 iOS 4.3.3 越狱之后必装的插件
  4. 【NKOJ-4234】三角分形
  5. 第三篇 ME909s-821设备描述符分析
  6. 如何修改Notes邮箱中的收件箱标题宽度
  7. MySQL3_外键及查询
  8. oceancolor数据批量下载
  9. Java核心技术整理(九)---持久层、业务层、表现层
  10. Web初学-2022.11.12-11.18