[PAT乙级]自测3

采花生 题目描述 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株 阅读详情

[PAT乙级]自测3

自测题4 1001.采花生

题目描述
鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。

鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。”

我们假定多多在每个单位时间内,可以做下列四件事情中的一件:

  1. 从路边跳到最靠近路边(即第一行)的某棵花生植株;
  2. 从一棵植株跳到前后左右与之相邻的另一棵植株;
  3. 采摘一棵植株下的花生;
  4. 从最靠近路边(即第一行)的某棵花生植株跳回路边。

现在给定一块花生田的大小和花生的分布,请问在限定时间内,多多最多可以采到多少个花生?

注意可能只有部分植株下面长有花生,假设这些植株下的花生个数各不相同。例如花生田里只有位于(2, 5), (3, 7), (4, 2), (5, 4)的植株下长有花生,个数分别为 13, 7, 15, 9。多多在 21 个单位时间内,只能经过(4, 2)、(2, 5)、(5, 4),最多可以采到 37 个花生。

输入描述:
输入包含多组数据,每组数据第一行包括三个整数 M(1≤M≤20)、N(1≤N≤20)和 K(0≤K≤1000),用空格隔开;表示花生田的大小为 M * N,多多采花生的限定时间为 K个单位时间。

紧接着 M 行,每行包括 N 个自然数 P(0≤P≤500),用空格隔开;表示花生田里植株下花生的数目,并且除了0(没有花生),其他所有植株下花生的数目都不相同。

输出描述:
对应每一组数据,输出一个整数,即在限定时间内,多多最多可以采到花生的个数。

输入例子:

6 7 21
0 0 0 0 0 0 0
0 0 0 0 13 0 0
0 0 0 0 0 0 7
0 15 0 0 0 0 0
0 0 0 9 0 0 0
0 0 0 0 0 0 0

输出例子:

37
  • 这道题严格按照题意走,从最多花生的那一棵开始采摘
  • 不需要最优解!!!!!!!
  • 提交代码时有个样例一直不通过,样例只有一个1,感觉很无奈啊,明明输入至少三个数,这让我怎么破,很绝望
  • 提示是这样的

测试用例:
1
对应输出应该为:
0
你的输出为:
Q

没有AC的代码:(我实在找不出错误)

#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
struct node{
    int x;
    int y;
};
void sort(vector<int> &v, vector<node> &pos){
    int vlen = v.size();
    for(int i=0; i<vlen-1; i++){
        for(int j=i+1; j<vlen; j++){
            if(v[i] < v[j]){
                int temp = v[i];
                v[i] = v[j];
                v[j] = temp;

                node temp1 = pos[i];
                pos[i] = pos[j];
                pos[j] = temp1;
            }
        }
    }
}
int len(node a, node b){
    int m=0, n=0;
    m = a.x-b.x>0 ? a.x-b.x : b.x-a.x;
    n = a.y-b.y>0 ? a.y-b.y : b.y-a.y;
    return m+n;
}
int main()
{
    int m,n,k;
    while(~scanf("%d %d %d", &m, &n, &k)){
        if(k == 0){
            cout << 0;
            return 0;
        }
        int arr[m+1][n+1];
        vector<int> v;//地下有花生的个数
        vector<node> pos;//地下有花生的坐标
        for(int i=1; i<=m; i++){
            for(int j=1; j<=n; j++){
                cin >> arr[i][j];
                if(arr[i][j] != 0){
                    v.push_back(arr[i][j]);
                    node temp;
                    temp.x = i;
                    temp.y = j;
                    pos.push_back(temp);
                }
            }
        }
        if(v.size() == 0){
            cout << 0;
            return 0;
        }
        sort(v, pos);//按照采摘顺序(花生数目从大到小)排序
        int res=0;//最大采摘数目
        node a; a.x = 0; a.y = pos[0].y;//起始位置
        int vlen = v.size();
        for(int i=0; i<vlen; i++){
            if(k >= len(pos[i],a)+1+pos[i].x){
                res += v[i];
                k -= len(pos[i],a)+1;//采摘时间减少
                a.x = pos[i].x;//获取新的起始位置
                a.y = pos[i].y;
            }else{
                break;
            }
        }
        cout << res;
    }

    return 0;
}

