您的位置:首页 > 其它

poj 2393

2015-11-14 17:23 225 查看

题意:牛奶存储问题 第一行两个数 第一个是有多少周 第二个是要储存一周奶需要花的钱 剩下每行都是这周牛奶供应的价钱 和 牛奶量 求最少钱

思路: 贪心问题 可以趁便宜的时候多买一点 不过要付出相应的存储费 两层for循环 第一层是1 到 n 周 第二个for循环是检查前面几周买合不合适 具体看代码

有一点我没有想通 我整体算最小值 wa 但是最后乘以价钱的时候 就可以过

#include <iostream>

#include <cstdio>

#include <algorithm>

#include <cstring>

#define maxn 10200

#define INF 0x3f3f3f3f



using namespace std;



int n,m;

struct Node

{

int pr;

int w;

} node[maxn];

int main()

{

long long sum = 0;

int minx;

scanf("%d%d",&n,&m);



for(int i = 1; i <= n; i ++)

{

scanf("%d%d",&node[i].pr,&node[i].w);

}

sum = node[1].pr * node[1].w;

for(int i = 2; i <= n; i ++)

{

minx = node[i].pr;

//if( i != 1)

for(int j = 1; j < i; j ++)

{

minx = min(minx,(node[j].pr +(i - j)*m));

}

sum += minx * node[i].w;



}



printf("%I64d\n",sum);

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: