每日一题·AC

news/2024/12/22 9:04:18/

2、小丽好朋友的生日快到了,她打算做一些折纸放在幸运罐中作为生日礼物。小丽计划总共 需要a颗星星以及b只纸鹤。现在市场上卖的到的星星纸(折小星星的专用纸)一张可以折c颗小星星,一张纸鹤纸(折纸鹤的专用纸)可以折d只小纸鹤。她准备一共买k张折纸,要优先满足星星纸的需求,剩余的再去买纸鹤纸,请你帮忙计算一下,买来的k张折纸能否满足小丽的折纸需求,能满足的话分别给出需要购买的星星纸和纸鹤纸的数量,不能的话则输出-1。若有满足条件的折纸方案,星星优先折叠,剩下的折纸都属于纸鹤。

输入格式 第一行输入一个整数T,表示共有T组情况需要判断。 接下来T行,每行包含5个整数a,b,c,d,k。 其中1<=T,a,b,c,d,k<=100

输出格式 输出T行,如果可以满足要求,输出两个整数x,y以空格分隔,分别表示需要采购的星星纸数量和纸鹤纸数量。 如果不存在合理方案,输出-1。

输入输出样列 输入样例1:

1
10 6 3 4 6

输出样例1:

4 2

输入样例2:

3
7 5 4 5 8
7 5 4 5 2
20 53 45 26 4

输出样例2:

2 6
-1
1 3

思路

首先,读取输入的组数T,并进行循环处理每一组情况。在每组情况中,读取需要的星星数量a、纸鹤数量b、星星纸折叠数量c、纸鹤纸折叠数量d以及可购买的折纸数量k。
​
接下来,使用函数panduan判断需要购买的星星纸数量,根据星星纸折叠数量c和需要的星星数量a计算出所需的星星纸张数t。如果需要购买的折纸数量k大于t,则进一步判断剩余的折纸能否满足纸鹤的需求。
​
如果剩余的折纸数量大于等于b所需的纸张数量,说明可以满足需求,输出所需的星星纸数量t和剩余的折纸数量k-t即可。否则,输出-1表示无法满足需求。
​
最后,循环结束后返回0,表示程序正常结束。

AC:

#include<stdio.h>
​
int panduan(int a,int b)//a/c可能是小数,而纸数为整数
{int t;if(a%b!=0){t=a/b+1;}else{t=a/b;}return t;
}
​
int main()
{int n;int a,b,c,d,k;scanf("%d",&n);while(n--){scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);int t=panduan(a,c);if(k>t){if((k-t)*d>=b){printf("%d %d\n",t,(k-t));}else{printf("-1\n");}}else{printf("-1\n");}}return 0;}

简化代码:

#include <stdio.h>
​
int main()
{int T;scanf("%d", &T);while (T--){int a, b, c, d, k;scanf("%d %d %d %d %d", &a, &b, &c, &d, &k);int x = (a + c - 1) / c; // 计算需要引入的星星纸数量if (x > k){printf("-1\n");}else{int y = (b + d - 1) / d * (k - x); // 计算需要的纸鹤纸数量printf("%d %d\n", x, y);}}return 0;
}
​

http://www.ppmy.cn/news/1145332.html

相关文章

初识Java 12-3 流

目录 终结操作 将流转换为一个数组&#xff08;toArray&#xff09; 在每个流元素上应用某个终结操作&#xff08;forEach&#xff09; 收集操作&#xff08;collect&#xff09; 组合所有的流元素&#xff08;reduce&#xff09; 匹配&#xff08;*Match&#xff09; 选…

mysql a表like b表的某个字段,mysql一个表的字段like另外一个表的字段

select c.FLOW_NAME,a.flow_id,a.prcs_id,a.prcs_name,b.DESCfrom bpm_process as a,bpm_variable as b,bpm_type as cwhere a.flow_idc.flow_id and b.DESC like %移动%and a.PRCS_ITEM like concat (%,b.uid ,%)

【计算机网络】UDP协议编写群聊天室----附代码

UDP构建服务器 x 预备知识 认识UDP协议 此处我们也是对UDP(User Datagram Protocol 用户数据报协议)有一个直观的认识; 后面再详细讨论. 传输层协议无连接不可靠传输面向数据报 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的…

JAVA String 和 String[][]互转的两种方法

第一种方法&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.40</version> </dependency>字符串转数组&#xff1a; String s "[[22,23,23],[1,10,20]]"…

Flink实现kafka到kafka、kafka到doris的精准一次消费

1 流程图 2 Flink来源表建模 --来源-城市topic CREATE TABLE NJ_QL_JC_SSJC_SOURCE ( record string ) WITH (connector = kafka,topic = QL_JC_SSJC,properties.bootstrap.servers = 172.*.*.*:9092,properties.group.id = QL_JC_SSJC_NJ_QL_JC_SSJC_SOURCE,scan.startup.mo…

深入理解强化学习——强化学习和有监督学习

分类目录&#xff1a;《深入理解强化学习》总目录 通过前文的介绍&#xff0c;我们现在应该已经对强化学习的基本数学概念有了一定的了解。这里我们回过头来再看看一般的有监督学习和强化学习的区别。以图片分类为例&#xff0c;有监督学习&#xff08;Supervised Learning&…

表达式转换

算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法&#xff0c;即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。 输入格式: 输入在一行中给出不含空格的中缀表达式&#xff0c;可包含、-、*、/以及左右…

【附代码】使用Shapely计算多边形外扩与收缩

文章目录 相关文献效果图代码 作者&#xff1a;小猪快跑 基础数学&计算数学&#xff0c;从事优化领域5年&#xff0c;主要研究方向&#xff1a;MIP求解器、整数规划、随机规划、智能优化算法 本文档介绍如何使用 Shapely Python 包 计算多边形外扩与收缩。 如有错误&…