注意:以上答案没有AC,我看了讨论区,其实基本都是一个思路,有兴趣点击链接

TI C2000 , .cmd文件,.TI.ramfunc,将程序分配为在RAM中运行/Flash运行的配置方法和原理讲解,(如28375S ,280049,28335等等芯片) 1 基础知识讲解 1.1 在RAM中运行还是在flash中运行指的是什么? 1.1.1 背景:程序编译完之后生成的.bin文件,.bin文件中包含代码段,代码段中全是汇编指令,而汇编指令中包含多个函数,各函数头的地址不同,如存在A函数和B函数,假设RAM地址区间是0x0000-0x8000,flash的地址区间是0xA000-0xF000,A函数要调用B函数,则A函数调用B函数的那段汇编指令中包含的是B函数头的存储地址,A函数和B函数都在flash中有存储 1.1.2 情况1:B函数是配置为在RAM中运行, 阅读详情

相关推荐

MounRiver避坑实录:手把手迁移CH32V307 EVT工程到自定义目录

本文详细记录了将沁恒CH32V307的EVT工程迁移到自定义目录的完整流程与避坑指南。针对MounRiver Studio的虚拟链接机制,重点讲解了如何清理旧配置、重新设置头文件路径、链接脚本等关键步骤,帮助开发者创建独立、可维护的MCU项目工程。

uber9的博客 244

001 采花生

#include<iostream> #include<math.h> using namespace std; struct Peanuts { int n; //横坐标 int m; //纵坐标 int number; //该点花生数量 }; int main() { int n, m, p, k; Peanuts peanuts[405] = {}; ...

Sakura_Sora的博客 318

C# 【WebService编写调用】

😹 觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!!

只有登上山顶,才能看到那边的风光 1175

摘花生 OpenJ_Bailian - 2950

摘花生 OpenJ_Bailian - 2950 题目描述 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训

退役的铜牌狗 811

HC32F460 SPI DMA 实现高效TFT屏幕刷新的实战解析

本文针对HC32F460 MCU驱动TFT屏幕时刷新卡顿的问题,深入解析了SPI DMA技术的实战应用。通过对比传统查询模式与DMA模式的性能数据,详细阐述了如何配置SPI与DMA资源、构建核心驱动框架,并提供了避坑指南与进阶优化思路,最终实现高效、流畅的屏幕刷新,显著降低CPU占用率。

weixin_29163797的博客 152

用RK3588 NPU加速人脸识别:从本地测试到服务器部署的完整流程(含ONNX模型)

本文详细介绍了如何利用RK3588 NPU加速人脸识别系统,从模型优化到高并发服务部署的全流程。通过RetinaFace和FaceNet模型的协同推理,结合ONNX模型转换和NPU特有优化技巧,显著提升识别效率。文章还涵盖了gRPC通信架构设计、性能压测及实际部署经验,为开发者提供了一套完整的解决方案。

weixin_29058331的博客 465

PAT乙级-【题目+解答】汇总(100%原创/100%完成)

PAT乙级-【题目+解答】汇总 PAT乙级-AC全解汇总 PAT乙级解答集合

卷子的博客 4万+

RS485设备联网避坑指南:塔石串口服务器在MODBUS平台中的3个关键配置项

本文针对塔石串口服务器在MODBUS物联网平台接入中的常见问题,详细解析了三个关键配置项:工作模式选择、远程端口与保活机制、寄存器映射与轮询策略。通过对比错误与正确配置案例,帮助工程师避开配置陷阱,实现RS-485设备的稳定、高效联网,提升批量部署的成功率与系统可靠性。

