DreamGrid is playing the music game Live Love. He has just finished a song consisting of n notes and got a result sequence A​1​​,A​2​​,...,A​n​​ (A​i​​∈ {PERFECT, NON-PERFECT}). The score of the song is equal to the max-combo of the result sequence, which is defined as the maximum number of continuous PERFECTs in the sequence.

Formally speaking, max-combo(A)=max { k | k is an integer and there exists an integer i (1≤i≤n−k+1) such that A​i​​=A​i+1​​=A​i+2​​=...=A​i+k−1​​= PERFECT }. For completeness, we define max(∅)=0.

As DreamGrid is forgetful, he forgets the result sequence immediately after finishing the song. All he knows is the sequence length n and the total number of PERFECTs in the sequence, indicated by m. Any possible score s he may get must satisfy that there exists a sequence A​′​​ of length n containing exactly m PERFECTs and (n−m) NON-PERFECTs and max-combo(A​′​​)=s. Now he needs your help to find the maximum and minimum s among all possible scores.

Input

There are multiple test cases. The first line of the input contains an integer T (1≤T≤100), indicating the number of test cases. For each test case:

The only line contains two integers n and m (1≤n≤10​3​​, 0≤m≤10​3​​, m≤n), indicating the sequence length and the number of PERFECTs DreamGrid gets.

Output

For each test case output one line containing two integers s​max​​ and s​min​​, indicating the maximum and minimum possible score.

Sample Input
5
5 4
100 50
252 52
3 0
10 10
Sample Output
4 2
50 1
52 1
0 0
10 10
Hint

Let's indicate a PERFECT as P and a NON-PERFECT as N.

For the first sample test case, the sequence (P,P,P,P,N) leads to the maximum score and the sequence (P,P,N,P,P) leads to the minimum score.

题目意思:对于t组样例,每一组一共有n个音符,m个音符属于一种,剩下的音符都是不同种的,出现连续同一种音符的个数作为得分,求最大得分和最小得分。

解题思路:其实我们可以这样想一共会有x=n-m+1种音符,最大得分必然是相同音符的数量也就是m,而对于最小得分:如果音符的种类x大于等于同一种的数量m,

那么同一种音符便可以被不同种的音符一一分割开;如果音符的种类小于同一种的数量m,那么想要得到最小连续同一类的音符数,可以理解为将m利用不同种类的音符划分为若干部分。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7     int t,a,b,ans,x;
 8     scanf("%d",&t);
 9     while(t--)
10     {
11         scanf("%d%d",&a,&b);
12         x=a-b+1;
13         if(b==0)
14         {
15             ans=0;
16         }
17         else if(x>=b)
18         {
19             ans=1;
20         }
21         else if(x<b)
22         {
23             if(b%x!=0)
24             {
25                 ans=b/x+1;
26             }
27             else
28             {
29                 ans=b/x;
30             }
31         }
32         printf("%d %d\n",b,ans);
33     }
34     return 0;
35 }

转载于:https://www.cnblogs.com/wkfvawl/p/9655906.html

