POJ 1740
时间:2020-05-28
本文章向大家介绍POJ 1740,主要包括POJ 1740使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
POJ 1740
先手必败状态为 偶数堆且为从小到大排序后(1,2)相等,(3,4)相等...,可以理解为每一堆都有与它对称的一堆
解释:在这种情况下,先手无论什么操作,后手都可以执行对称的操作,从而维持先手必败状态,而且总数量是减少的,所以先手必败
其他状态都是先手必胜状态
如果为奇数堆
解释:先从小到大排序,然后用最大的那一个填平所有(1,2),(3,4)...之间的差距,补完之后多出的部分全拿走。
证明能填满:看这个图,红色区间指需要填平的地方,因为已经排序了,所以它们不会重叠,总长度加起来不会超过最大的长度
如果为偶数
解释:先从小到大排序,然后用(最大的-最小的)填平所有(1,2),(3,4)...之间的差距,补完之后多出的部分全拿走。
证明同理。
1 #include <bits/stdc++.h> 2 #define inf 2333333333333333 3 #define N 1000010 4 #define p(a) putchar(a) 5 #define For(i,a,b) for(int i=a;i<=b;++i) 6 7 using namespace std; 8 int n,flag; 9 int a[N]; 10 void in(int &x){ 11 int y=1;char c=getchar();x=0; 12 while(c<'0'||c>'9'){if(c=='-')y=-1;c=getchar();} 13 while(c<='9'&&c>='0'){ x=(x<<1)+(x<<3)+c-'0';c=getchar();} 14 x*=y; 15 } 16 void o(int x){ 17 if(x<0){p('-');x=-x;} 18 if(x>9)o(x/10); 19 p(x%10+'0'); 20 } 21 22 signed main(){ 23 while(cin>>n && n){ 24 flag=0; 25 For(i,1,n) in(a[i]); 26 if(n&1){ 27 o(1);p('\n'); 28 continue; 29 } 30 else{ 31 sort(a+1,a+n+1); 32 for(int i=2;i<=n;i+=2) 33 if(a[i]!=a[i-1]){ 34 flag=1; 35 break; 36 } 37 if(flag) o(1); 38 else o(0); 39 p('\n'); 40 } 41 } 42 return 0; 43 }
原文地址:https://www.cnblogs.com/war1111/p/12978730.html
- 基于JQuery EasyUI的WebMVC控件封装(含源码)
- Android系统源码分析-JNI
- EntityFrameWork实现部分字段获取和修改(含源码)
- 基于Ado.Net的日志组件
- Do you kown Asp.Net Core -- 配置Kestrel端口
- 【翻译】在Visual Studio中使用Asp.Net Core MVC创建第一个Web Api应用(二)
- 微信快速开发框架(一)-- 对微信公众平台开发的消息处理
- 微信快速开发框架(二) -- 快速开发微信公众平台框架---简介
- LayoutInflater 布局渲染工具原理分析
- 使用Keras在训练深度学习模型时监控性能指标
- 微信快速开发框架(四)-- 体验微信公众平台快速开发框架
- AsyncTask源码解析
- 微信快速开发框架(五)-- 利用快速开发框架,快速搭建微信浏览博客园首页文章
- 对于小批量梯度下降以及如何配置批量大小的入门级介绍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python实战之特定文本提取,挑战高效办公的第一步
- 【剑指Offer】调整数组顺序使奇数位于偶数前面
- 【剑指Offer】链表中倒数第 k 个节点
- 【剑指Offer】调整数组顺序使奇数位于偶数前面
- 【剑指Offer】复杂链表的复制
- 【剑指Offer】二叉树中和为某一值的路径
- 【剑指Offer】二叉搜索树的后序遍历序列
- 【剑指Offer】Ⅲ. 从上到下打印二叉树
- scRepertoire||单细胞免疫组库分析:R语言应用(二)
- 【剑指Offer】Ⅱ. 从上到下打印二叉树
- 【剑指Offer】I. 从上到下打印二叉树
- C#还能这么玩?“诺基亚大屏独显计算器”来咯!
- 【剑指Offer】栈的压入、弹出序列
- 【剑指Offer】包含min函数的栈
- 【剑指Offer】顺时针打印矩阵