weixin_29281941的博客 407

PAT乙级题目合集(思路笔记)

详细解析PAT乙级110道真题

前端小白的成长之路 1305

移花接木,玩转CANoe的几种扩展接口应用(五)——串口设备

近期看到粉丝朋友在CANoe自动化测试方面的关注度很大,今天就围绕这个做一个专题,总结一下以往项目上用过的几种CANoe扩展接口,分享出来希望对相关领域的网友有所帮助。本文是该专题的第五篇文章,主要讲解了串口设备的功能配置、连接方法、配置方法、调用方法,最后分析了这种扩展借口应用的特点和适用场景。

Mr.Cssust的博客 2370

【微服务】SpringBoot 对接飞书审批流程使用详解

SpringBoot 对接飞书审批流程使用详解

congge_study的博客 3771

[PAT乙级]自测1

[PAT乙级]自测 1之前刷完了PAT的真题,没有自测过,今天在牛客网上找了4道题测试了一下,两道通过,一道超时,另一道总是有个样例不通过,但是感觉那个样例很奇怪….. 自测题1 1008.童年生活二三事NowCoder小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下NowCoder从第0阶到第N阶共有几种走法

whl_program的博客 612

超级详细的GNS3最新版3-2.2.50安装配置教程,网工速度收藏!

你好,这里是网络技术联盟站,我是瑞哥。上周给大家分享了GNS3安装包。周末的时候有小伙伴在安装的时候遇到了一些问题,瑞哥周末特地从头安装了一下GNS3,今天给大家出个安装的教程,每一步的步骤我都截图了下来,希望对大家有所帮助!

网络技术联盟站 1109

PAT 中国大学MOOC-陈越、何钦铭-数据结构-起步能力自测题 题解

PAT 中国大学MOOC-陈越、何钦铭-数据结构-起步能力自测题 题解

weixin_41801682的博客 3367

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[PAT乙级]自测2

[PAT乙级]自测2自测题1 1014.因子个数 题目描述 一个正整数可以分解成一个或多个数组的积。例如36=2*2*3*3,即包含2和3两个因子。NowCoder最近在研究因子个数的分布规律,现在给出一系列正整数,他希望你开发一个程序输出每个正整数的因子个数。输入描述: 输入包括多组数据。 每组数据仅有一个整数n (2≤n≤100000)。输出描述: 对应每个整数,输出其因子个数,每个结

whl_program的博客 393

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

自测-3 数组元素循环右移问题 (20 分)

题目实际上为PAT乙级 1008题 思路: 一开始看上去觉得无从下手,不能构建数组,就想着构造函数来交换数的位置,后来发现 只要在输出时掌握规律 就很好下手了 :先把这个数列后面的输出了,再把这个数列前面的输出了 用2个for循环就能搞定。 注意: 当m大于等于n的时候要将 m=m%n 来处理 ,m大于等于n就会重复运算 没有必要 代码如下: ...

清风笑的博客 555

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PAT乙级刷题避坑指南:从‘我要通过!’到‘狼人杀’,那些题目里没说清的隐藏考点

本文深入解析PAT乙级题库中隐藏考点的解题技巧,从‘我要通过!’到‘狼人杀’等典型题目,揭示题目描述中的隐含条件和常见误区。通过具体案例拆解,帮助考生掌握从模糊描述中提取关键信息的能力,提升刷题效率与通过率。

weixin_27051161的博客 358

自测-2 素数对猜想 (20 分)

实际题目为PAT 乙级 1007题 思路: 构建一个isprime函数来判断这个数是否为素数,在判断时有一个要点:就是循环的时候这个数除的数只要从2到这个数的平方根即可,不然会超时。 注意: 1不是素数 要想有相邻且相差为2的素数对,这个数至少大于等于5 代码如下: ...

清风笑的博客 256

