【BZOJ4282】慎二的随机数列

Description

间桐慎二是间桐家著名的废柴,有一天,他在学校随机了一组随机数列, 准备使用他那强大的人工智能求出其最长上升子序列,但是天有不测风云,人有旦夕祸福,柳洞一成路过时把间桐慎二的水杯打翻了……
现在给你一个长度为 n 的整数序列,其中有一些数已经模糊不清了,现在请你任意确定这些整数的值,使得最长上升子序列最长(为何最长呢?因为间桐慎二向来对自己的人品很有信心) 。

Input

第一行一个正整数 n。
接下来 n 行,第 i 行若为“K x” ,则表示第 i 个数可以辨认且这个数为 x;
若为“N” ,则表示第i 个数已经辨认不清了。

Output

第一行一个整数,表示最长的最长上升子序列长度。

Sample Input

4
K 1
N
K 2
K 3

Sample Output

3

HINT

对于100%的数据,n ≤ 100000,|x| ≤ 10^9

题解:一开始想得极其复杂,看了Claris的题解后也觉得极不可做,然而直到看到了这个做法:

先统计有多少个N,然后将N去掉,然后对于每个k,我们令它的值-=它前面N的个数,最后跑最长上升子序列即可。

不要问我为什么是正确的。。。如果两个K之间N的个数比这两个数的差要多,那么为什么不直接将这个K扔掉呢。。。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=100010;
int n,m,sum;
int s[maxn];
char str[5];
inline int rd()
{int ret=0,f=1;   char gc=getchar();while(gc<'0'||gc>'9')  {if(gc=='-')    f=-f;  gc=getchar();}while(gc>='0'&&gc<='9')  ret=ret*10+(gc^'0'),gc=getchar();return ret*f;
}
int main()
{n=rd();int i,v,l,r,mid;for(i=1;i<=n;i++){scanf("%s",str);if(str[0]=='K'){v=rd()-sum;l=1,r=m+1;while(l<r){mid=(l+r)>>1;if(s[mid]<v) l=mid+1;else  r=mid;}if(l>m)  m++;s[l]=v;}else sum++;}printf("%d",m+sum);return 0;
}

转载于:https://www.cnblogs.com/CQzhangyu/p/7898252.html

【BZOJ4282】慎二的随机数列 乱搞相关推荐

  1. JZOJ 3693. 【NOI2014模拟6.20】慎二的随机数列

    Description 间桐慎二是间桐家著名的废柴,有一天,他在学校随机了一组随机数列,准备使用他那强大的人工智能求出其最长上升子序列,但是天有不测风云,人有旦夕祸福,柳洞一成路过时把间桐慎二的水杯打 ...

  2. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 367  Solved: 159 [Submit][Status ...

  3. Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】

    题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...

  4. 【CodeForces - 569B】Inventory (标记,乱搞)

    题干: Companies always have a lot of equipment, furniture and other things. All of them should be trac ...

  5. 【BZOJ2221】面试的考验,随机数列+线段树+离线

    传送门 shallwe's blog //以上内容由shallwe本人暴力添加 思路: 好题 断断续续想了1周左右 暴力思路显然是O(n2logn)O(n^2\log n)的 我最开始的想法是用莫队+ ...

  6. 【bzoj5071】[Lydsy十月月赛]小A的数字 乱搞

    题目描述 有一串数字 A1,A2...An  每次可以进行如下操作,选择一个数字 i ,将 (Ai-1 , Ai , Ai+1)  变为 (Ai-1 + Ai , -Ai , Ai+1 + Ai) , ...

  7. P5594 模拟赛(乱搞)

    水题就不放传送门了 直接二维数组乱搞 code: #include<bits/stdc++.h> #define MAXN 1005 #define reg register #defin ...

  8. 流量再高,也禁不住客服乱搞,你需要在线客服系统提升转化

    "网络段子千千万,某宝客服占一半""客服,个个都是被耽误的段子手."这些虽然都是戏言,但不难看出客服逐渐走出刻板的形象,变得生动亲切起来.以某宝客服为例,他们智 ...

  9. AcWing 397. 逃不掉的路(边双连通分量缩点成树 + 树链剖分乱搞)

    整理的算法模板合集: ACM模板 我们知道在同一个边双连通分量中的点没有必经边(因为至少有两条分离的路径). 所以我们直接tarjan求出桥后缩点,然后求一下树上两点间的距离即可. 那么如何求树上两点 ...

最新文章

  1. pandas的series和dataframe
  2. 135. Leetcode 46. 全排列 (回溯算法-排列问题)
  3. SAP外币评估 fagl_fc_val 多评估与少评估问题
  4. Kaggle知识点:数据分析EDA
  5. 将一个压缩文件分成多个压缩文件;RAR文件分卷
  6. NoSQL和传统数据库的区别
  7. C# 编程规范 (coding standard)
  8. sumk-db的主要方法及注解
  9. java对象地址连续_Java面向对象中地址的理解(长期修改)
  10. JSON的C代码示例
  11. android.support.v7.app.actionbaractivity 报错
  12. Primavera P6用户密码锁定及管理员忘记密码处理
  13. easydarwin php,EasyDarwin返回401 Unauthorized解决方法
  14. 【文献阅读】MMQA——基于图像、文本和表格的问答(Alon Talmor等人,ICLR,2021)
  15. python文本风格_Python风格规范-FYI
  16. Fundamentals Of Computer Graphics (4th Ed)
  17. 程序员自我修改之读书学习
  18. Qt C++ 运算符重载详解
  19. 会玩,有人用 Python 模拟导弹防御!
  20. 怀仁在2021年高考云东成绩查询,2020年怀仁市云东中学高考喜报

热门文章

  1. datagrid DataFormatString
  2. android源代码 abi,Android内核源码Abi目录学习笔记
  3. python删除字典中性别为男_python初学者,用python3实现基本的学生管理系统代码实例...
  4. ensp 路由表_华为模拟器ensp——静态路由实验
  5. 用c++写一个猜数字的小游戏
  6. oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...
  7. css中的margin和padding
  8. 网络模型:(0)背景
  9. 国产芯片WiFi物联网智能插座—电耗采集功能设计
  10. GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理