CSDN 每日一练用例数据缺失了怎么办?

news2024/11/24 3:39:23

CSDN 每日一练用例数据缺失了怎么办?

  • 引子
    • 1、用例与结果不匹配
    • 2、阅读理解困难
    • 3、用例数据缺失
  • 用例数据缺失,却有人 AC ?
    • 神奇的 c++
    • 28761 津津的储蓄计划
    • 70093 近视的小张
  • 小结
  • 最后的吐槽

引子

老顾最近几个月经常在 CSDN 举办的周赛上浑水摸鱼,偶尔还能拿个名次。但是也遇到过不少问题,很多算法老顾并没有积累,都是临时想临时写的,所以名次也不会很高。

在周赛的过程中,还有每日一练的刷题过程中,碰到了几个典型的问题,主要问题有:

CSDN 文盲老顾的博客,https://blog.csdn.net/superwfei

1、用例与结果不匹配

这个问题还是比较常见的。

比如拯救爱情https://edu.csdn.net/skill/program/28765?practiceId=19532431 ,老顾也就只能混个 70% 的通过率。

比如硬币的面值https://edu.csdn.net/skill/program/28770?practiceId=19652368 ,嗯这个题目经过反馈,用例已修改

比如环形单向链表https://edu.csdn.net/skill/program/28774?practiceId=19566621,骗分是能 AC 了,但是用例 [[1, 2], [1, 3], [2, 3]],期待返回3 是个什么意思?

2、阅读理解困难

比如喜水青蛙,https://edu.csdn.net/skill/program/28751?practiceId=26238444 ,这个题目问的是不得不踩的石头有多少个

比如括号上色,https://edu.csdn.net/skill/program/28815?practiceId=26943303 ,这个题目的条件是,每对括号至少有一个需要上色

比如套盒子,https://edu.csdn.net/skill/program/28777?practiceId=26819414 ,截止到写本文的时候,还是没弄明白到底怎么套,虽然可以骗分。。。

还有更多更多的题目,描述的不够清晰,这都已经成为 CSDN 的特色了,考的不是算法,而是阅读理解。

3、用例数据缺失

比如津津的储蓄计划https://edu.csdn.net/skill/program/28761?practiceId=1

比如近视的小张https://edu.csdn.net/skill/program/70093?practiceId=1之类的。

用例数据缺失,却有人 AC ?

平时刷每日一练的时候是不知道,用例缺失咱也没办法,提交反馈也没人理会,就当这个题目有问题好了。

结果,这些题目出现在周赛上之后,却发现有人满分了?那是大大的诧异啊。老顾就想问问,这数据都不完整的,你怎么搞成 ac 的?

于是老顾就找到了对应题目的 ac 答案,发现全都是 c++ 的代码。痛苦啊,老顾完全没用过 c++,连个抛异常都不知道怎么弄,更不要说调试了。

好在最终百度出了 c++ 抛异常的方式,于是,老顾就对着两个题目《津津的储蓄计划》和《近视的小张》进行了一番测试。

验证过程老顾已经放到自己的个人社区了。点击上边两个题目的标题,就可以看到老顾的 AC 答案了。

神奇的 c++

那么,到底为什么用 c++ 会 ac 呢?

原来,这些人的代码用的都是 cin >> 运算,而这个运算,有一个神奇的特性,他会将空格、回车之类的,都当做数据分隔符,然后另外一个更为神奇的骚特性就是,如果指定了输入数据的数量,而数据缺失,达不到这个数量,这个时候再执行 cin>> 的时候,会重复录入最后一个数据!

28761 津津的储蓄计划

好家伙。。。。津津的储蓄计划,部分用例只有11个数据,然后 c++ 用 cin>> 就直接把第11个数据重复一遍,当做第12个数据了。。。。行,我是很服气的。

# 津津的储蓄计划
import sys
lines = sys.stdin.readlines()
while len(lines) < 12:  # 不足12个数据的,用最后一个数据补充
    lines.append(lines[-1])
a,b,c = 0,0,0
for i in range(12):
    c += 300 - int(lines[i].strip())
    if c < 0:
        a = -1 - i
        break
    b += c // 100
    c %= 100
if a < 0:
    print(a)
else:
    print(b * 120 + c)

70093 近视的小张

另一个题目,近视的小张,则更奇怪了,第二个用例输入是这样的:

第一行两个数字,n 和 m,是 200 160
第二行数据是所有柱子的高度,长度应该是200个,实际录入是170多个
第三行数据是所有柱子的位置,长度确实是200个,这个没问题
第四行数据,是小张所有小伙伴的视力,160个数据也没问题

然后,用 c++ 得到了一个神奇的结果

第一行 n m 没问题
第二行高度 170 多,然后不够200个的部分,由第三行数据补足
第三行位置,前边的数据用来补高度数据,所以位置数据不够200,由第四行数据补足
第四行位置,前边部分数据用来补足了位置信息,所以视力信息不够了,于是重复最后一个数据,直至视力数据够160

