锁定老帖子 主题:杰哥私房题──花生问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-07
问题描述
#include <stdio.h> int main(){ int row, col; int time; scanf("%d %d %d", &row, &col, &time); int i,j; int curPi = 0, curPj; int peanuts[25][25]; int timeUsed = 0; int peaGot = 0; for(i = 1; i <= row; i++){ for(j = 1; j <= col; j++){ scanf("%d", &peanuts[i][j]); } } int maxPi = 0, maxPj = 0; while(timeUsed <= time){ //找下一个最大的花生点,个人觉的这里会出问题,在花生数相同的情况下,会找到不是最近的那个点 int max = 0; for(i = 1; i <= row; i++){ for(j = 1; j <= col; j++){ if(peanuts[i][j] > max){ max = peanuts[i][j]; maxPi = i; maxPj = j; } } } if(max == 0) break; if(curPi == 0) curPj = maxPj; if(timeUsed + (abs(maxPj - curPj) + abs(maxPi - curPi) + 1 + maxPi) <= time){ timeUsed = timeUsed + abs(maxPj - curPj) + abs(maxPi - curPi) + 1; curPi = maxPi; curPj = maxPj; peaGot += peanuts[curPi][curPj]; peanuts[curPi][curPj] = 0; } else break; } printf("%d\n", peaGot); return 0; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1650 次