uva10717 - Mint(硬币做桌腿)

2023-11-20 19:32
文章标签 mint 硬币 uva10717 桌腿

本文主要是介绍uva10717 - Mint(硬币做桌腿),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

就是求多个数的最小公倍数问题。。。。

思路不难,不过求最小公倍数的方法是刚学到的。。

(1)从n个硬币中,找四个类型的硬币组合,

(2)求每四个硬币厚度的最小公倍数

(3)在不同的选择下,记录最优答案。

代码如下:

#include <cstdio>
#define M 55
#define INF  0x7fffffff
int mint[M], select[4];
int n, t, h, L, R, ok;
int gcd(int a, int b)
{return b==0?a:gcd(b,a%b);
}
int lcm(int a, int b)
{if(a<b){int t = a; a = b; b = t;}return a/gcd(a,b)*b;
}
void solve()
{int Lcm = select[0];for(int i = 1; i < 4; i++) Lcm = lcm(Lcm,select[i]);int num, l, r;for(num = 1; Lcm*num <= h; num++); num-=1;if(Lcm*num==h) {L = R = h; ok = 1; return;}else {r = l = Lcm*num; r+=Lcm; }L = L < l ? l : L;R = R > r ? r : R;
}
void dfs(int p, int cur)
{if(ok) return;if(cur==4){solve();return ;}else for(int i = p; i <= n-4+cur; i++){select[cur] = mint[i]; dfs(i+1,cur+1);}
}
int main()
{while(scanf("%d%d",&n,&t),n+t){for(int i = 0; i < n; i++) scanf("%d",&mint[i]);for(int i = 0; i < t; i++){ok = 0;L = -INF;R = INF;scanf("%d",&h);for(int j = 0; ok==0&&j <= n-4; j++){select[0] = mint[j]; dfs(j+1,1);}printf("%d %d\n",L,R);}}return 0;
}


这篇关于uva10717 - Mint(硬币做桌腿)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/396930

相关文章

XTU 1233 n个硬币连续m个正面个数(dp)

题面: Coins Problem Description: Duoxida buys a bottle of MaiDong from a vending machine and the machine give her n coins back. She places them in a line randomly showing head face or tail face o

完全背包问题-leetcode-08.11. 硬币

问题描述https://leetcode-cn.com/problems/coin-lcci/ 面试题 08.11. 硬币 硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007) 等价 背包。给定数量物品,物品体积为25、10、5和1,编写代码背包体积为n,装物品的方法有多少种。(结果可能会很大,你

硬币兑换

小P的故事——神奇的换零钱 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 已知A国经济很落后,他们只有1、2、3元三种面值的硬币,有一天小P要去A国旅行,想换一些零钱,小P很想知道将钱N兑换成硬币有很多种兑法,但是可惜的是他的数学竟然是体育老师教的,所以他不会啊、、、他只好求助于你,你可以帮他解决吗?

【hihocoder #1506 : 投掷硬币】递推

【链接】:hihocoder #1506 : 投掷硬币 【题目】: 1506 : 投掷硬币 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi有一枚神奇的硬币。已知第i次投掷这枚硬币时,正面向上的概率是Pi。 现在小Hi想知道如果总共投掷N次,其中恰好M次正面向上的概率是多少。 输入 第一行包含两个整数N和M。 第二行包含N个实数P1, P

mint 下fictx输入法

sudo apt-get install fcitx fcitx-sunpinyin fcitx-table-wubi fcitx-table-all fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt4 fcitx-config-gtk fcitx-config-gtk2 fcitx-ui-classic 进入

UVA10717 - Mint(欧几里德求最小共倍数)

UVA10717 - Mint(欧几里德求最小共倍数) 题目链接 题目大意:要求你设计桌子,桌子的四条腿是用四种不同的硬币堆砌起来,并且这四条腿的长度要求要种相同。现在给n种硬币,然后给你t个要求的高度H。要求你给出能够用这些硬币设计出来的桌子的高度最接近H的两个数。 解题思路:要求四条腿一样长的话就是求这四种硬币厚度的最小共倍数,然后这里会给n种硬币,需要枚举出每四个的组合,求出用

【贪心】---【反硬币】

题目描述 小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 比如,可能情形是:**oo***oooo 如果同时翻转左边的两个硬币,则变为:oooo***oooo 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢? 我们约定:把翻动相邻的两个硬

Linux mint18的Mint-Y主题被改为xfce4之后修复

效果图: 当屏幕出现了上面这幅图的时候,就已经不再是浅绿色的主题了,需要进行主题的回复安装。回复安装主题的命令:LC_ALL=C apt-cache depends mint-meta-xfce | grep ‘[ |] Depends:[^<]’ | cut -d: -f2 | tr -d ’ ‘|xargs sudo apt-get –reinstall install -y安装之后发现

基于 Vue.js 的移动端组件库mint-ui

http://mint-ui.github.io/#!/zh-cn 实例: http://www.jb51.net/article/113647.htm https://segmentfault.com/a/1190000008955098 vue常见问题 http://www.cnblogs.com/yufann/p/Vue-Node10.html

Vue再学习4_基于 Vue.js 的移动端组件库Mint UI

Vue再学习4_基于 Vue.js 的移动端组件库Mint UI 地址 https://mint-ui.github.io/#!/zh-cn 引入步骤 1、通过npm安装对应的库 Vue 2.0npm install mint-ui -S 2、 引入全部组件 在main.js中添加 import Vue from 'vue'; import Mint from 'mint-ui';