花生的問題
北大書上的花生問題 經測試 POJ上的無法通過 POJ上的題意看著難度太大 故暫不修改


1
#include<iostream>
2
#include<stdio.h>
3
#include<cmath>
4
using namespace std;
5
int a[21][21];
6
int n,m;
7
int r,rr;
8
int f()
9

{
10
int max=0;
11
for(int i=1;i<=n;i++)
12
for(int j=1;j<=m;j++)
13
{
14
if(max<a[i][j])
15
{
16
max=a[i][j];
17
r=i;
18
rr=j;
19
}
20
}
21
return max;
22
}
23
int main()
24

{
25
26
int htime;
27
int l,ll,t,tt;
28
scanf("%d%d%d",&n,&m,&htime);
29
for(int i=1;i<=n;i++)
30
for(int j=1;j<=m;j++)
31
{
32
scanf("%d",&a[i][j]);
33
}
34
int m=1;
35
int sum=0;
36
while(1)
37
{
38
f();
39
if(f()==0)
40
{
41
printf("%d\n",sum);
42
break;
43
}
44
l=r;
45
ll=rr;
46
if(m==1)
47
{
48
if(ll*2<=htime)
49
{sum+=a[l][ll];
50
htime=htime-ll;
51
a[l][ll]=0;}
52
else
53
{
54
printf("%d\n",sum);
55
break;
56
}
57
}
58
else
59
{
60
if((fabs(l-t)+fabs(ll-tt)+t)<=htime)
61
{
62
sum+=a[l][ll];
63
htime=htime-fabs(l-t)+fabs(ll-tt);
64
a[l][ll]=0;
65
}
66
else
67
{
68
printf("%d\n",sum);
69
break;
70
}
71
}
72
}
73
return 0;
74
}
1
#include<iostream>2
#include<stdio.h>3
#include<cmath>4
using namespace std;5
int a[21][21];6
int n,m;7
int r,rr;8
int f()9


{10
int max=0;11
for(int i=1;i<=n;i++)12
for(int j=1;j<=m;j++)13

{14
if(max<a[i][j])15

{16
max=a[i][j];17
r=i;18
rr=j;19
}20
}21
return max;22
}23
int main()24


{25

26
int htime;27
int l,ll,t,tt;28
scanf("%d%d%d",&n,&m,&htime);29
for(int i=1;i<=n;i++)30
for(int j=1;j<=m;j++)31

{32
scanf("%d",&a[i][j]);33
}34
int m=1;35
int sum=0;36
while(1)37

{38
f();39
if(f()==0)40

{41
printf("%d\n",sum);42
break;43
}44
l=r;45
ll=rr;46
if(m==1)47

{48
if(ll*2<=htime)49

{sum+=a[l][ll];50
htime=htime-ll;51
a[l][ll]=0;}52
else53

{54
printf("%d\n",sum);55
break;56
}57
}58
else59

{60
if((fabs(l-t)+fabs(ll-tt)+t)<=htime)61

{62
sum+=a[l][ll];63
htime=htime-fabs(l-t)+fabs(ll-tt);64
a[l][ll]=0;65
}66
else67

{68
printf("%d\n",sum);69
break;70
}71
}72
}73
return 0;74
}