hdu 4442 Physical Examination (2012年金华赛区现场赛A题)
2014-10-21 16:19
288 查看
昨天模拟赛的时候坑了好久,刚开始感觉是dp,仔细一看数据范围太大。
题目大意:一个人要参加考试,一共有n个科目,每个科目都有一个相应的队列,完成这门科目的总时间为a+b*(前面已完成科目所花的总时间)。问:怎样安排考试的顺序使考完所花的总时间最短。
分析:假设已经花了time时间,在剩下的科目中任意取两个科目x,y。
先考试x:Tx=time+(ay*time+ax+bx*by*(ax+time));
先考试y:Ty=time+(by*time+bx+ax+ay*(bx+time))。
化简之后发现花费时间的差距在ax*by,ay*bx,那么按照ai/bi的大小进行排序就ok了。
题目大意:一个人要参加考试,一共有n个科目,每个科目都有一个相应的队列,完成这门科目的总时间为a+b*(前面已完成科目所花的总时间)。问:怎样安排考试的顺序使考完所花的总时间最短。
分析:假设已经花了time时间,在剩下的科目中任意取两个科目x,y。
先考试x:Tx=time+(ay*time+ax+bx*by*(ax+time));
先考试y:Ty=time+(by*time+bx+ax+ay*(bx+time))。
化简之后发现花费时间的差距在ax*by,ay*bx,那么按照ai/bi的大小进行排序就ok了。
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 100010 #define INF 0xffffffff #define MOD (365*24*60*60) struct node { __int64 a, b; double s; }; node stu ; int cmp (const void *a, const void *b) { node *c = (node *)a; node *d = (node *)b; return c->s > d->s ? 1:-1; } int main () { __int64 n, i, sum; while (scanf ("%I64d", &n), n) { for (i=0; i<n; i++) { scanf ("%I64d %I64d", &stu[i].a, &stu[i].b); if (!stu[i].a) stu[i].s = 0; else if (!stu[i].b) stu[i].s = INF; else stu[i].s = 1.0 * stu[i].a / stu[i].b; } qsort (stu, n, sizeof(stu[0]), cmp); sum = 0; for (i=0; i<n; i++) { sum += (stu[i].a + stu[i].b * sum) % MOD; sum %= MOD; } printf ("%I64d\n", sum); } return 0; }
相关文章推荐
- HDU-4442-Physical Examination (2012年金华赛区现场赛A题)
- HDU 4442 Physical Examination(2012年金华赛区现场赛A题)
- HDU-4451-Dressing (2012年金华赛区J题)
- HDU 4445 Crazy Tank (2012年金华赛区现场赛D题)
- HDU-4450-Draw Something (2012年金华赛区I题)
- HDU-4451-Dressing (2012年金华赛区J题)
- HDU 4462 Scaring the Birds(2012年杭州赛区现场赛J题)
- HDU 4435 charge-station (2012年天津赛区现场赛E题)
- hdu 4445 37届金华赛区 D题
- HDU-5112-A Curious Matt (2014ACM/ICPC北京赛区现场赛A题!)
- HDU 4449 Building Design【金华赛区现场赛H题】
- hdu 4431 第37届ACM/ICPC 天津赛区现场赛A题 枚举
- HDU 4422 The Little Girl who Picks Mushrooms (2012年长春赛区现场赛C题)
- HDU 5032 Always Cook Mushroom (2014年北京赛区现场赛A题)
- hdu 4409 Family Name List 金华赛区1010 (解题报告)
- hdu 4452 37届金华赛区 K题
- HDU 4463 Outlets 2012年亚洲区域赛杭州赛区现场赛K题
- hdu 4442 37届金华赛区 A题
- hdu 4405 Aeroplane chess 2012年金华区域赛网络赛 概率dp求期望
- HDU 4453 Looploop (2012年杭州赛区现场赛A题)