显然是一个博弈论题,考虑 dp。

定义状态 \(dp_i\) 表示先手走到 \(i\) 之后是否有必胜策略,不难发现以下几点:

  1. 若走到 \(i\) 之后无路可走,那么就必败。

  2. 若走到 \(i\) 之后对手只能走到一个必败点那么这就是必胜点。

  3. 除开以上两种情况都是必败点。

用 \(1\) 表示必胜,\(0\) 表示必败,所有操作就是对 dp 数组的单点修改和前缀最大值。

考虑用树状数组维护即可。

#include<bits/stdc++.h>
//#define int long long
#define lowbit(x) (x&-(x))
using namespace std;
const int maxn = 3e5+114;
const int top = 3e5;
int dp[maxn],tr[maxn];
void add(int x,int v){
while(x<=top) tr[x]=max(tr[x],v),x+=lowbit(x);
}
int pre(int x){
int res=0;
while(x>0) res=max(res,tr[x]),x-=lowbit(x);
return res;
}
int n,p[maxn],T;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>T;
while(T--){
memset(dp,0,sizeof(dp));
memset(p,0,sizeof(p));
for(int i=1;i<maxn;i++) tr[i]=0;
cin>>n;
int mi=100000007;
for(int i=1;i<=n;i++){
cin>>p[i];
if(pre(p[i])==0&&p[i]>mi) dp[i]=1;
else dp[i]=0;
add(p[i],dp[i]);
mi=min(mi,p[i]);
}
int ans=0;
for(int i=1;i<=n;i++){
if(dp[i]==1){
ans++;
}
}
cout<<ans<<'\n';
} return 0;
}

CF1860C 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. LLM生态下爬虫程序的现状与未来

    最近出现一批与LLM有关的新的爬虫框架,一类是为LLM提供内容抓取解析的,比如 Jina Reader 和 FireCrawl ,可以将抓取的网页解析为markdown这样的对LLM友好的内容,例如m ...

  2. 详解GaussDB(DWS)中的行执行引擎

    本文分享自华为云社区<GaussDB(DWS)行执行引擎详解>,作者:yd_227398895. 1.前言 GaussDB(DWS)包含三大引擎,一是SQL执行引擎,用来解析用户输入的SQ ...

  3. ❤️‍🔥 Solon Cloud Event 新的事务特性与应用

    1.Solon Cloud Event? 是 Solon 分布式事件总线的解决方案.也是 Solon "最终一致性"分布式事务的解决方案之一 2.事务特性 事务?就是要求 Even ...

  4. python基础环境

    刚开始接触并学习一门开发语言,带着不求甚解的想法,其实也挺有好处的:我并不是所有的东西都知道,但是代码跑起来了. 但是时间久了,还是带着这种想法,可能就会遇到一些棘手的问题.比如电脑上不知不觉已经安装 ...

  5. PVT:特征金字塔在Vision Transormer的首次应用,又快又好 | ICCV 2021

    论文设计了用于密集预测任务的纯Transformer主干网络PVT,包含渐进收缩的特征金字塔结构和spatial-reduction attention层,能够在有限的计算资源和内存资源下获得高分辨率 ...

  6. Go 指针逃逸分析

    引用 https://my.oschina.net/renhc/blog/2222104

  7. Android 12(S) MultiMedia Learning(八)NuPlayer Renderer

    NuPlayer的AVSync由Renderer实现,接下来主要来看AVSync的工作原理 相关代码位置: NuPlayerRenderer.cpp - OpenGrok cross referenc ...

  8. WPF开发快速入门【2】WPF的基本特性(Style、Trigger、Template)

    概述 本文描述几个WPF的常用特性,包括:样式.触发器和控件模板. 样式/Style Style就是控件的外观,在XAML中,我们通过修改控件的属性值来设置它的样式,如: <!--直接定义sty ...

  9. 云原生时代的"应用级"多云管理

    作者:张齐 当前云计算有多种形态公有云.私有云.边缘云.虚拟机等,如何高效管理多云是当前面临的问题,在云原生时代,又该如何利用云原生技术实现多云管理?本文将讲解通过 Rainbond实现"应 ...

  10. React jsx中js表达式

    嵌入JS表达式 在jsx语法中,要把JS代码写到{ }中,所有标签必须要闭合. let num = 100 let bool = false; // JSX 语法 var myh1 = ( <d ...