poj 3262 Protecting the Flowers
来源:互联网 发布:js 获取css display 编辑:程序博客网 时间:2024/05/14 10:32
Description
Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his horror that the cluster of cows was in his garden eating his beautiful flowers. Wanting to minimize the subsequent damage, FJ decided to take immediate action and transport each cow back to its own barn.
Each cow i is at a location that is Ti minutes (1 ≤Ti ≤ 2,000,000) away from its own barn. Furthermore, while waiting for transport, she destroysDi (1 ≤ Di ≤ 100) flowers per minute. No matter how hard he tries, FJ can only transport one cow at a time back to her barn. Moving cowi to its barn requires 2 × Ti minutes (Ti to get there andTi to return). FJ starts at the flower patch, transports the cow to its barn, and then walks back to the flowers, taking no extra time to get to the next cow that needs transport.
Write a program to determine the order in which FJ should pick up the cows so that the total number of flowers destroyed is minimized.
Input
Lines 2..N+1: Each line contains two space-separated integers, Ti andDi, that describe a single cow's characteristics
Output
Sample Input
63 12 52 33 2
4 11 6
Sample Output
86
Hint
#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAX 100000__int64 sum_J[MAX+10],sum;struct Cow{int T;int D;double P;}num[MAX+10];int cmp(const void *a,const void *b){struct Cow *c=(Cow *)a;struct Cow *d=(Cow *)b;if(c->P!=d->P)return d->P>c->P?1:-1;}int main(){int N,i,j,k;while(scanf("%d\n",&N)!=EOF){for(i=0;i<N;i++){scanf("%d %d",&num[i].T,&num[i].D);num[i].P=(num[i].D*1.0)/(num[i].T*1.0);}qsort(num,N,sizeof(num[0]),cmp);memset(sum_J,0,sizeof(sum_J));for(i=N-2,sum_J[N-1]=num[N-1].D;i>=0;i--)sum_J[i]=sum_J[i+1]+num[i].D;//for(i=0;i<N;i++)//printf("%d#\n",sum_J[i]);for(i=0,sum=0;i<N-1;i++){//for(j=i+1,S=0;j<N;j++)//S+=num[j].D;sum+=(sum_J[i+1]*num[i].T);}printf("%I64d\n",2*sum);//前边定义sum要用长整形,否则会错。(这里一直错) //for(i=0;i<N;i++)//printf("%d %d %lf\n",num[i].T,num[i].D,num[i].P);}return 0;}
- POJ 3262 Protecting the Flowers
- POJ 3262 Protecting the Flowers
- POJ-3262-Protecting the Flowers
- Poj 3262 Protecting the flowers
- POJ 3262 Protecting the Flowers
- POJ-3262-Protecting the Flowers
- POJ-3262-Protecting the Flowers
- poj-3262-Protecting the Flowers
- poj 3262 Protecting the Flowers
- poj 3262 Protecting the Flowers
- poj 3262 Protecting the Flowers
- poj 3262 Protecting the Flowers
- POJ 3262 Protecting the Flowers
- POJ 3262 - Protecting the Flowers
- POJ 3262 Protecting the Flowers
- POJ 3262 Protecting the Flowers
- poj 3262 Protecting the Flowers
- POJ 3262 Protecting the Flowers
- EOJ 1163 【动态规划】 【背包】
- mysql-insert,update,delete,replace基础
- Add Two Numbers
- ACM协会编程学习座谈的记录和思考
- Before you commit a transaction
- poj 3262 Protecting the Flowers
- Struts2之Servlet文件上传详解
- C指针编程之道 ---第二次笔记
- median of two sorted array
- 中断上下文和进程上下文
- 【HDU】5126 stars cdq分治套cdq分治套树状数组
- ruby TkPackage can't find package BWidget 之解决办法
- 在MySQL中操作日期和时间
- 统计给定整数M和N区间内素数的个数