求助 怎么用结构体做这题???

P1086 [NOIP2004 普及组] 花生采摘

什么叫用结构体做![](//图.tk/j)
by N_z_ @ 2022-01-08 16:22:58


我才疏学浅,结构体是什么高质量算法![](//图.tk/j)
by N_z_ @ 2022-01-08 16:27:56


在 C语言 中, 结构体 (struct)指的是一种 数据结构 ,是C语言中 复合数据类型 (aggregate data type)的一类。. 结构体可以被声明为 变量 、 指针 或 数组 等,用以实现较复杂的数据结构。. 结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问
by zhoumouren @ 2022-01-08 16:28:55


https://cn.bing.com/search?q=%E7%BB%93%E6%9E%84%E4%BD%93&form=ANNTH1&refig=cc8a9235c6d54c83b44b47c239b8354f
by zhoumouren @ 2022-01-08 16:29:15


@[zhoumouren](/user/554548) 那你都知道了我就不明白你想问啥![](//图.tk/j)
by N_z_ @ 2022-01-08 16:30:45


@[N_z_](/user/320087) 我不会用呀
by zhoumouren @ 2022-01-08 16:36:30


@[zhoumouren](/user/554548) 。。。你能搜结构体不能搜结构体的使用![](//图.tk/j)
by N_z_ @ 2022-01-08 16:37:54


@[N_z_](/user/320087) 很尴尬。。。 我查了,但还不会。。。 现在属于“在线等,挺急的”
by zhoumouren @ 2022-01-08 16:43:05


~~这样如何?~~ ```cpp struct jiegouti { int n, m, Time, map[21][21], ans; jiegouti() { n = m = Time = ans = 0; memset(map, 0, sizeof map); } inline void dfs(int nowtime, int x, int y) { // nowtime表示现在的时间 // x和y表示现在的坐标 int Maxx, Maxy, Max = -99999; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) if (map[i][j] > Max) { //找到最大值 Max = map[i][j]; Maxx = i; //记下坐标 Maxy = j; } if (!y) y = Maxy; //如何在路边,跳到Maxy if (nowtime < abs(x - Maxx) + abs(y - Maxy) + Maxx + 1 || !map[Maxx][Maxy]) //若现在的时间<采(Maxx,Maxy)的时间+回到路边的时间或是(Maxx,Maxy)上没有花生就结束 return; else { //采摘 ans += map[Maxx][Maxy]; map[Maxx][Maxy] = 0; //被摘完 dfs(nowtime - abs(x - Maxx) - abs(y - Maxy) - 1, Maxx, Maxy); //继续 // nowtime减去需要的时间 //(x,y)移动到(Maxx,Maxy) } } int main() { ios ::sync_with_stdio(false); cin >> n >> m >> Time; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> map[i][j]; dfs(Time, 0, 0); //搜索 cout << ans; return 0; } }; int main() { jiegouti sol; sol.main(); } ```
by Qiaoqia @ 2022-01-08 16:54:23


@[Qiaoqia](/user/499996) n b
by zhoumouren @ 2022-01-08 16:58:41


|