UVa 10026 - Shoemaker's Problem
题目大意:鞋匠有n个任务,第i个任务要花费ti天,同时第i个任务每耽误一天要有fi的罚金。求完成所有任务的最小罚金。
虽然知道是贪心,可是并不确定如何作贪心选择,只好“取经”了...假如有两个任务i和j,先做i的话罚金就是ti*fj,先做j的话就是tj*fi (其实我也想到这个了,就是不知道怎么用),可以得到f/t大的任务应该先做。对贪心有多了一点认识了,贪心做出当前情况下的最好选择,与子问题无关,而动态规划中做出的选择与子问题有关系,要依赖子问题的结果。
1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 #define MAXN 1000+10 5 6 double w[MAXN]; 7 int ans[MAXN]; 8 9 bool cmp(const int a, const int b) 10 { 11 return w[a] > w[b]; 12 } 13 14 int main() 15 { 16 #ifdef LOCAL 17 freopen("in", "r", stdin); 18 #endif 19 int N; 20 scanf("%d", &N); 21 while (N--) 22 { 23 int n; 24 scanf("%d", &n); 25 int time, fine; 26 for (int i = 1; i <= n; i++) 27 { 28 scanf("%d%d", &time, &fine); 29 w[i] = 1.0 * fine / time; 30 } 31 for (int i = 1; i <= n; i++) ans[i] = i; 32 sort(ans+1, ans+n+1, cmp); 33 for (int i = 1; i <= n; i++) 34 printf("%d%s", ans[i], (i==n)?"\n":" "); 35 if (N) printf("\n"); 36 } 37 return 0; 38 }
View Code
如果有多个方案时要字典序输出,考虑到sort函数是不稳定的,感觉会出错,但还是抱着试试的态度提交了,想着如果WA了就换stable_sort,但是竟然AC了...这个...先不管了,先就这样吧
转载于:https://www.cnblogs.com/xiaobaibuhei/p/3226776.html
UVa 10026 - Shoemaker's Problem相关推荐
- uva 10026 Shoemaker's Problem(排序)
题目连接:10026 Shoemaker's Problem 题目大意:有一个鞋匠接了n双要修的鞋子, 修每双鞋需要d天,每推迟一天修将亏损val元,问按什么样的顺序修鞋可以保证损失最少,如果有多种情 ...
- 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 ...
- 【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 11069 A Graph Problem
递推 题意:看题目中的列子就可以知道 ,当n为5时,可行的子集有{1,3,5},{2,4},{2,5},{1,4} 1.子集中任意两个元素的差x要2<=x<=3. 2.子集要尽可能的长,好 ...
- uva 101 The Blocks Problem
1. move a onto b在將a搬到b上之前,先將a和b上的積木放回原來的位置(例如:1就放回1的最開始位罝) 2. move a over b在將a搬到b所在的那堆積木之上之前,先將a ...
- uva 11490 ——Just Another Problem
题意:刚开始并没有看懂,耐着性子硬读下去,才勉强弄懂大意,英语也要加强训练啊! 题目是说你有s行c列士兵,然后带着他们去打仗,为了虚张声势,在士兵的中间缺了两个边长为r的洞,且这两个洞四个方向的厚度是 ...
最新文章
- 高精度地图量产难,四维图新利用优势准备实现突破
- mysql表连接算法_如何在MySQL中连接多个表
- 利用python进行数据分析 英文-如何学习和评价《利用python进行数据分析》这本书?...
- 如何oracle数据库用户名和密码,Oracle数据库用户名及密码查询
- 思科Webex与下一代视频会议
- 究极日月服务器维护时间,超激斗梦境9月25日终极测试服务器维护公告_超激斗梦境9月25日更新了什么_玩游戏网...
- From Agile To DevOps - 微软开发部门 DevOps 经验谈
- win7 IE11卸载后无法上网
- LeetCode 1776. 车队 II(单调栈)
- 哪种人是软件设计中的稀缺型人才?
- html代码如何查看视频,Web前端
- ado.net Oracle中一次执行多条sql语句
- window.location.href 跳转失败
- matlab数据归一化代码_深度学习amp;Matlab-LeNet实现图像分类
- “叔叔,你来监考了!”
- UDP和TCP 简单 区别
- 区块链 智能合约 执行原理
- API不治,混合云何以统天下?
- 政企用户网络安全常见风险盘点
- linux 百度网盘 限速,哈哈,我终于找到解除百度网盘账号限速的方法了,可是........
热门文章
- 104. 二叉树的最大深度 golang DFS
- LVM (Logic Volume Management,逻辑卷管理)
- minicom 串口信息过长分行显示
- 树链剖分入门+HYSBZ - 1036树的统计Count
- 【Leetcode】112. 路径总和
- 萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第四节 PCA与梯度上升 (上)理解篇...
- intellig idea中jsp或html数据没有自动保存和更换字体
- git——学习笔记(三)分支管理
- usaco-crypt1-pass
- C++Objective-c