CF Gym 100637B Lunch(拆分子问题)
题意:在一条狭窄的沼泽上有一列数量为n的连续荷叶,编号为1-n。有一只蛤,在边s号荷叶上,其他荷叶上苍蝇,哈可以跳到相邻的荷叶上,或者越过一片荷叶,跳完以后原来的荷叶会沉,目标是f荷叶,在跳到f荷叶之前要吃掉其他所有的苍蝇。在这个前提下,希望尽量少跳相邻的荷叶,输出跳相邻荷叶的次数。
题解:分析先考虑一般情况

s和f把区间分成了三段,首先看左区间。由于不可能跳过连续两片荷叶,那么最后一定是要落在s左边相邻的位置上,那么对于左边的区间等效为一个子问题:

右区间和左边是对称的,情况类似,
如果左区间存在的话,那么中间区间的s应该加1,类似的,如果右区间存在,那么f应该减1
则中间区间的问题等效为:
当然如果中间没有格子的话,而且两边都有,那么f会叠加到s‘,这时候是无解的。

接下来我们来分析这些子问题:
对于第一个子问题:最多跳一次,先跳奇数位置,到跳到头了跳一次相邻位置变成偶数位置在跳回来。
对于第二个:

由于在左边跳完之前是不能跳相邻格子的,否则出现一个大于1的间隔,而且可以发现,每三个格子最少是跳一次,而且跳完了以后和之前的问题性质类似。
最后小于3的分别讨论一下就ok了。
#include<cstdio>
#include<cmath>
#include<vector>
#include<map>
#include<set>
#include<algorithm> using namespace std;
typedef long long ll; int main()
{
int n,s,f;
scanf("%d%d%d",&n,&s,&f);
if(f<s) swap(f,s); if(s+==f){
if(s>&&f<n){
printf("-1"); return ;
}
printf(""); return ;
}
int ans = ;
if(s>) ans++,s++;
if(f<n) ans++,f--;
ans += (f-s)/+(f-s)%;
printf("%d",ans);
return ;
}
CF Gym 100637B Lunch(拆分子问题)的更多相关文章
- Gym - 100637B Lunch 规律
题意:n个点,给定起点和终点,可以每次可以走一格或两格,走一格则需要一个代价,每个格子只能走一次,问从起点到终点并经过每一个点的最小代价 思路:这题我没看出什么道理,先打了个暴力,结果发现了个相当坑的 ...
- CF Gym 102028G Shortest Paths on Random Forests
CF Gym 102028G Shortest Paths on Random Forests 抄题解×1 蒯板子真jir舒服. 构造生成函数,\(F(n)\)表示\(n\)个点的森林数量(本题都用E ...
- 【数据库】本地KEGG数据库如何拆分子库?
目录 KEGG本地库文件 按物种拆分KEGG数据库 1.获得物种分类信息 2.获得物种分类的序列信息并建库 3.获得物种分类的K-ko对应文件 根据相似性原理,序列相似,功能相似,所有功能注释无非是用 ...
- Codeforces Gym 100637B B. Lunch 找规律
B. Lunch Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100637/problem/B Des ...
- CF gym 101933 K King's Colors —— 二项式反演
题目:http://codeforces.com/gym/101933/problem/K 其实每个点的颜色只要和父亲不一样即可: 所以至多 i 种颜色就是 \( i * (i-1)^{n-1} \) ...
- cf Gym 101086M ACPC Headquarters : AASTMT (Stairway to Heaven)
题目: Description standard input/output As most of you know, the Arab Academy for Science and Technolo ...
- CF Gym 100685A Ariel
传送门 A. Ariel time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- CF Gym 100685E Epic Fail of a Genie
传送门 E. Epic Fail of a Genie time limit per test 0.5 seconds memory limit per test 64 megabytes input ...
- CF GYM 100703A Tea-drinking
题意:龙要制作n个茶,每个茶的配方是一个字符串,两个字符串之间有一个差值,这个差值为两个字符串每个对应字母之间差的绝对值的最大值,求制作所有茶时获得的所有差值中的最大值. 解法:克鲁斯卡尔.将茶的配方 ...
随机推荐
- 欢迎来到GIS思考者的博客www.gisthinker.com
我是一名GIS爱好者,这是我的个人博客,欢迎点击: GIS思考者:www.gisthinker.com
- 使用PowerShell创建SSAS Role
PowerShell, SSAS, Role, DatabasePermission, Cube, Dimension, CubePermission, CubeDimensionCube 在SSAS ...
- js获取网页上选中的部分,包含html代码
function getSelectedContents(){ if (window.getSelection) { //chrome,firefox,opera var ra ...
- photoshop cc 2014 下载安装及汉化资源及切图简要使用教程
这是百度经验上一个pscc 2014 版本的下载安装汉化教程,亲测有效: http://jingyan.baidu.com/article/647f0115bce3847f2148a80c.html ...
- ubuntu关机重启命令
重启命令 : 1.reboot 2.shutdown -r now 立刻重启 3.shutdown -r 10 过10分钟自动重启 4.shutdown -r 20:35 ...
- java设计模式-----7、装饰模式
首先,什么是装饰者模式呢??? 装饰( Decorator )模式又叫做包装模式.通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案.他是23种设计模式之一,英文叫Decorator ...
- Oracle数据库基本操作 (五) —— 使用java调用存储过程
一.环境准备 登录Oracle数据库scott账号,利用emp进行操作. 1.创建 proc_getyearsal 存储过程 -- 获取指定员工年薪 create or replace procedu ...
- 解决ImmediateDeprecationError 用Python获取Yahoo数据
最近正在看用 python 进行数据处理的内容,很多教程都会用 pandas 去抓取金融数据.我也尝试跑教程上的示例代码以抓取数据. 本文着重介绍遇到的问题以及解决方法. 注:我使用的是 Python ...
- 通用CSS命名规范
一.文件命名规范 样式文件命名主要的 master.css布局,版面 layout.css专栏 columns.css文字 font.css打印样式 print.css主题 themes.css [/ ...
- python,tensorflow线性回归Django网页显示Gif动态图
1.工程组成 2.urls.py """Django_machine_learning_linear_regression URL Configuration The ` ...