切换到宽版
  • 7456阅读
  • 1回复

NOIP2004的采摘花生(大牛帮帮我,不知道哪里有问题) [复制链接]

上一主题 下一主题
离线南瓜林木
 
只看楼主 倒序阅读 0 发表于: 2006-10-27
不知道这个为什么运行错误.(但我的算法是正确的).
题目在: [url]http://www.jdfz.sh.cn/oi/showzl.asp?id=29[/url]
(C++)

#include<fstream>
#include<cmath>
using namespace std;
ifstream fin("p.in");
ofstream fout("p.out");

struct node
{
  int p;
  int x;
  int y;
};

int n,m,k;
int inp();
int sort1();
node a[400];

int main()
{
  long int time,ans;
  int i;
  inp();
  sort1();
  time=0;ans=0;
  a[0].x=0;a[0].y=a[1].y;
    for(i=1;i<=n*m;i++){
    if (a[i].x+(abs (a[i].x-a[i-1].x))+(abs(a[i].y-a[i-1].y))+1<=k){
      time+=(abs (a[i].x-a[i-1].x))+(abs(a[i].y-a[i-1].y))+1;
      ans+=a[i].p;
      }
    }
    fout<<ans;
  return 0;
};

int inp()
{
  int i,j,sy;
  fin>>m>>n>>k;
  for(i=1;i<=n;i++)
    for(j=1;j<=m;i++)
    {
    a[(i-1)*m+j].x=i;
    a[(i-1)*m+j].y=j;
    fin>>sy;
    a[(i-1)*m+j].p=sy;
    }
  return 0;
};

int sort1()
{
  int i,j,temp;
  for(i=1;i<=n*m-1;i++)
    for (j=i;j<=n*m;j++){
    if(a[i].p<a[j].p){
      temp=a[j].p; a[j].p=a[i].p; a[i].p=temp;      
      temp=a[j].x; a[j].x=a[i].x; a[i].x=temp;
      temp=a[j].y; a[j].y=a[i].y; a[i].y=temp;      
      }
    }
return 0;
};
离线dj97101
只看该作者 1 发表于: 2006-11-01
#include<stdio.h>
#include<math.h>
main()
{int k,m,n,i,j,h,l,h1,l1,f,g;
int sj=0,max1=0,max2=0,a[100][100];
FILE *fp1,*fp2;
fp1=fopen("peanuts1.in","r");
fp2=fopen("peanuts.out","w");
fscanf(fp1,"%d %d %d",&m,&n,&k);
for(i=0;i<m;i++)
  for(j=0;j<n;j++)
  {fscanf(fp1,"%d",&a[i][j]);
      if(a[i][j]>max1)
      {   h=i;l=j;h1=i;l1=j;max1=a[i][j];
      }
  }
for(i=0;i<m;i++)
  {for(j=0;j<n;j++)
              printf("%3d",a[i][j]);
  printf("\n");}
sj=sj+h1+2;
while(sj+h1<=k)
{max2=max2+a[h1][l1];
a[h1][l1]=0;
max1=0;
h=h1;l=l1;
// printf("%d %d %d\n",max2,h1,l1);
for(i=0;i<m;i++)
        for(j=0;j<n;j++)
          if(a[i][j]>max1) {h1=i;l1=j;max1=a[i][j];}
f=abs(h-h1);
g=abs(l-l1);
sj=sj+f+g+1;    
// printf("%d %d\n",max1,sj+l1);
}
fprintf(fp2,"%d",max2);
fclose(fp1);
fclose(fp2);
getche();
}
C
快速回复
限100 字节
 
上一个 下一个