[Noi online-j]T1 切蛋糕

  • 题面
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例
  • 解析
  • 代码

题面

题目描述

Alice、Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕。
三个人的需求量分别为a,b,ca,b,ca,b,c,现在请你帮他们切蛋糕,规则如下:
每次切蛋糕可以选择蛋糕的任意一条直径,并沿这条直径切一刀(注意切完后不会立刻将蛋糕分成两部分)。
设你一共切了 nnn 刀,那么你将得到 2n2n2n 个扇形的蛋糕(特别地,切了 000 刀被认为是有一个扇形,即整个圆形蛋糕),将这些蛋糕分配给 Alice,Bob 和 Cindy,要求每个扇形蛋糕只能完整地分给一个人。
三人分到的蛋糕面积比需要为 a:b:ca:b:ca:b:c(不保证是最简比例,且如果 a:b:ca:b:ca:b:c 中某个数为 000,表示那个人不吃蛋糕)。
为了完成这个任务,你至少需要切几刀?

输入格式

本题单个测试点包含多组数据。
第一行包含一个整数 TTT,表示数据组数。
接下来 TTT 行,每行包含三个整数 a,b,ca,b,ca,b,c,表示三人的需求量。

输出格式

输出 TTT 行,第 iii 行的输出表示第 iii 组数据中你至少需要切蛋糕的次数。

样例

in

6
0 0 8
0 5 3
9 9 0
6 2 4
1 7 4
5 8 5

out

0
2
1
2
3
2

样例解释

数据范围与提示
30%30\%30%的数据满足:a=b=0a=b=0a=b=0。
60%60\%60% 的数据满足:a=0a=0a=0。
100%100\%100%的数据满足:1≤T≤104,0≤a,b,c≤1081\le T\le 10^4,0\le a,b,c\le 10^81≤T≤104,0≤a,b,c≤108 ,保证 a+b+c>0a+b+c>0a+b+c>0。

解析

看到TGT1多项式,我把这题当数论做了好久
可以易证,3个人最多只要切3刀就可以实现任意比值:

然后就来讨论特殊情况:(假设A≤B≤CA\le B\le CA≤B≤C)

  1. 当A=0A=0A=0时:两线重合,切两次
  2. 当A=B=0A=B=0A=B=0时:不用切
  3. 当A+B=CA+B=CA+B=C时
    3.1 A≠0A \not=0A​=0:切两次
    3.2 A=0A = 0A=0:切一次
  4. a=b&b≠ca=b \& b\not=ca=b&b​=c:

    综上所述这是道分类讨论结论题
if(a==0){if(b==0){print(0);}else if(b==c){print(1);}else {print(2);}
}
else if(a==b||b==c){print(2);}
else {if(a+b==c){print(2);}else{print(3);}
}

代码

#include<bits/stdc++.h>
using namespace std;
long long N,x[3],a,b,c;
void print(long long a){printf("%lld\n",a);}
int main(){scanf("%lld",&N);for(int i=1;i<=N;i++){scanf("%lld%lld%lld",&x[0],&x[1],&x[2]);sort(x,x+3);a=x[0],b=x[1],c=x[2];if(a==0){if(b==0){print(0);}else if(b==c){print(1);}else {print(2);}}else if(b==c||a==b){print(2);}else {if(a+b==c){print(2);}else{print(3);}}}return 0;
}

