杭电OJ 1355:The Peanuts

来源:互联网 发布:8080端口的作用 编辑:程序博客网 时间:2024/05/18 02:52

杭电上将题目分到了DP,但是好像直接用贪心算法就可以做出来,不知道是不是数据不够强。

C++代码:

#include<stdio.h>#include<algorithm>#include<math.h>using namespace std;struct peanut{int x,y,c;}arr[5000];bool cmp(peanut a,peanut b){return a.c>b.c;}int main(){//freopen("1.txt","r",stdin);int xx,yy,maxt,w,q,t,ss,sum,i,j;scanf("%d",&t);while(t--){scanf("%d%d%d",&xx,&yy,&maxt);for(w=i=1;i<=xx;i++){for(j=1;j<=yy;j++){scanf("%d",&q);arr[w].x=i;arr[w].y=j;arr[w++].c=q;}}sort(arr+1,arr+w,cmp);for(ss=sum=0,i=1;i<w;i++){if(i==1)sum+=arr[1].x;else sum+=abs(arr[i].x-arr[i-1].x)+abs(arr[i].y-arr[i-1].y);if(sum+arr[i].x<=maxt-1){ss+=arr[i].c;sum++;}elsebreak;}printf("%d\n",ss);}return 0;}


0 0