程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> poj 1928

poj 1928

編輯:C++入門知識

直接模擬。。

下面是AC代碼:
[cpp] 
#include <stdio.h>    
   
int main(){  
    int t;   
    int row, col;    
    int time; 
    int l; 
    scanf("%d",&t); 
    for(l=1;l<=t;l++){ 
 
    scanf("%d %d %d", &row, &col, &time);    
    int i,j;    
    int curPi = 0, curPj;    
    int peanuts[51][51];   
    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;    
   
}   


作者:w00w12l

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved