poj-1260
来源:互联网 发布:十六进制颜色代码软件 编辑:程序博客网 时间:2024/06/04 19:33
#include <stdio.h>
#include <malloc.h>
struct pearlInfo{
int number;
int price;
};
typedef struct pearlInfo pearlInfo;
struct BuyOP {
int cost;
int higerGlass;
};
typedef struct BuyOP BuyOP;
void getLowestCost(pearlInfo * pearlBuyList, int buyListSize) {
BuyOP Min[101] = {0};
int sum[101] = {0};
sum[0] = pearlBuyList[0].number;
for (int i = 1; i < buyListSize; i++) {
sum[i] = sum[i-1] + pearlBuyList[i].number;
printf("%d\n", sum[i]);
}
Min[buyListSize-1].cost = (sum[buyListSize-1] + 10)*pearlBuyList[buyListSize-1].price;
Min[buyListSize-1].higerGlass = buyListSize-1;
for (int i = buyListSize-2; i >= 0; i--) {
int buyThisGlass = Min[i+1].cost - sum[i]*pearlBuyList[Min[i+1].higerGlass].price + (sum[i] + 10)*pearlBuyList[i].price;
int buyHigerGlass = Min[i+1].cost;
printf("sum[i] %d %d %d\n", sum[i], buyThisGlass, buyHigerGlass);
if (buyThisGlass < buyHigerGlass) {
Min[i].cost = buyThisGlass;
Min[i].higerGlass = i;
printf("choose %d %d\n", i, Min[i].higerGlass);
} else {
Min[i].cost = buyHigerGlass;
Min[i].higerGlass = Min[i+1].higerGlass;
printf("no choose %d %d\n", i, Min[i].higerGlass);
}
}
printf("%d\n", Min[0].cost);
}
int main() {
int caseNum = 0;
scanf("%d", &caseNum);
for (int i = 0; i < caseNum; i++) {
int buyNum = 0;
scanf("%d", &buyNum);
pearlInfo * pearlBuyList = (pearlInfo *)malloc(sizeof(pearlInfo) * buyNum);
for (int j = 0; j < buyNum; j++) {
scanf("%d %d", &((pearlBuyList+j)->number), &((pearlBuyList+j)->price));
// printf("%d %d\n", (pearlBuyList+j)->number, (pearlBuyList+j)->price);
}
getLowestCost(pearlBuyList, buyNum);
free(pearlBuyList);
}
}
#include <malloc.h>
struct pearlInfo{
int number;
int price;
};
typedef struct pearlInfo pearlInfo;
struct BuyOP {
int cost;
int higerGlass;
};
typedef struct BuyOP BuyOP;
void getLowestCost(pearlInfo * pearlBuyList, int buyListSize) {
BuyOP Min[101] = {0};
int sum[101] = {0};
sum[0] = pearlBuyList[0].number;
for (int i = 1; i < buyListSize; i++) {
sum[i] = sum[i-1] + pearlBuyList[i].number;
printf("%d\n", sum[i]);
}
Min[buyListSize-1].cost = (sum[buyListSize-1] + 10)*pearlBuyList[buyListSize-1].price;
Min[buyListSize-1].higerGlass = buyListSize-1;
for (int i = buyListSize-2; i >= 0; i--) {
int buyThisGlass = Min[i+1].cost - sum[i]*pearlBuyList[Min[i+1].higerGlass].price + (sum[i] + 10)*pearlBuyList[i].price;
int buyHigerGlass = Min[i+1].cost;
printf("sum[i] %d %d %d\n", sum[i], buyThisGlass, buyHigerGlass);
if (buyThisGlass < buyHigerGlass) {
Min[i].cost = buyThisGlass;
Min[i].higerGlass = i;
printf("choose %d %d\n", i, Min[i].higerGlass);
} else {
Min[i].cost = buyHigerGlass;
Min[i].higerGlass = Min[i+1].higerGlass;
printf("no choose %d %d\n", i, Min[i].higerGlass);
}
}
printf("%d\n", Min[0].cost);
}
int main() {
int caseNum = 0;
scanf("%d", &caseNum);
for (int i = 0; i < caseNum; i++) {
int buyNum = 0;
scanf("%d", &buyNum);
pearlInfo * pearlBuyList = (pearlInfo *)malloc(sizeof(pearlInfo) * buyNum);
for (int j = 0; j < buyNum; j++) {
scanf("%d %d", &((pearlBuyList+j)->number), &((pearlBuyList+j)->price));
// printf("%d %d\n", (pearlBuyList+j)->number, (pearlBuyList+j)->price);
}
getLowestCost(pearlBuyList, buyNum);
free(pearlBuyList);
}
}
0 0
- poj 1260
- POJ 1260
- POJ 1260
- poj-1260
- poj-1260
- poj 1260
- poj 1260
- POJ 1260
- poj 1260
- poj 1260 Pearls
- POJ 1260 Pearls
- POJ 1260 Pearls DP
- Poj 1260 Pearls
- POJ 1260 Pearls
- POJ 1260 dp
- poj 1260 pearls
- poj-1260-Pearls-dp
- POJ 1260 Pearls
- Applies to: Microsoft SQL Server 2008 Release Candidate 0 (RC0).
- 不是技术牛人,如何拿到国内IT巨头的Offer
- myeclipse9.0安装svn
- 取消按钮重新加载页面
- ZOJ-2105
- poj-1260
- 浅谈mysql配置优化和sql语句优化
- UVa 10382 - Watering Grass
- Apache Spark源码走读之1 -- Spark论文阅读笔记
- cocos2dx使用python新建项目
- 如何鉴别snidel真假
- 关于申诉
- mysql删除字段为null的记录
- Apache和Tomcat的区别