然后 c++ 这样的代码就 AC 了。。。。。

# 近视的小张
m,n = map(int,input().split())
h = list(map(int,input().split()))
p = list(map(int,input().split()))
u = list(map(int,input().split()))
if len(h) < n:   # 如果高度数据长度不够
    z = n - len(h) # 计算缺失多少数据
    h += p[:z]     # 由后边的数据进行递补
    p = p[z:] + u[:z]
    u = u[z:] + [u[-1]] * z  # 当最后一组数据递补后,由最后一个数据重复进行填充
v = sorted([[p[i],h[i]] for i in range(n)])
f = [v[0]]
for i in range(1,n):
    if v[i][1] > f[-1][1]:
        f.append(v[i])
for i in range(m):
    t = [v for v in f if v[0] <= u[i]]
    if len(t) == 0:
        print(-1)
    else:
        print(t[-1][0])

小结

老顾弄到这里,用 c++ 抛出用例后,当时就一口老血要喷到屏幕上,这都叫什么事啊。

可以看到,老顾在个人社区里的答案,就是根据这个逻辑,对数据进行了一下补全,然后也能得到一个 AC 的结果了。

在群里和问哥讨论,被笑称这是一个民间补丁。。。。要不是不知道为什么又人能 AC ,老顾至于费这劲?

总之,在碰到部分题目无法 AC 的时候,应该把用例拉出来看一看,如果是因为数据缺失造成的结果不正确,那么就用这个逻辑,对数据进行一下补充,也许就能 AC 了呢?

最后的吐槽

CSDN 周赛,现在举办了50多期了,老顾是从27期才进来混的,所以很多题目老顾也没见过。

现在这个周赛的人也是在慢慢减少,就不说考试时,有时候提交没有响应,各种幺蛾子频出的填空题,这些乱七八糟的问题了。

关键,你连个正式的反馈渠道都没有啊,亲,这用户要到哪里才能找到能够提交问题的途径啊。

考试小助手最近也消失了,我的考试报告什么时候能修复下?让我下载了再出问题好不好?
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tomcat 部署

一.Tomcat介绍 Servlet 是 Java Servlet 的简称&#xff0c;可以理解为是一个服务连接器&#xff0c;是用 Java 编写的服务器端程序&#xff0c;具有独立于平台和协议的特性&#xff0c; 简单的理解&#xff1a;servlet 就是一个中间件&#xff0c;包含了接口和方法&#xff0…

5.2.6 地址解析协议ARP

5.2.6 地址解析协议ARP 我们知道要想实现全球范围内主机之间的通信&#xff0c;必须要有两个统一&#xff0c;一个是地址&#xff0c;另一个是数据格式&#xff0c;我们使用IP地址来实现统一的地址&#xff0c;使用IP分组实现统一的数据格式&#xff0c;在前面局域网的学习中我…

【AIGC】13、GLIP | 首次将 object detection 重建为 phrase grounding 任务

文章目录 一、背景二、方法2.1 将 object detection 和 phrase grounding 进行统一2.2 Language-aware deep fusion2.3 使用语义丰富的数据来进行预训练 三、效果3.1 迁移到现有 Benchmarks3.2 在 COCO 上进行零样本和有监督的迁移3.3 在 LVIS 上进行零样本迁移学习3.4 在 Flic…

android 如何分析应用的内存(四)

android 如何分析应用的内存&#xff08;四&#xff09; 接上文 在介绍细节部分时&#xff0c;先介绍了各种工具的使用&#xff0c;而这些工具&#xff0c;大部分都用来调试&#xff0c;诸如&#xff1a;特定内存点&#xff0c;堆栈&#xff0c;寄存器&#xff0c;变量值等的…

MySQL安装流程 及 8.0与5.7区别

一、MySQL版本介绍 1、MySQL 8.0 窗口函数&#xff1a;MySQL 8.0版本支持窗口函数&#xff0c;这是数据分析工作中非常常用的一类函数。窗口函数可以让用户在单个查询中跨多个行检索数据&#xff0c;并在查询结果中对数据执行计算。隐藏索引&#xff1a;在MySQL 8.0版本中&am…

C++STL详解 string【C++】

文章目录 函数模板函数模板的原理函数模板的实例化模板参数的匹配原则 类模板类模板的定义格式类模板的实例化 string 函数模板 函数模板的原理 template <typename T> //模板参数 ——类型 void Swap(T& x1, T& x2) {T tmp x1;x1 x2;x2 tmp; } int main()…

牛客网语法刷题篇(C语言) — 输出格式化

&#x1f929;本文作者&#xff1a;大家好&#xff0c;我是paperjie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;内容专栏&#xff1a;这里是《C语言—语法篇》专栏&#xff0c;笔者用重金(时间和精力)打造&#xff0c;基础知识一网打尽&#xff0c;…

解析Linux中断子系统之中断映射

