题解 CF1190B 【Tokitsukaze, CSL and Stone Game】
思路:
首先题目告诉我们,一次只能
删去一个石子。当然有翻译时会注意,但是看英文题时总是容易忽略。。
先排序。
然后,你会发现,有些情况是一开始就输的,具体情况如下:
- 有两个 两个相等非零数。(a[x] == a[x+1], a[y] == a[y+1], x != y)
- 有两个零。 (a[x] == a[y] == 0)
- 有一个(a[x] + 1 == a[x+1] == a[x+2]),此时也直接输。
判完后,可以证明,无论他们怎么取,只要不使自己输,都会形成类似序列{0,1,2,3,...}的情况。
此时,只要判断一下石子总数减去最终状态的奇偶性即可。
代码:
#include<bits/stdc++.h>
#define repeat(a,b,c,g) for (int a=b,abck=(g>=0?1:-1);abck*(a)<=abck*(c);a+=g)
using namespace std;
int a[110000];
int n;
char lost[] = "cslnb";
char win[] = "sjfnb";
long long tot = 0;
long long ans = 0;
int ptr = 0;
int main()
{
cin >> n;
for (int i=1;i<=n;i++)
cin >> a[i];
sort(a+1,a+n+1);
for (int i=2;i<=n;i++)
{
if (a[i-1] == 0 && a[i] == 0)
cout << lost, exit(0);
if (a[i-1] == a[i]) ptr++;
if (a[i-1] == a[i] && i > 2 && a[i-2] + 1 >= a[i])
cout << lost, exit(0);
//Die at first
}
if (ptr > 1) cout << lost << endl,exit(0);
for (int i=1;i<=n;i++)
tot += a[i], tot -= (i-1);
if (tot % 2 == 0)
cout << lost << endl;
else cout << win << endl;
}
题解 CF1190B 【Tokitsukaze, CSL and Stone Game】的更多相关文章
- Codeforces Round #573 (Div. 2) D. Tokitsukaze, CSL and Stone Game (博弈,思维)
D. Tokitsukaze, CSL and Stone Game time limit per test1 second memory limit per test256 megabytes in ...
- [Codeforces 1191D] Tokitsukaze, CSL and Stone Game(博弈论)
[Codeforces 1191D] Tokitsukaze, CSL and Stone Game(博弈论) 题面 有n堆石子,两个人轮流取石子,一次只能从某堆里取一颗.如果某个人取的时候已经没有石 ...
- Codeforces 1190B. Tokitsukaze, CSL and Stone Game
传送门 不妨把每一堆按照石头数量从小到大排序 注意到每次只能拿一个石头,那么不论何时每堆石头的排名都是一样的 那么最终所有堆的状态一定就是 $0,1,2,...,n-1$,现在每一堆最终的石头数量都确 ...
- D. Tokitsukaze, CSL and Stone Game ( 取石子游戏?no,更像棋盘游戏 )
去吧,皮皮虾 题意: 有 n 堆石子,每堆有 a[ i ] 个,然后每次 操作 可以选择任意一堆 石子,取走一个. 若你取完了之后,存在两堆石子,他们的个数一样多,你就输了( 包括两堆都是0个), ...
- 题解 UVA1567 【A simple stone game】
题目大意 一堆石子有n个,首先第一个人开始可以去1~
- 题解报告:hdu 4764 Stone(巴什博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4764 Problem Description Tang and Jiang are good frie ...
- Codeforces Round #573 (Div. 2) D题题解
一.题目 Tokitsukaze, CSL and Stone Game Tokitsukaze和CSL正在玩一些石头游戏. 一开始,有n堆的石头,第i堆石头数记为 \(a_i\),两人轮 ...
- Codeforces Round #573 (Div. 1)
Preface 军训终于结束了回来补一补之前的坑发现很多题目题意都忘记了 这场感觉难度适中,F由于智力不够所以弃了,E的话石乐志看了官方英文题解才发现自己已经胡了一大半就差实现了233 水平下降严重. ...
- Codeforces Round #573 (Div. 2)
A:Tokitsukaze and Enhancement 当时看错条件了..以为A>C>B>D.就胡写了判断条件. #include<bits/stdc++.h> us ...
随机推荐
- webdriver中判断元素是否存在的方法
selenium.webdriver中没有内置的判断元素是否存在的方法,所以定义一个方法,如果找到该元素则返回True,否则返回False: from selenium import webdrive ...
- PTA 7-20 表达式转换
转自:https://www.cnblogs.com/yuxiaoba/p/8399934.html 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.日常使用的算术表达式是采用中缀表示法,即二元 ...
- adb 打印kernel输出的log
一. linux 内核printk机制 1.1. Android内核是基于Linxu kernel的,因此其log机制也是通用的,在Android内核中使用printk函数进行Log输出.与 ...
- Laravel5.8自定义函数存放位置
1. 创建文件 app/helpers.php <?php // 示例函数 function foo() { return "foo"; } 2. 修改项目 composer ...
- filebeat开启自带模块收集日志如何辨别日志来源等
filebeat启动自带模块后,日志先输出到Redis中 比如开启了system模块日志和redis模块日志 在Redis中查看收集过来的日志时,可以看到如下的这些信息 system日志信息 { &q ...
- Exceptionless
参考 Exceptionless - .Net Core开源日志框架
- java io 文件读写操作
写: import java.io.*; String filePath= "F:\\test.txt"; FileWriter fwriter = null; fwriter = ...
- Js和Jquery实现ajax长轮询
众所周知,HTTP协议是无状态的,所以一次的请求都是一个单独的事件,和前后都没有联系.所以我们在解决网页实时聊天时就遇到一个问题,如何保证与服务器的长时间联系,从而源源不段地获取信息. 一直以来的方式 ...
- CentOS下配置Apache HTTPS
一.安装Apache支持SSL/TLS yum install mod_ssl openssl 二.创建证书 证书(Cerificate)的基本作用是将一个公钥和安全个体(个人.公司.组织等)的名字绑 ...
- Git 生成.gitinore忽略文件
Git 生成.gitinore忽略文件 CD到指定目录下: touch .gitinore .gitinore忽略文件 三种方法: # 以'#'开始的行,被视为注释.(#是注释的意思) # 忽略掉所 ...