题目:现在有n个人需要依次使用1个洗手池洗手,进行一步洗手需要1单位时间。他们每个人至少会进行一步洗手,但是却不一定进行了完整的七部洗手。

现在你知道了他们总共的洗手时间为t,请你推测他们有多少人进行了完整的七步洗手。

输入格式:一行两个整数n,t,依次代表人数和总洗手时间。

输出格式:一行两个整数,依次代表进行了完整七步洗手人数的最小值和最大值。

首先,最大值应该是比较容易想到的,用总时间t除以7再向下取整。设有一队伍站着的就是这些洗手的人,那么这种情况就是假设第一个人就进行了完整的七步洗手,第二个也是,第三个也是。。。直到检测完第i个人以后发现剩下的时间不足7时,那么前面i就是最大值。

最小值怎么求呢?

先假设他们都没有进行完整的七步洗手,从最不济的情况考虑,他们都洗了六步,那么总时间就是6*n,如果6*n等于t,那么他们就都洗了六步,最小值为0。如果t还比6n小,那么最小值就更是0了,这代表可能其中有人洗了五步,四步,或更少,这样总时间就比6n少了。也就是说,如果6n>=t,那么最小值是0;

再处理6n<t的情况。这种情况代表至少有一个人洗了七步。那么什么条件代表至少有、两个,三个甚至更多人洗了七步呢?

先假设已经确定有一个人洗了7步。用下图表示:【  】代表未确定洗手步骤的人。【n】表示已确定的洗手步骤为n的人。

【  】【  】【  】【  】【  】【  】【  】【  】 【7】

此时可以发现,洗了七步的人洗完以后,时间还剩t-7.人数还剩n-1。

此时就容易了。接续上面的思想,假设其余的n-1个人全部洗了6步:

【6】【6】【6】【6】【6】【6】【6】【6】 【7】

|<--------n-1个人,实际时长:6(n-1)--------->|

那么n-1个人的总时长就是6(n-1)。实际时长是t-7,如果6(n-1)==t-7,那么他们n-1个人就真的全部洗了六步(最不济的情况)!6(n-1)>t-7就更不用说了,此时代表可能其中有人洗了五步,四步,或更少,这样实际总时间就比6(n-1)少了。那么,如果6(n-1)<t-7,就代表除去已经确定的七步洗手的一个人以外,还有至少一个人洗了七步。

接下来就很简单了。已经确定有两个人洗了七步的情况:

【  】【  】【  】【  】【  】【  】【  】【7】【7】

“最不济的情况”:

【6】【6】【6】【6】【6】【6】【6】【7】 【7】

|<-----n-2个人,实际时长:6(n-2)---->|

当6(n-2)<t-2*7时,代表除去已经确定的七步洗手的两个人以外,还有至少一个人洗了七步。

以此类推,设已经确定的七步洗手人数为i,那么如果6(n-i)<t-7i,那么i还不够,要自增1.直到6(n-i)>=t-7i为止。这样的话,剩余的人中最不济的情况下不会有人洗了七步。“全部n个人都洗了六步”的那种情况下(一开始那种),i=0。

程序如下:

 #include<iostream>
using namespace std;
int main()
{
int people,time;
cin>>people>>time;
int max=time/; //这就是最大值
int min=;
while((people-min)*<time-*min) //还有人洗了七步
{
min++;
}
cout<<min<<" "<<max;
return ;
}