[Noi online-j]T1 切蛋糕相关推荐

  1. 【寒假每日一题】洛谷 P7471 [NOI Online 2021 入门组] 切蛋糕

    题目链接:P7471 [NOI Online 2021 入门组] 切蛋糕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 Alice.Bob 和 Cindy 三个好朋友得到 ...

  2. 洛谷刷题C语言:切蛋糕、概率、Bridž、NOTE、DOMINO

    记录洛谷刷题C语言qaq [NOI Online 2021 入门组] 切蛋糕 题目描述 Alice.Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕. 三个人的需求量分别为 ...

  3. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——A题 切蛋糕

    题目描述 龙龙有一块蛋糕,现在他想将蛋糕平均切成k块,分给他的k名hxd.但是不幸的是,因为龙龙不擅长切蛋糕,他每一次只能将一块蛋糕平均分成两份.例如,将一块大小为1的蛋糕分割成两块大小为1/2的蛋糕 ...

  4. 切蛋糕(洛谷P1714)

    切蛋糕 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大, ...

  5. 算法实践:切蛋糕(动态规划)

    切蛋糕 描述 有一块矩形蛋糕,宽和高分别是整数w.h.现要将其切成m块小蛋糕,每个小蛋糕都必须是矩形.且宽和高均为整数.切蛋糕时,每次切一块蛋糕,将其分成两个矩形蛋糕.请计算:最后得到的m块蛋糕中,最 ...

  6. 【第一周补题】:切蛋糕

    问题可以简化成有一个 n × n × n n\times n \times n n×n×n大小的正方体,以一个顶点为原点建立三维坐标系,以相连接的三条棱为三个坐标轴. 假设切蛋糕的刀面,必定与三个坐标 ...

  7. zoj 3537 cake 切蛋糕 区间DP+凸包+递归 最优三角形剖分

    题意:给出一些点表示多边形蛋糕的定点的位置(如果蛋糕是凹多边形就不能切),切蛋糕时每次只能在顶点和顶点间切,每一次切蛋糕都有相应的代价,给出代价的公式,问把蛋糕切成多个三角形的最小代价是多少 由于有可 ...

  8. 湖大程序设计作业 控制台动画-切蛋糕

    [题目描述] 利用上次小班第五题的黑框绘制函数功能,绘制一张方布.方布上放着小明的正方形蛋糕,由不同的颜色和不同大小的方块组成.每次延时一秒后,绘制出分掉某块后的方布和蛋糕图形.最终在方布上显示一个数 ...

  9. 漫画:有趣的 “切蛋糕“ 问题

    -----  第二天  ----- 举个例子: 我们有5块蛋糕, 蛋糕的大小分别是 5,17,25,3,15 我们有7位顾客, 他们的饭量分别是 2,5,7,9,12,14,20 (每个蛋糕大小和顾客 ...

  10. AI在中国,还没到抢切蛋糕的时候

    李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI 他们中的不少名字,之前并不广为人知. 刘全全.王宇杰.王昌宝.帅靖文.张顺丰.蒋尚达.余革年.闵可锐.宋洪伟.李晓普.张晓伟.王峰.董倩倩 ...

最新文章

  1. 整合NHibernate到Spring.Net (之一)
  2. 海康设备字母编号含义 H5:0,H7:1,KT2:2,G5:3
  3. Java Web 程序设计----基于SSM框架(正在更新中)
  4. Java AOP研究之how is my aop2 method called
  5. CF 1529C Parsa‘s Humongous Tree
  6. spring mvc 实现单文件 || 多文件上传
  7. 服务器怎么打开本地电脑文件夹,如何在云服务器上打开本地文件夹
  8. Linux的进程/线程/协程系列4:进程知识深入总结:上篇
  9. C++新特性探究(四):Raw String Literals
  10. 屏幕监控中捕获鼠标位置信息
  11. 减速箱箱体尺寸是怎样计算的_手把手教你解剖减速机
  12. MixGo V1.0 发布,混合型高性能 Go 框架
  13. C/C++ 高质量编程--内存,二重指针,指针的高级使用解析 3
  14. Python分词及词性划分
  15. python repr函数_python的str和repr函数
  16. xp进入win7计算机要密码怎么设置密码,XP系统设置直接跳过密码的多种方法
  17. EGPU use in NUC about ubuntu20.04.5
  18. 【华为思科】访问web服务器
  19. STC89C52单片机
  20. 小苹果活动助手1.27最新版电脑版

热门文章

  1. 142Echarts - 矩形树图(Disk Usage)
  2. 贝叶斯神经网络 BNN
  3. 屏幕刷新频率怎么更改?
  4. gPTP与PTP理解资料参考
  5. 推荐一个特别好用的软件,简直就是懒人神器,强迫症的福音
  6. GitHub学生优惠:repl.it 使用--Python爬虫示例
  7. python获取键盘按键键值_python获取键值
  8. java 实现:求有序数组绝对值最小的数
  9. 17.半拗(小拗)可救可不救
  10. 关于清华大学C语言门事件