Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Discuss中的数据全过,但是还是WA,求帮助啊,大神们简单的递归DFS+邻接矩阵,一直WA,所以也没有剪枝。求变态数据,求帮助啊大神们,实在搞不定了,discuss中的全部数据过了两遍,讨论帖子从头看到尾一篇都没漏,但是还是实在看不出来错误啊。 #include <stdio.h> #include <string.h> #define MAXNUM 105 #define MAX 65535 int gwLevelgap; //等级差 int gwMax; //最大物品数 int gwTotal = MAX; //记录最优解 int gawRouteMap[MAXNUM][MAXNUM]; //邻接矩阵,路权为优惠价格 int gawLevel[MAXNUM]; //记录每一个节点的等级 int gawPrice[MAXNUM]; //记录每一个节点的直接购买价格 int gawRecord[MAXNUM]; //记录是否已经交易过,避免形成了环 void GetInput() { int i = 0; int j = 0; int wPrice = 0; int wLevel = 0; int wExcNum = 0; int wNo = 0; int wRoutePrice = 0; scanf("%d %d", &gwLevelgap, &gwMax); for(i=0; i<gwMax; i++) { scanf("%d %d %d", &wPrice, &wLevel, &wExcNum); gawLevel[i] = wLevel; gawPrice[i] = wPrice; for(j=0; j<wExcNum; j++) { scanf("%d %d", &wNo, &wRoutePrice); gawRouteMap[i][wNo-1] = wRoutePrice; } } } int CalcPrice(int j, int sum, int maxlevel, int minlevel) { int i = 0; int all0flag = 1; if(j > gwMax-1) return 0; if(gawRecord[j] == 1) { return 1; } gawRecord[j] = 1; if(gawLevel[j] > maxlevel) maxlevel = gawLevel[j]; if(gawLevel[j] < minlevel) minlevel = gawLevel[j]; if(maxlevel - minlevel > gwLevelgap) { return 1; } for(i=0; i<gwMax; i++) { if(gawRouteMap[j][i] != -1) { if(1 == CalcPrice(i, sum+gawRouteMap[j][i], maxlevel, minlevel)) if(sum + gawPrice[j] < gwTotal) gwTotal = sum + gawPrice[j]; if(j == 0) { memset(gawRecord, 0, MAXNUM*sizeof(int)); gawRecord[j] = 1; } all0flag = 0; } } if(all0flag == 1) { sum += gawPrice[j]; if(sum < gwTotal) gwTotal = sum; } return 0; } int main(void) { memset(gawRouteMap, -1, MAXNUM*MAXNUM*sizeof(int)); GetInput(); gwTotal = gawPrice[0]; CalcPrice(0, 0, gawLevel[0], gawLevel[0]); printf("%d\n", gwTotal); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator