【多校训练】ZZULIOJ 1896 985的买饮料难题
2016-08-04 19:40
381 查看
1896: 985的买饮料难题
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 234 Solved: 124
SubmitStatusWeb
Board
Description
天气太热了,985制定了对未来的规划即第i天喝a[i]瓶饮料。为了节约开支,他打听到了第i天每瓶饮料的价格p[i]。为了不让自己的规划落空,他想知道这n天他至少要花多少钱。
精明的985可以选择在任意一天买数目不限的饮料,而且他有一个神奇的冰箱,可以将提前购买的饮料保存下来(至少在这n天里是可以饮用的)。
Input
第一行输入一个整数t,代表有t组测试数据。每组数据第一行输入一个整数n代表规划的总天数,接下来有n行,每行输入两个整数a[],p[]分别代表上面提到的信息。
注:1 <= t <= 30,1 <= n <= 1000,1 <= a[],p[] <= 100。
Output
输出一个整数代表最后的结果。Sample Input
2 2 25 56 94 17 5 39 21 95 89 73 90 9 55 85 32
Sample Output
2998 6321
HINT
Source
hpu不知道在做这场比赛的时候我都在想什么???
本来是只要记录在这个价格之前的最小单价。也就是这样:
for(int i=0;i<n;i++) { scanf("%d%d",&a,&b); minn=min(b,minn); sum+=a*minn; }
就可以了。
结果我当时完全不知道自己在想什么??我最后写成每次都重新查找,滚一遍找到最小的那个值了,就是这样:
sum=b[0].p*sum; for(i=n-1;i>=0;i--)//第i天喝的 { for(j=1,k=0;j<=i;j++)//第j天和第k天会花多少钱 { long long tmp=sum-b[k].p*b[i].a+b[j].p*b[i].a; if(tmp<sum) { sum=tmp; k=j;//k是最少的 } } }
不仅浪费时间还没有上面那个简单,我当时脑子是糊住了吗= =……
我写的全部代码如下,血的教训啊。
#include<stdio.h> #include<string.h> #define INF 0x3f3f3f3f struct dri { int a,p; }b[1111]; int min(int a,int b) { if(a>b) return b; return a; } int main() { int T; int i,j,k,n; scanf("%d",&T); while(T--) { long long sum=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&b[i].a,&b[i].p); sum+=b[i].a; } sum=b[0].p*sum; for(i=n-1;i>=0;i--)//第i天喝的 { for(j=1,k=0;j<=i;j++)//第j天和第k天会花多少钱 { long long tmp=sum-b[k].p*b[i].a+b[j].p*b[i].a; if(tmp<sum) { sum=tmp; k=j;//k是最少的 } } } printf("%lld\n",sum); } return 0; }
相关文章推荐
- 【多校训练】ZZULIOJ 1893 985的数学难题【位运算】
- 【多校训练】ZZULIOJ 1894 985的方格难题
- zzulioj 1896 985的买饮料难题
- 【多校训练】ZZULIOJ 1895 985的0-1串难题
- 【多校训练】ZZUliOJ 1902 985的因子对难题
- ZZULIOJ-1896-985的买饮料难题(水题)
- 【多校训练】ZZULIOJ 1898 985的数字难题
- 【zzuliOJ】1896 - 985的买饮料难题(贪心)
- ZZULI OJ 1896: 985的买饮料难题
- 【ZZULI】-1896-985的买饮料难题(思维)
- 1896: 985的买饮料难题
- 【郑轻】[1896]985的买饮料难题
- ZZULIOJ-1898-985的数字难题(水题)
- 【zzuliOJ】1893 - 985的数学难题(位运算)
- ZZULIOJ-1894-985的方格难题(BFS&规律&DP)
- zzulioj 1902 (985的因子对难题)
- zzulioj 1894: 985的方格难题 [dp]
- 【多校训练】ZZULIOJ 1905 小火山的跳子游戏
- 【hpu oj 1019 985的买饮料难题 [数学、DP]】
- 【zzuliOJ】1894 - 985的方格难题(组合数学)