【PAT乙级】B1001-B1095刷题记录

本文记录了我刷PAT题目的解法和思维

memcpy0的博客 4355

PAT-乙级1008:数组元素右移问题

1008. 数组元素循环右移问题   (20分) 一个数组AA中存有NN(>0>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移MM(\ge 0≥0)个位置,即将AA中的数据由(A_0 A_1 \cdots A_{N-1}A​0​​A​1​​⋯A​N−1​​)变换为(A_{N-M} \cdots A_{N-1} A_0 A_1 \cdots A_{N-M-1}

flhsxyz的博客 297

python北京理工大学慕课_Python语言程序设计

0。我忘记了帐户信息怎么办呀?!答:如果是拼题A上的,可以自己用邮箱找回。如果是PAT上的,请用你注册时登记的电子邮箱发求助信到 chenyue@zju.edu.cn。1。我不是计算机专业的,能学这门课吗?答:只要会写程序就能学。2。我数学不好,能学这门课吗?答:会算术就可以了…… 有个别例子涉及基础数学概念(比如什么是多项式),花一分钟上网搜索一下定义就可以搞定。3。我不会写程序,能学这门课吗?...

weixin_42310670的博客 531

PAT乙级(Basic)题库---1021

题目 1021-个位数统计 解题思路 通过字符串读入数据,遍历字符串记录各个数字的出现次数,最后按格式和升序输出出现次数不为0的数字即可。 代码 #include<iostream> #include<sstream> #include<algorithm> #include<string> #include<stack> #includ...

濠well的博客 242

PAT乙级题库汇总(共95道题)

(1)对于刷乙级题库,我们需要掌握哪些知识? 官⽹对于PAT⼄级考试应具备的能⼒是这样描述的: 1.基本的C/C++的代码设计能⼒,以及相关开发环境的基本调试技巧; 2.理解并掌握最基本的数据存储结构,即:数组、链表; 3.理解并熟练编程实现与基本数据结构相关的基础算法,包括递归、排序、查找等; 4.能够分析算法的时间复杂度、空间复杂度和算法稳定性; 5.具备问题抽象和建模的初步能⼒,并能够⽤所学⽅法解决实际问题. (2)如何快速补充理论知识? 针对刷题过程中遇到的题⽬直接去针对性搜索学习相关理论知识也

以码平川的博客 5277

牛客网 PAT乙级练习题 1001采花生

链接:https://www.nowcoder.com/questionTerminal/83740e9b96074dd89edaf9bfad43cac3来源:牛客网鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田...

bug++ 578

PAT乙级(Basic Level)练习题(持续更新)

PAT乙级(Basic Level)练习题 题目列表1001 采花生1002 NowCoder数列 1001 采花生 #include<iostream> #include<algorithm> #include<vector> #include<cmath> using namespace std; struct block{ int x,y,num; block(){ } block(int x,int y,int num):x(x),y(y),

无 579

攀拓(PAT)- 程序设计(乙级)2024年春季考试

在攀拓考试的能力评估报告中,需要用 AI(人工智能)算法,根据考生的表现自动生成一段评语。本题并不是要求你写出生成评语用的代码,只是要求你准备好调用这个算法的输入数据。 首先,已经有算法为每位考生计算出了 5 个维度的能力评估值,分别是:基础知识、进阶知识、熟练度、准确性、专业性。我们不妨将这些维度从 1 到 5 顺次编号。每个能力评估值都是 [0, 100] 区间内的整数。你先要获得每一个维度上所有$N$位考生的中位线值 —— 如果$N$是奇数,那么中位线是从大到小第$(N+1)/2$个值;如果$N$是偶

weixin_50917576的博客 2031
上一篇: [PAT乙级]自测2
下一篇: [PAT甲级]1005. Spell It Right (20)(求数字各个位上的和,英文输出)
whl_program
博客等级 码龄11年 101粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值