博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 10026 - Shoemaker's Problem
阅读量:6250 次
发布时间:2019-06-22

本文共 1222 字,大约阅读时间需要 4 分钟。

  题目大意:鞋匠有n个任务,第i个任务要花费ti天,同时第i个任务每耽误一天要有fi的罚金。求完成所有任务的最小罚金。

  虽然知道是贪心,可是并不确定如何作贪心选择,只好“取经”了...假如有两个任务i和j,先做i的话罚金就是ti*fj,先做j的话就是tj*fi (其实我也想到这个了,就是不知道怎么用),可以得到f/t大的任务应该先做。对贪心有多了一点认识了,贪心做出当前情况下的最好选择,与子问题无关,而动态规划中做出的选择与子问题有关系,要依赖子问题的结果。

1 #include 
2 #include
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 LOCAL17 freopen("in", "r", stdin);18 #endif19 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

你可能感兴趣的文章
昂贵的聘礼 POJ - 1062
查看>>
OpenGL 位图和图像概念
查看>>
jdbc
查看>>
模块初识
查看>>
百度地图需要的效果-有感
查看>>
1097 Deduplication on a Linked List
查看>>
查看 NPM、Yarn 全局安装的包
查看>>
软件版本号命名规则
查看>>
vue导航栏跳转路由
查看>>
OC - 缓存 - NSCache - 介绍
查看>>
Jenkins+GitHub+fir_cli 一行命令从源码到fir im
查看>>
【转】TCP三次握手和四次挥手全过程及为什么要三次握手解答
查看>>
[系统资源攻略]IO第一篇-磁盘IO,内核IO概念
查看>>
在 CentOS 7 上设置 grub2
查看>>
[BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
查看>>
[BZOJ 2140]稳定婚姻(强连通分量)
查看>>
人工智能工程师学习路线
查看>>
I don't like to be an theorist
查看>>
「docker实战篇」python的docker- 抖音视频抓取(上)(24)
查看>>
powerdesigner 画出 C++ UML 增加const,static,virtual属性
查看>>