A游戏

内存限制:256 MiB时间限制:1000 ms标准输入输出
题目类型:传统评测方式:文本比较
上传者: qmqmqm

题目描述

qmqmqm和sublinekelzrip要进行一场游戏,其规则是这样的:

首先有一个序列,其中每个位置是一个整数或是X。双方轮流将X的位置填入此前不在序列中的实数,直到序列中充满数字为止。qmqmqm优先填数。若最后这个序列的逆序对数目为奇数,则qmqmqm获得胜利,否则sublinekelzrip获得胜利。qmqmqm想知道若双方均采取最优决策,在一个给定的序列下他能否获胜。设最终序列中第iii个数为aia_ia​i​​,则逆序对为满足i<ji<ji<j且ai>aja_i>a_ja​i​​>a​j​​的有序对(i,j)(i,j)(i,j)的数目

注意虽然起始序列中只有整数,但可以填入非整数的实数。

输入格式

第一行包含一个正整数nnn,表示序列的长度。

之后nnn行,每行或为一个整数aia_ia​i​​,或为一个字符X。

输出格式

输出仅包含一个字符,若qmqmqm获胜,输出W,否则输出L

样例

样例输入1

2
X
X

样例输出1

L

样例解释1

若qmqmqm在第一个位置填入aaa,则sublinekelzrip只要在后一个位置填入a+1a+1a+1。

若qmqmqm在第二个位置填入bbb,则sublinekelzrip只要在后一个位置填入b−1b-1b−1。

样例输入2

2
X
57

样例输出2

W

样例解释2

qmqmqm在第一个位置填入717171即可获胜。

数据范围与提示

1≤n≤1000001 \leq n \leq 1000001≤n≤100000

−109≤ai≤109-10^9 \leq a_i \leq 10^9−10​9​​≤a​i​​≤10​9​​

若i≠ji \neq ji≠j,则ai≠aja_i \neq a_ja​i​​≠a​j​​

这个题还是比较复杂的,得先分析X的作用,最后发现是X的个数为奇数偶数的问题。

然后在分析逆序对,注意有种情况是1 X

这个题我本来的树状数组模板不好,打算再更新下

#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
const int N=;
int w[N];
int la(int l,int r)
{
if(r-l==)
return ;
int m=l+r>>,s=la(l,m)+la(m,r);
for(int i=l; i<m; ++i)
s+=lower_bound(w+m,w+r,w[i])-w-m;
sort(w+l,w+r);
return s&;
}
int main()
{
int n;
scanf("%d",&n);
int t=;
for(int i=; i<n; i++)
{
getchar();
char c[];
scanf("%s",c);
if(c[]=='X')t++;
else
{
sscanf(c,"%d",&w[i]);
}
}
if(t)
{
if(n==&&t==||t%==)
cout<<"L"<<endl;
else cout<<"W"<<endl;
}
else
{
if(la(,n))
cout<<"W"<<endl;
else cout<<"L"<<endl;
}
return ;
}

LibreOJ β Round #4的更多相关文章

  1. LibreOJ β Round #2 题解

    LibreOJ β Round #2 题解 模拟只会猜题意 题目: 给定一个长为 \(n\) 的序列,有 \(m\) 次询问,每次问所有长度大于 \(x\) 的区间的元素和的最大值. \(1 \leq ...

  2. loj #547. 「LibreOJ β Round #7」匹配字符串

    #547. 「LibreOJ β Round #7」匹配字符串   题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 ...

  3. [LOJ#531]「LibreOJ β Round #5」游戏

    [LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 ...

  4. [LOJ#530]「LibreOJ β Round #5」最小倍数

    [LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文 ...

  5. [LOJ#516]「LibreOJ β Round #2」DP 一般看规律

    [LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...

  6. [LOJ#515]「LibreOJ β Round #2」贪心只能过样例

    [LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. ...

  7. [LOJ#525]「LibreOJ β Round #4」多项式

    [LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) ...

  8. [LOJ#526]「LibreOJ β Round #4」子集

    [LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两 ...

  9. [LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机)

    [LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机) 试题描述 IOI 的比赛开始了.Jsp 和 Rlc 坐在一个角落,这时他们听到了一个异样的声音 …… 接着他们发现自己收 ...

  10. LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力

    二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几 ...

随机推荐

  1. 本号讯 | 人工智能手表为帕金森患者带来书写希望;微软翻译发布可实时翻译幻灯片的Presentation Translator

    7 月 12 日,微软成立微软研究院人工智能中心(Microsoft Research AI).这是一个隶属于微软研究体系内的科研和孵化中心,将聚焦于解决最复杂的人工智能挑战. 这支由科学家和工程师组 ...

  2. 多目标检测分类 RCNN到Mask R-CNN

    最近做目标检测需要用到Mask R-CNN,之前研究过CNN,R-CNN:通过论文的阅读以及下边三篇博客大概弄懂了Mask R-CNN神经网络.想要改进还得努力啊... 目标检测的经典网络结构,顺序大 ...

  3. Android(java)学习笔记134:Android数据存储5种方式总结

    1.使用文件(File)存储 存储一般的数据 2.使用sharedperference(xml) 存储设置信息.配置信息.密码 3.数据库Sqlite 开源的,嵌入式的数据库,轻量级 4.使用Cont ...

  4. python之道13

    看代码分析结果 func_list = [] for i in range(10): func_list.append(lambda :i) v1 = func_list[0]() v2 = func ...

  5. 记录一次mysql中自定义获取UUID的函数

    循环方式一: DELIMITER :; drop function if exists test.fn_test:; create function test.fn_test() ) begin ) ...

  6. iOS监听电话来电、挂断、拨号等

    以下,来讲解在app内如何调用打电话功能和监听电话来电.挂断.拨号等功能. 简单的UI布局: 首先,先实现拨打电话的功能,以便于后续测试: // 拨打电话 - (IBAction)dialingBut ...

  7. 解决Windows 与Mac 双系统下的蓝牙设备共用的问题

    不知道有多少人和我一样用的蓝牙鼠标或者键盘,有的话应该都会遇到同一个问题:即在一个系统下配好对后在另一个系统必须重新配对才能使用,很是麻烦.还要将蓝牙设备进入发现模式,OS下搜索,连接....终于昨天 ...

  8. 测试 code style

    c++ #include <iostream> int main(int argc, char *argv[]) { /* An annoying "Hello World&qu ...

  9. 酷炫的3D照片墙

    今天给大家分享的案例是酷炫的3D照片墙 这个案例主要是通过 CSS3 和原生的 JS 来实现的,接下来我给大家分享一下这个效果实现的过程.博客上不知道怎么放本地视频,所以只能放两张效果截图了. 1.实 ...

  10. NOIP2018 - 一些板子

    好多东西都不熟练…… 数论 数论分块「bzoj2956: 模积和」 10.28.2018 #include<bits/stdc++.h> typedef long long ll; ; ; ...