T117897 七步洗手法 / PJT1(洛谷)的更多相关文章

  1. 洛谷 P1169 [ZJOI2007]棋盘制作 (悬线法)

    和玉蟾宫很像,条件改成不相等就行了. 悬线法题目 洛谷 P1169  p4147  p2701  p1387 #include<cstdio> #include<algorithm& ...

  2. 洛谷P4526 【模板】自适应辛普森法2

    P4526 [模板]自适应辛普森法2 洛谷传送门 题目描述 计算积分 保留至小数点后5位.若积分发散,请输出"orz". 输入格式 一行,包含一个实数,为a的值 输出格式 一行,积 ...

  3. 洛谷 P5221 Product 题解

    原题链接 庆祝!第二道数论紫题. 推式子真是太有趣了! \[\prod_{i=1}^n \prod_{j=1}^n \frac{\operatorname{lcm}(i,j)}{\gcd(i,j)} ...

  4. 最小表示法模板(洛谷P1368 工艺)(最小表示法)

    洛谷题目传送门 最小表示是指一个字符串通过循环位移变换(第一个移到最后一个)所能得到的字典序最小的字符串. 因为是环状的,所以肯定要先转化为序列,把原串倍长. 设决策点为一个表示法的开头.比较两个决策 ...

  5. 2018.07.17 洛谷P1368 工艺(最小表示法)

    传送门 好的一道最小表示法的裸板,感觉跑起来贼快(写博客时评测速度洛谷第二),这里简单讲讲最小表示法的实现. 首先我们将数组复制一遍接到原数组队尾,然后维护左右指针分别表示两个即将进行比较的字符串的头 ...

  6. 【题解】洛谷P1169 [ZJOI2007] 棋盘制作(坐标DP+悬线法)

    次元传送门:洛谷P1169 思路 浙江省选果然不一般 用到一个从来没有听过的算法 悬线法: 所谓悬线法 就是用一条线(长度任意)在矩阵中判断这条线能到达的最左边和最右边及这条线的长度 即可得到这个矩阵 ...

  7. 洛谷4525 & 4526:【模板】自适应辛普森法——题解

    参考:https://phqghume.github.io/2018/05/19/%E8%87%AA%E9%80%82%E5%BA%94%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%B ...

  8. 洛谷P4525 【模板】自适应辛普森法1与2

    洛谷P4525 [模板]自适应辛普森法1 与P4526[模板]自适应辛普森法2 P4525洛谷传送门 P4525题目描述 计算积分 结果保留至小数点后6位. 数据保证计算过程中分母不为0且积分能够收敛 ...

  9. 洛谷 P1736 创意吃鱼法

    题目描述 题目链接:https://www.luogu.org/problemnew/show/P1736 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢( ...

随机推荐

  1. ABP在MultipleDbContext也就是多库的场景下发布后异常“Could not find content root folder”问题处理

    ABP多库支持 ABP支持多库的方案在abp的案例中aspnetboilerplate-samples中给了现成的demo,其中MultipleDbContextDemo是EF的相关针对dotnet的 ...

  2. 在Linux中执行.sh脚本,异常/bin/sh^M

    在Linux中执行.sh脚本,异常/bin/sh^M 在linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分 ...

  3. 谈谈模型融合之一 —— 集成学习与 AdaBoost

    前言 前面的文章中介绍了决策树以及其它一些算法,但是,会发现,有时候使用使用这些算法并不能达到特别好的效果.于是乎就有了集成学习(Ensemble Learning),通过构建多个学习器一起结合来完成 ...

  4. Vue____实现本地代码推送到云端仓库的相关操作

    项目初始化搭建完毕,每进行一个功能模块开发的必备操作,目的是方便协同开发以及备份代码 一.每开发一个新功能,都应该创建一个新分枝,待该功能模块开发完成以后,再合并到主分支master中,具体步骤如下: ...

  5. seek方法补充

    seek 默认模式是从文件的开始移动光标,一共有0.1.2三种模式 f=open('seek.txt','r',encoding='utf-8') print(f.tell()) f.seek(10, ...

  6. echart环形图制作及出现的一些问题总结

    环形图的形成其实就是echarts中的饼图pie,控制饼图的内圈半径和外圈半径来形成环形的效果!下面记录的问题是在开发中出现发现的,因为在网上找到了利用阴影来做下面的图: 说明: 由于代码比较长,不能 ...

  7. 电脑端TIM登录时记住密码

    为什么每次登录TIM时点了记住密码,下次再登录时还是记不住呢? 不是扫码就是还得输出密码,为这事愁了好多次, 最近终于发现如何记住密码了... 进入登录界面以后,点击左下角这个小图标>> ...

  8. 双系统,重装windows 无法进入Windows安装界面

    解决办法 windows引导并没有被更新 进入linux 更新grub sudo update-grub 然后重启电脑,进行下一步安装 原理 grub是引导操作系统的程序,它会根据自己的配置文件,去引 ...

  9. FTP服务器红帽5.4搭建图文教程!!!

    FTP服务器搭建 服务器的环境 红帽5.4 vm15 挂载光盘 mount mount -t iso9660 设备目录 /mnt 表示挂载 软件包安装 FTP服务器安装包命令: rpm -ivh /m ...

  10. 入门Grunt前端构建工具

    1. 全局安装 grunt:(倘若之前电脑安装过,则跳过此步骤) $ cnpm install -g grunt-cli 2. 作为项目的开发依赖(devDependencies)安装: (此步骤会自 ...