usaco-mixing milk-pass

呵呵,通过:

/*
ID: qq104801
LANG: C++
TASK: milk
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>

/* for debug only:counter
*/
void debug_dummy(void)
{
    return;
}

#define NMAX 5001

int n,m;
typedef struct _bb
{
    int price;
    int amount;
}bb;
bb k[NMAX];

int cmp(const void *a,const void *b)
{
    bb *pa=(bb*)a;
    bb *pb=(bb*)b;
    if (pa->price!=pb->price)
        return (pa->price - pb->price);
    else return (pa->amount -pb->amount);
}

void test(FILE* f)
{
    int cost=0,amount=0;
    for(int i=0;i<m;i++)
    {
        if ((n-amount)>k[i].amount)
        {
            amount+=k[i].amount;
            cost+=k[i].amount * k[i].price;
        }
        else
        {
            cost+=(n-amount) * k[i].price;
            //printf("%d %d  %d\n",k[i].price,k[i].amount,n-amount);
            //printf("%d\n",cost);
            fprintf(f,"%d\n",cost);
            return;
        }
        //printf("%d %d\n",k[i].price,k[i].amount);
    }
}

main () {
    FILE *fin = fopen ("milk.in", "r");
    FILE *fout = fopen ("milk.out", "w");
    fscanf(fin,"%d %d",&n,&m);
    if(n==0)
    {
        fprintf(fout,"0\n");
        exit(0);
    }
    //printf("%d %d\n",n,m);
    for(int i=0;i<m;i++)
    {
        fscanf(fin,"%d %d",&k[i].price,&k[i].amount);
        //printf("%d %d\n",k[i].price,k[i].amount);
    }
    qsort(k,m,sizeof(k[0]),cmp);
    test(fout);

    fclose(fin);
    fclose(fout);
    exit (0);
}

测试数据记录一下:

USER: ll tom [qq104801]
TASK: milk
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.011 secs, 3532 KB]
   Test 2: TEST OK [0.003 secs, 3540 KB]
   Test 3: TEST OK [0.008 secs, 3532 KB]
   Test 4: TEST OK [0.011 secs, 3532 KB]
   Test 5: TEST OK [0.008 secs, 3532 KB]
   Test 6: TEST OK [0.016 secs, 3532 KB]
   Test 7: TEST OK [0.014 secs, 3532 KB]
   Test 8: TEST OK [0.016 secs, 3532 KB]

All tests OK.

Your program (‘milk‘) produced all correct answers! This is your submission #3 for this problem. Congratulations!

Here are the test data inputs:

------- test 1 ----
100 5
5 20
9 40
3 10
8 80
6 30
------- test 2 ----
0 0
------- test 3 ----
2 1
10 2
------- test 4 ----
100 6
5 20
9 40
3 10
8 80
6 30
0 100
------- test 5 ----
2000000 1000
1000 2000000
999 2000000
998 2000000
997 2000000
996 2000000
995 2000000
994 2000000
993 2000000
992 2000000
991 2000000
990 2000000
989 2000000
988 2000000。。。。。。。。。。
时间: 2024-12-11 18:25:59

usaco-mixing milk-pass的相关文章

usaco Mixing Milk

发现我真的是很喜欢使用优先度咧 一个牛奶包装商人,从不同的奶农手里收购牛奶,以最低的价格买够每日所需,问最少花多少钱.直接贪心, /* ID: modengd1 PROG: milk LANG: C++ */ #include <iostream> #include <stdio.h> #include <queue> struct node { int P; int A; node(int p,int a) { A=a; P=p; } node(){} bool fr

USACO 1.3 Mixing Milk(贪心)

USACO Mixing Milk 简单的贪心,读入数据,按单价从小到大排序,然后从最便宜的买起,直到买够为止. /* ID:twd30651 PROG:milk LANG:C++ */ #include<iostream> #include<fstream> #include<stdlib.h> using namespace std; int N; int M; typedef struct node { int P; int A; }node; node data

USACO 1.3 Mixing Milk

Mixing Milk The Merry Milk Makers company buys milk from farmers, packages it into attractive 1- and 2-Unit bottles, and then sells that milk to grocery stores so we can each start our day with delicious cereal and milk. Since milk packaging is such

Luogu P1208 [USACO1.3]混合牛奶 Mixing Milk(贪心)

P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的.每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶. 给出Marry乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单

USACO Section1.3 Mixing Milk 解题报告

milk解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------------------------------------------------------------------------------------------[题目] 我是牛奶制造商,我一天需要N加仑的牛奶,总共有M个农民可以供给我. 这M个农民的信息共M行,第i个农民有num[i]加仑牛奶,每加仑

洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk

题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的.每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶. 给出Marry乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量.计算采购足够数量的牛奶所需的最小花费. 注:每天所有奶农

Mixing Milk

链接 分析:水题,按照价格从小到大排序,在进行贪心即可 /* PROB:milk ID:wanghan LANG:C++ */ #include "iostream" #include "cstdio" #include "cstring" #include "string" #include "algorithm" using namespace std; const int maxn= 5000+10;

1.3.1 Mixing Milk

The Merry Milk Makers company buys milk from farmers, packages it into attractive 1- and 2-Unit bottles, and then sells that milk to grocery stores so we can each start our day with delicious cereal and milk. Since milk packaging is such a difficult

洛谷——P1208 [USACO1.3]混合牛奶 Mixing Milk

https://www.luogu.org/problem/show?pid=1208 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的.每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶. 给出Marry乳业每天对牛奶的需求量,还

【贪心】Mixing Milk

题目描述 The Merry Milk Makers company buys milk from farmers, packages it into attractive 1- and 2-Unit bottles, and then sells that milk to grocery stores so we can each start our day with delicious cereal and milk.Since milk packaging is such a diffic