博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 10670 - Work Reduction
阅读量:5132 次
发布时间:2019-06-13

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

题目链接:

简单的贪心

1 #include 
2 #include
3 #include
4 5 const int MAXN = 110; 6 7 struct worker 8 { 9 char name[20];10 int A, B;11 int cost;12 };13 14 int N, M, L;15 worker W[MAXN];16 17 int cmp( const void *a, const void *b )18 {19 worker *c = ( worker* )a;20 worker *d = ( worker* )b;21 if ( c->cost != d->cost ) return c->cost - d->cost;22 else return strcmp( c->name, d->name );23 }24 25 void solve( int i )26 {27 int a = N;28 int sum = 0;29 while ( a != M )30 {31 // printf("a=%d\n", a);32 if ( a / 2 >= M && ( a / 2 ) * W[i].A > W[i].B )33 {34 a /= 2;35 sum += W[i].B;36 }37 else38 {39 --a;40 sum += W[i].A;41 }42 }43 W[i].cost = sum;44 return;45 }46 47 int main()48 {49 int T, tt = 0;50 char temp[20];51 char ch;52 scanf( "%d", &T );53 while ( T-- )54 {55 scanf( "%d%d%d", &N, &M, &L );56 for ( int i = 0; i < L; i++ )57 {58 getchar();59 int k = 0;60 while( ch = getchar(), ch != ':' )61 temp[k++] = ch;62 temp[k] = '\0';63 strcpy( W[i].name, temp );64 scanf( "%d, %d", &W[i].A, &W[i].B );65 solve(i);66 }67 68 qsort( W, L, sizeof(W[0]), cmp );69 70 printf( "Case %d\n", ++tt );71 for ( int i = 0; i < L; i++ )72 printf( "%s %d\n", W[i].name, W[i].cost );73 }74 return 0;75 }

转载于:https://www.cnblogs.com/GBRgbr/archive/2012/09/03/2669732.html

你可能感兴趣的文章
【03月04日】A股滚动市盈率PE历史新低排名
查看>>
Xcode5和ObjC新特性
查看>>
jvm slot复用
查看>>
高并发系统数据库设计
查看>>
LibSVM for Python 使用
查看>>
入坑的开始~O(∩_∩)O~
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
Windows 7 上安装Visual Studio 2015 失败解决方案
查看>>
iOS按钮长按
查看>>
Shell流程控制
查看>>
CSS属性值currentColor
查看>>
[Leetcode|SQL] Combine Two Tables
查看>>
《DSP using MATLAB》Problem 7.37
查看>>
ROS lesson 1
查看>>
js笔记
查看>>
c风格字符串函数
查看>>
python基础学习第二天
查看>>
java可重入锁reentrantlock
查看>>
浅谈卷积神经网络及matlab实现
查看>>
struts2学习(9)struts标签2(界面标签、其他标签)
查看>>