UVA-10026 Shoemaker's Problem (贪心)
题目大意:一个鞋匠,有n只鞋要修,修某只鞋的时间ti已知,某只鞋晚修一天要交的罚款fi也已知。现在让找个修鞋顺序使得罚款最少。
题目分析:本来想水一下这道题,没想到真的AC啦。后来又查的题解,找的解释。一个比较能说服我的解释是这样的:这个鞋匠不管怎样都要赔本,他每修一只鞋能降低的最大损失是fi/ti,只需要按fi/ti从大到小的顺序来修即可。
代码如下:
# include<iostream>
# include<cstdio>
# include<cstring>
# include<algorithm>
using namespace std;
struct Job
{int id,ti,si;Job(){}Job(int _id,int _ti,int _si):id(_id),ti(_ti),si(_si){}bool operator < (const Job &a) const {double f1=1.0*si/ti;double f2=1.0*a.si/a.ti;if(f1==f2)return id<a.id;return f1>f2;}
};
Job JB[1005];
int main()
{int T,n,a,b;scanf("%d",&T);while(T--){scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%d%d",&a,&b);JB[i]=Job(i,a,b);}sort(JB+1,JB+n+1);for(int i=1;i<=n;++i)printf("%d%c",JB[i].id,(i==n)?'\n':' ');if(T)printf("\n");}return 0;
}
转载于:https://www.cnblogs.com/20143605--pcx/p/4766544.html
UVA-10026 Shoemaker's Problem (贪心)相关推荐
- uva 10026 Shoemaker's Problem(排序)
题目连接:10026 Shoemaker's Problem 题目大意:有一个鞋匠接了n双要修的鞋子, 修每双鞋需要d天,每推迟一天修将亏损val元,问按什么样的顺序修鞋可以保证损失最少,如果有多种情 ...
- UVa 10026 - Shoemaker's Problem
题目大意:鞋匠有n个任务,第i个任务要花费ti天,同时第i个任务每耽误一天要有fi的罚金.求完成所有任务的最小罚金. 虽然知道是贪心,可是并不确定如何作贪心选择,只好"取经"了.. ...
- UVA10026 Shoemaker's Problem【贪心】
Shoemaker has N jobs (orders from customers) which he must make. Shoemaker can work on only one job ...
- Uva 101 the block problem 木块问题(算法竞赛经典入门)STL vector
Uva 101 the block problem 木块问题 题目大意: 输入n,得到编号为0~n-1的木块,分别摆放在顺序排列编号为0~n-1的位置.现对这些木块进行操作,操作分为四种. 1.mov ...
- UVA - 524 Prime Ring Problem
题目链接: UVA - 524 Prime Ring Problem Description(素数环) A ring is composed of n (even number) circles as ...
- UVa11389 The Bus Driver Problem(贪心)
问题:市中有n个司机,有n个早班路线和晚班路线.每个司机分配一个早班和晚班路线,如果一个司机的总行程路线超过d,超过的部分按每小时r元计算.问最小的加班费多少. 思路:贪心算法. 先以两个情况为例.早 ...
- 【UVA】11991 Easy Problem from Rujia Liu? (整数v第k次出现在什么位置)
https://vjudge.net/problem/UVA-11991 题目大意:就是给你一个序列,然后给出k和v,看整数v第k次出现在该序列的什么位置,没有的话就输出0 结构体(略复杂): #in ...
- uva 10401 Injured Queen Problem(dp)
题目链接:10401 - Injured Queen Problem 题目大意:给出一个字符串,要求在n * n(n为字符串的长度)的棋盘上摆放n个受伤的皇后,受伤的皇后只能攻击到同一列和它周围8个格 ...
- UVA 11292 The Dragon of 贪心
题意是 一个龙有n个头 头都有直径 有m个骑士 骑士有身高 如果身高超过直径 骑士就能砍下龙头 一个骑士只能砍一个头 国王雇佣骑士 价格是骑士的身高 求国王最少要多少钱才能杀掉龙 如果杀不掉 就输出 ...
最新文章
- [20170206]为什么少1个段.txt
- UNIX 之父和 Linux 之父:创造新系统真的只是个意外 | 赠书
- leetcode10 为什么p[j-1] == '*'的时候,不能用递推公式dp[i][j] = dp[i][j-1] || dp[i][j-2] || dp[i-1][j]
- 推荐系统笔记(其它应用算法)
- 法国标致雪铁龙汽车公司采用通快碟片激光器进行焊接
- eslint的安装与使用
- Windows2008+MyEclipse10+Android开发环境搭配
- (day 50 - 动态规划+概率论 ) 剑指 Offer 60. n个骰子的点数
- 苹果手机浏览器字体渐变色无效?
- Swift All-In-One安装指南
- 终于有人把数据安全讲明白了
- 强化学习策略迭代及收敛证明
- 游戏美术设计中,最难的角色人物如何设计才能吸睛?
- laravel 的 scout elasticsearch ik laravel-scout-elastic 之间的关系与安装
- 【自主无人机】无人机领域中知名课题组介绍 - 转自阿木实验室
- TIA博途_OB组织块的功能和使用方法介绍
- linux系统磁盘分区查看,linux下磁盘查看和分区
- Python 的dict几种遍历方式
- scite使用日常收集
- 『Python学习笔记』Mac系统汇总:终端文件显示不同颜色Pycharm代码模板JAVA环境变量