Live Love(思维)相关推荐

  1. 揭富人与穷人21个不同思维 看富豪如何脱颖而出

    <富人是怎么想的>(How Rich People Think)的作者Steve Siebold曾在近30年里采访世界各地的富豪,看究竟是什么让富豪从普通人中站出来. 他发现这和金钱基本没 ...

  2. 学习,思维三部曲:WHAT、HOW、WHY

    学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段.下面我把这三个步骤 ...

  3. Linux架构思维导图

    Linux架构思维导图 GUI(Graphical User Interface,图形用户界面) Linux 学习路径 软件框架 Linux 桌面介绍 FHS:文件系统目录标准 Linux 需要特别注 ...

  4. github 思维导图开元软件_画思维导图记笔记的工具软件

    思维导图是很多人在做笔记的时候都会用到的一种记录方式,使用思维导图可以简单有效的表达发散性思维,能够协助人们在各种因素间平衡展开思考,从而提升自己笔记的含金量和工作效率,有没有画思维导图记笔记的工具软 ...

  5. 大数据概念思维导图_思维导图|数据化风控(信用评分建模教程)

    本文将按<数据化风控--信用评分建模教程>行文逻辑,并结合相关参考材料,为大家梳理本书涉及的重点知识,也算是自己读书笔记分享.有需要的同学可先收藏.点赞,以便回顾学习和吸收,当然,如果愿意 ...

  6. puml绘制思维导图_如何用ProcessOn画出漂亮的思维导图

    说到绘制思维导图,很多人可能都知道XMind,但不一定了解ProcessOnProcessOn - 免费在线作图,实时协作,总以为后者绘制流程图很强大,殊不知其在思维导图方面也有很强大的功能. 好工具 ...

  7. 计算机思维采用抽象和分解,凤凰机器人----什么是计算思维?凤凰机器人的编程课中是如何体现它的?...

    对于生活在科技和智能自动化时代的孩子们来说,理解计算机的思维方式,运用计算思维去解决生活中的问题,被认为和听.说.读.写.算一样,是每个人必备的思维能力.然而,到底什么才是计算思维呢? 计算思维是一种 ...

  8. tp3 普通模式url模式_《终身成长》:三个步骤打造成长型思维模式,普通人也可以成功...

    罗伯特很小是一个聪明的孩子,父母以他为傲,经常夸奖他,对他表达爱.结果他没有考上一个纽约第1名的幼儿园,父母就不像以前那样对他了,不会再经常表达爱,夸奖他,对他就越来越冷淡,他在父母眼里是一个失败者, ...

  9. 大学计算机思维导图_我学计算机,也会修电脑

    "你学啥专业?" "计算机科学." "帮我修电脑吧." "--" 现实中-- 金融专业的被问炒股 土木专业的被问装修 天 ...

  10. Data - 数据思维 - 上篇

    1 - 概念与定义 如果分析思维是一种结构化思考的体现,那么数据分析思维(简称数据思维)则是以数据为依托的结构化分析方式. 不同于"我觉得"."以前是怎样".& ...

最新文章

  1. 学习小米附加和大润发飞牛模式
  2. 为何需要Android组件化,如何搭建?
  3. ASP.NET站点性能提升-压缩
  4. 第一篇文章,,测试效果,
  5. Linux下通过进程名查看其占用端口
  6. python自动登录校园网_免费自动登录国科大校园网python脚本
  7. 作为开发者发布小程序_如何建立个人品牌作为新开发者
  8. php onchange,将PHP变量传递给ONCHANGE事件上的javascript
  9. Linux 堆分析,堆排序的分析及实现
  10. Java入门级项目 汽车租赁系统
  11. Java全栈开发---Java ERP系统开发:商业ERP(十三)CXF框架,物流BOS系统开发
  12. python批量合并txt文件内容,Python 批量合并多个txt文件的实例讲解
  13. python课程的中期报告范文_毕业论文中期报告范文(毕业论文中期检查范文8篇)...
  14. 英文阅读积累 - 2019年4月
  15. 相片尺寸怎么修改?手机如何整体缩小图片尺寸?
  16. devmem读写物理内存
  17. IT民工实际工作的一天
  18. 计算机二级office题库APP_2019最新题库_计算机二级office选择题
  19. 编译原理(龙书):第四章部分题目参考答案
  20. 未明学院:Numpy核心要点有哪些?3张思维导图帮你梳理

热门文章

  1. 灵活高效可支撑复杂业务系统的BPM平台
  2. YouTorrent - 全新的“实时”BT种子搜索站
  3. SAP那些事-职业篇-25-顾问的价值
  4. python椭圆曲线加密算法_ECC椭圆曲线加密学习笔记
  5. cache stm32h7_【STM32H7教程】第24章 STM32H7的Cache解读(非常重要)
  6. 中英文字数统计以及信息熵的计算
  7. 简单说 通过CSS的滤镜 实现 火焰效果
  8. 添加网站验证,让搜索引擎收录你的网站
  9. [数据仓库复习] —— 维度数据模型
  10. Facebook广告投放有哪些比较好的策略?