中断是当前计算机系统的基础功能&#xff0c;也是系统响应外设事件的必备桥梁。不同的架构对中断控制器有不同的设计理念&#xff0c;本文针对ARM公司提供的通用中断控制器&#xff08;GIC,Generic Interrupt Controller&#xff09;介绍在linux系统中的硬件中断号与软件中断号…

SpringBootWeb登录认证

1. 登录功能 1.1 需求 在登录界面中&#xff0c;我们可以输入用户的用户名以及密码&#xff0c;然后点击 “登录” 按钮就要请求服务器&#xff0c;服务端判断用户输入的用户名或者密码是否正确。如果正确&#xff0c;则返回成功结果&#xff0c;前端跳转至系统首页面。 1.2 …

简单聊一聊数据库驱动

数据库驱动通常是数据库厂家提供的&#xff0c;他们按照jdbc协议对自家数据库封装了一套可对外调用的API。在应用程序和数据库之间起到了桥接的作用。它是一个软件组件&#xff0c;提供了与特定数据库系统进行通信的接口和功能。 1. 数据库驱动的作用&#xff1a; 连接数据库&…

AAOS 音频动态路由

文章目录 基本概念车载音频配置文件外部的配置音频区的方式车载音频服务配置路由流程框架中获取可用输出设备配置例子测试方法相关问题 基本概念 Android 管理来自 Android 应用的声音&#xff0c;同时控制这些应用&#xff0c;并根据其声音类型将声音路由到 HAL 中的输出设备…

FastAPi上传文件报错,There was an error parsing the body

问题描述 通过postman调用fastapi编写的文件接口报错&#xff0c;如下图&#xff1a; {"detail": "There was an error parsing the body" } 问题的解决过程 postman本身的问题 postman有个work directory的概念&#xff0c;所以再使用postman上传的文…

Git常用命令submodule

Git常用命令submodule 1、需求 当程序比较大参与开发人员较多时&#xff0c;代码管理就复杂起来。代码如果全员可见&#xff0c;可以创建 share 分支维护共用代 码&#xff0c;可以创建 core 分支维护核心算法代码&#xff0c;各进程分别占一个分支&#xff0c;定期同步 sha…

如何从 OpenAI 迁移到 Azure OpenAI(保姆级教程,包含如何兼容 JS 语言版 LangChain)

Azure OpenAI 和 OpenAI 一样&#xff0c;本质都是调用 api&#xff0c;Azure OpenAI 的使用会稍微复杂一点&#xff0c;但好处就是方便付费。 创建 Azure OpenAI 资源 首先&#xff0c;先登录 Azure 账号&#xff1a;https://azure.microsoft.com/zh-cn/ 接着创建 OpenAI 资…

硬件工程师-BOOST升压电源设计

一、Boost变换原理 开关闭合时&#xff0c;电感电压等于输入电压 开关断开时&#xff0c;电感电压输出电压-输入电压&#xff0c; 电感的感生电动势&#xff0c;N ΔΦ磁通的变化率&#xff0c;Δt时间 假设开关闭合与开关断开&#xff0c;开关断开时能量全部释放光 将第三个式…

MySQL(进阶篇1.0)

MySQL体系结构 1、连接层 最上层是一些客户端和连接服务&#xff0c;包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关安全方案。在该层上引入了线程池的概念&#xff0c;为通过认证安全接入的客户端提…

进程的通信方式有哪些?

目录 管道消息队列共享内存信号量信号套接字 管道 最初我们在学习Linux基本命令使用的时候&#xff0c;我们经常通过多个命令的组合来完成我们的需求。比如说我们想知道如何查看进程或者端口是否在使用&#xff0c;会使用下面的这条命令 netstat nlp | grep xxx 这里的"|“…

电子科技大学计算机系统结构复习笔记(四):存储系统

目录 前言 重点一览 Cache基本原理 三种映像方式 物理地址与Cache地址的映射计算 Cache块标识 Cache替换算法 Cache写策略 分离cache与一体cache Cache性能与优化 Cache性能计算 Cache性能优化 主存储器与虚拟存储器 主存储器性能优化 虚拟存储器 虚拟存储器与…

编译 ONNX 模型

本篇文章译自英文文档 Compile ONNX Models — tvm 0.13.dev0 documentation 作者是 Joshua Z. Zhang 更多 TVM 中文文档可访问 →TVM 中文站。 本文将介绍如何用 Relay 部署 ONNX 模型。 首先安装 ONNX 包&#xff0c;最便捷的方法推荐安装 protobuf 编译器&#xff1a; pi…

【资料分享】浪涌电流(Inrush Current)产生原因

1、对Inrush Current电流的直观感受 当电灯在电路中工作时&#xff0c;如果突然启动马达或者变压器时&#xff0c;会出现电灯暗一下&#xff0c;此时电灯出现暗的情况就是因为马达或者变压器启动时&#xff0c;在电路中产生较大Inrush Current&#xff0c;具体分析可以参考下图…