去吧,皮皮虾

题意:  有 n 堆石子,每堆有 a[ i ] 个,然后每次 操作 可以选择任意一堆 石子,取走一个。 若你取完了之后,存在两堆石子,他们的个数一样多,你就输了( 包括两堆都是0个), 或者你不能取了,你也输了。

解: 1、若只有一堆,那就判奇偶就行了。

  2、若存在 至少 两对 相等个数的 堆, 或者 两堆个数 为0 的堆,或者3堆石子都相等,先手必败( 两对的话,至多只能 使一对,变成不等的。)

  3、 按升序排序,若存在两堆个数相等,都为 a,且有一堆的石子数为 a - 1 那么先生必败。  因为  你只能拿走一个,你拿走了一个,那你就和a - 1那堆相等了,你不拿,那你就和a那堆相等了。

    无论如何都会有两堆相等。

  4、若不存在上述情况,  那么,总的可以移动的步数是固定的。  按升序 排好后, 对于 第 i 堆,它能移动的步数 就是

     a[ i ] - i - 1,然后把总的可以移动的步数加起来 判断奇偶就行了。

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#define LL long long
#define ULL unsigned long long
#define rep(i,j,k) for(int i=j;i<=k;i++)
#define dep(i,j,k) for(int i=k;i>=j;i--)
#define INF 0x3f3f3f3f
#define mem(i,j) memset(i,j,sizeof(i))
#define make(i,j) make_pair(i,j)
#define pb push_back
#define Pi acos(-1.0)
using namespace std;
const int N = 2e5 + ;
LL a[N];
int main() {
int n;
scanf("%d", &n);
LL sum = ;
rep(i, , n) scanf("%I64d", &a[i]), sum += a[i];
if(n == ){
if(a[] % == ) puts("cslnb");
else puts("sjfnb"); return ;
}
sort(a + , a + + n);
int cnt = ;
rep(i, , n) {
if(a[i] == a[i - ]) {
cnt++;
if(i > && a[i - ] + == a[i]) {
puts("cslnb"); return ;
}
}
}
if(cnt >= || n >= && a[] == ) {
puts("cslnb"); return ;
}
sum -= n * (n - ) / ; ///0 + 1 + 2 + 3 + ……+ (n - 1) = n * ( n - 1) / 2;
if(sum % == ) {
puts("cslnb");
}
else {
puts("sjfnb");
}
return ;
}

最新文章

  1. Xcode8 上传完.ipa包 官网超过2天还没反应
  2. 初步认识Hive
  3. underscore的封装和扩展
  4. UBUNTU下FPT工具--lftp使用说明
  5. H5表单
  6. pycharm中的快捷键和简单设置
  7. 第三章 jQuery中的事件与动画
  8. Scrapy选择器的用法
  9. 下载Ext JS 5.1 gpl版本的方法
  10. java解析json数据用到的jar包
  11. CSS3 transform-style 属性
  12. Java中的代理机制
  13. Linux基础(四)网络设置
  14. in_array的三个参数
  15. WordPress主题开发: 制作文章页面single.php
  16. vcenter 5.1安装亲历
  17. JavaWeb 返回json数据的两种方式
  18. 在ubuntu中安装luci解决iwinfo.h No such file or directory问题
  19. Q - Phalanx
  20. Linux系统编程:线程控制

热门文章

  1. SpringBoot 启动失败 Failed to determine a suitable driver class 问题解决方案
  2. PHPstorm支持YAF框架代码自动提示
  3. Postman之简单使用
  4. 哈希表(Hash table)
  5. nginx入门,安装
  6. 移动端 app
  7. ios 动画:底部标签栏的概念设计
  8. 从命令行运行postman脚本
  9. 前端开发 | 尝试用Markdown写一下近几个月的总结
  10. LRU算法介绍和在JAVA的实现及源码分析