URAL 1210 Kind Spirits (DP动态规划)

来源:互联网 发布:sql中的distinct 编辑:程序博客网 时间:2024/06/15 14:10
#include <stdio.h>#define MAX_LEVELS 30#define MAX_PLANETS 31#define MAX_PAY 1e7int numOfLevels;int minPay[MAX_LEVELS][MAX_PLANETS];int main(){scanf("%d", &numOfLevels);int level;for (level = 1; level <= numOfLevels; level++){int preLevel = level - 1;int numOfPlanets;scanf("%d", &numOfPlanets);int planet;for (planet = 1; planet <= numOfPlanets; planet++){minPay[level][planet] = MAX_PAY;int from;while (scanf("%d", &from) != EOF && from != 0){int pay;scanf("%d", &pay);//每输入一个数据即刻DPif (minPay[preLevel][from] + pay < minPay[level][planet])minPay[level][planet] = minPay[preLevel][from] + pay;}}//注意如何处理'*'的输入问题char str[2];if (level < numOfLevels)scanf("%s", str);else {int result = MAX_PAY;for (planet = 1; planet <= numOfPlanets; planet++)if (minPay[level][planet] < result)result = minPay[level][planet];printf("%d\n", result);}}return 0;}

0 0
原创粉丝点击