A70447 | 买木头
来源编程题
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
有 n 个木材供应商,每个供货商有长度相同一定数量的木头。长木头可以锯短,但短木头不能接长。有一个客人要求 m 根长度相同的木头。要求计算出,此时供货商提供的木头满足客人要求的最长的长度是多少。
例如 n=2,m=30,两个供货商的木头为
12,10 第 1 个供货商的木头长度为 12 ,共有 10 根;
5,10 第 2 个供货商的木头长度为 5 ,共有 10 根。
计算的结果为 5 ,即长度为 12 的木头一根可锯出两根长度为 5 的木头,多余的无用,长度为 5 的木头不动,此时可得到 30 根长度为 5 的木头。
输入格式
整数 n,m,L_1,S_1 (1≤n≤10000,1≤m≤1000000,1≤L_1≤10000,1≤S_1≤100)
其中 L_1 是第一个供货商木头的长,S_1 是第一个供货商木头数量。其他供货商木头的长度和数量 L_i 和 S_i(i≥2),由下面的公式给出:
L_i=((Li-1 \times 37011+10193) \mod 10000)+1
S_i=((Si-1 \times 73011+24793) \mod 100)+1
输出格式
一个整数,即满足要求的 m 根长度相同的木头的最大长度。
本题测试数据保证一定有解。
输入输出样例
输入 #1
10 10000 8 20
输出 #1
201
思路
「买木头」先读懂题意与样例,判断是模拟、枚举、贪心还是搜索/DP,再分步实现。
步骤
1. 仔细读输入输出与样例,确定数据范围。
2. 选择合适算法并处理边界。
3. 按格式输出,注意多组数据与精度。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?