51nod 1613翻硬币
题目链接:51nod 1613 翻硬币
知乎上的理论解法http://www.zhihu.com/question/26570175/answer/33312310
本题精髓在于奇偶性讨论。
若 n 为奇数:
- 若 k 为偶数
无解
- 若 k 为奇数
p 为不小于 n/k 的最小奇数
若 n 为偶数:
- 若 k为偶数,且
- 若 k为奇数,且
p 为不小于 n/(n-k) 的最小偶数
- 若 k为偶数,且
p 为不小于 n/k 的最小整数
- 若 k为奇数,且
p 为不小于 n/k 的最小偶数
#include<stdio.h>
#include<math.h>
int main(){
int n, k, p;
scanf("%d %d", &n, &k);
if(n% ){
if(k% == ) printf("-1\n");
else{
p = ceil(n * ./ k);
if(p% == ) p++;
printf("%d\n", p);
}
}
else{
if(n/ < k && k < n - && k% == )
printf("3\n");
else if(n/ < k && k <= n - && k% ){
p = ceil(n * ./(n - k));
if(p% ) p++;
printf("%d\n", p);
}
else if(k <= n/ && k% == ){
p = ceil(n * ./ k);
printf("%d\n", p);
}
else{
p = ceil(n * ./ k);
if(p% ) p++;
printf("%d\n", p);
}
}
return ;
}
51nod 1613翻硬币的更多相关文章
- bzoj 3517: 翻硬币
3517: 翻硬币 Time Limit: 1 Sec Memory Limit: 128 MB Description 有一个n行n列的棋盘,每个格子上都有一个硬币,且n为偶数.每个硬币要么是正面 ...
- HDU 3537 (博弈 翻硬币) Daizhenyang's Coin
可以参考Thomas S. Ferguson的<Game Theory>,网上的博客大多也是根据这个翻译过来的,第五章讲了很多关于翻硬币的博弈. 这种博弈属于Mock Turtles,它的 ...
- hdu 3537(博弈,翻硬币)
题意:给定了每个正面朝上的硬币的位置,然后每次可以翻1,2,3枚硬币,并且最右边的硬币开始必须是正面朝上的. 分析: 约束条件6:每次可以翻动一个.二个或三个硬币.(Mock Turtles游戏) 初 ...
- 翻硬币|2013年蓝桥杯B组题解析第八题-fishers
翻硬币 小明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情形是:oooooo 如果同时翻转左 ...
- PREV-6_蓝桥杯_翻硬币
问题描述 小明正在玩一个“翻硬币”的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情形是:**oo***oooo 如果同时翻转左边的两个 ...
- HDU 3537 基础翻硬币模型 Mock Turtles 向NIM转化
翻硬币游戏,任意选3个,最右边的一个必须是正面.不能操作者败. 基本模型..不太可能自己推 还是老实记下来吧..对于单个硬币的SG值为2x或2x+1,当该硬币的位置x,其二进制1的个数为偶数时,sg= ...
- hdu 3537 翻硬币 每次能翻1个 或2个 或3个
N 枚硬币排成一排,有的正面朝上,有的反面朝上.我们从左开始对硬币按1 到N 编号. 第一,游戏者根据某些约束翻硬币,但他所翻动的硬币中,最右边那个硬币的必须是从正面翻到反面. 第二,谁不能翻谁输. ...
- 算法笔记_194:历届试题 翻硬币(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 小明正在玩一个“翻硬币”的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情 ...
- 蓝桥杯 历届试题 PREV-34 矩阵翻硬币
历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬 ...
随机推荐
- word 与 endnote 反应慢的小技巧
使用Word 2007/2010打开含有EndNote标注的文档时,Word反应速度会变慢,甚至出现“假死”状态,要等很长时间才能正常工作.问题出在Word的校正功能上,Word会对EndNote的标 ...
- git commit时message的问题
1: 在执行git commit的时候,有两种办法为该commit添加message信息一种是git commit -m 'your message'另一种是git commit会打开commit-e ...
- Strategy策略模式
策略模式定义了一系列算法,把它们一个个封装起来,并且使它们可相互替换.该模式可使得算法能独立于使用它的客户而变化.Strategy模式是行为模式,正因为他是一种行为模式,所以他不是用来解决类的实例化的 ...
- C/C++内存泄漏及检测 转
C/C++内存泄漏及检测 2011-02-20 17:51 by 吴秦, 30189 阅读, 13 评论, 收藏, 编辑 “该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏, ...
- Redis配置文件之————redis.conf配置及说明
基本设置 1. 备释当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写):1k =< 1000 bytes1kb =< 1024 by ...
- Java中JTree的简单案例
package ch12; import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; /** * Created by ...
- Python学习笔记8—语句
条件语句 有的程序里写的是 /usr/bin Python,表示 Python 解释器在/usr/bin 里面.但是,如果写成 /usr/bin/env,则表示要通过系统搜索路径寻找 Python 解 ...
- Java源码初学_LinkedHashMap
一.概述: LinkedHashMap是HashMap的子类,它的基本操作与HashMap相同,与之不同的是,它可以实现按照插入顺序进行排序.也可以通过在构造函数中指定参数,按照访问顺序排序(Link ...
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
Android 高手进阶(21) 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明地址:http://blog.csdn.net/xiaanming/article/detail ...
- spring mvc获取request HttpServletRequest
1.最简单的方式(注解法) 2. 直接的方法,参数中添加(response类似) package spittr.web; import static org.springframework.web.b ...