SWUST-跳绳比赛

news2024/11/26 9:43:19

由于这里只算前60s的,又有每秒跳一个,假设60秒抽象为数组,每个值为1。根据输入来更新数组,若停下则更新为0。最后对数组求和即可。

代码如下

#include<stdio.h>
#include<stdlib.h>
int main() {
    int n;
    scanf("%d", &n);
    while (n--) {
        int arr[60] = { 0 };
        int t, p = 0, sum = 0;
        scanf("%d", &t);
        int* ptr = (int*)malloc((t + 1) * sizeof(int));
        for (int i = 0; i < t + 1; i++) ptr[i] = 0;
        for (int i = 1; i <= t; i++) {
            scanf("%d", ptr + i);
            p += (ptr[i] - ptr[i - 1]);
            if (p <= 59) {
                for (int j = p; j <= p + 2; j++) {
                    arr[j] = 1;
                }
                p += 3;
            }
        }
        for (int i = 0; i < 60; i++) {
            if (arr[i] != 1)
                sum++;
        }
        printf("%d\n", sum);
    }
    return 0;
}

好吧,虽然能过,但是很不推荐这种方法。。。

再观察一下题目,现在我们把数组丢掉。直接从每次停下时入手,其实我们只需要找出60秒内停下次数就可以,结果就是60-停下次数*3.那么停下次数怎么找呢?首先当前时间和60进行比较,如果最后一次当前时间未到60秒,那么次数就是n

        如果某一次当前时间超过60秒,那么次数计到上一次为止。可以证明60秒时一定处于这二次跳停之间。

        然后发现一个问题:比如第五次停下时累计跳了47次,算当前时间就是62。我们计4次,结果为48,但是实际为47,为什么呢?

        我们来回忆一下过程,可以发现问题就是错误的认为所有情况中这个停下时间段都没有被60秒时截断。处理为截断时就取累计跳数

代码如下

#include<stdio.h>
#include<stdlib.h>
int main() {
    int n;
    scanf("%d", &n);
    while (n--) {
        int t;
        scanf("%d", &t);
        int* ptr = (int*)malloc((t + 1) * sizeof(int));
        for (int i = 1; i <= t; i++) 
            scanf("%d", ptr + i);
        if (ptr[t] + t * 3 <= 60) {
            printf("%d\n", 60-t*3);
        }
        else {
            for (int i = 1; i <= t; i++) {
                int tim = ptr[i] + i * 3;
                if (tim >= 61 && tim <= 62) {
                    printf("%d\n", ptr[i]);
                    break;
                }
                else if (tim > 62) {
                    printf("%d\n", 60 - (i - 1) * 3);
                    break;
                }   
            }
        }        
    }
    return 0;
}

我觉得不如第一种方法好想。。。主要这里还有个边界处理。

欢迎大佬分享更优质的方法 

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

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

相关文章

Qt前端技术:2.QSS

border-style&#xff1a;后边是两个参数的话第一个参数改变上下的style 第二个参数改变左右的style 如果后边是三个参数的话第一个参数改变上边的style第二个参数改变左右的style&#xff0c;第三个参数改变的下边的style 如果后边是四个参数的话对应的顺序为上&#xff0c;右…

【蓝桥杯】专题练习

前缀和 3956. 截断数组 - AcWing题库 一看到题目很容易想到的思路是对数组求前缀和&#xff0c;然后枚举两个分段点就好&#xff0c;时间复杂度是On^2&#xff0c;n是1e5会t&#xff0c;需要优化。 朴素的代码&#xff0c;会超时&#xff1a; #include <bits/stdc.h> u…

Floating point exception

参考:https://blog.csdn.net/yyangzhenjie/article/details/87859506?spm1001.2101.3001.6661.1&utm_mediumdistribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-87859506-blog-126091159.235%5Ev39%5Epc_relevant_3m_sort_dl_base2&depth_1-ut…

使用包、Crate 和模块管理项目(下)

1、使用 use 关键字将路径引入作用域 在之前的示例中我们引用模块中的函数或者结构体之类的&#xff0c;都是需要用到相对路径或者绝对路径去引用&#xff0c;然尔在这里&#xff0c;有一种方法可以简化这个过程。我们可以使用 use 关键字创建一个短路径&#xff0c;然后就可以…

Spring Boot3通过GraalVM生成exe执行文件

一、安装GraalVM 1、官网&#xff1a;https://www.graalvm.org/downloads/ 2、配置环境变量 2.1、环境变量必须使用JAVA_HOME&#xff0c;否则会出现问题 2.2、在系统变量配置Path,%JAVA_HOME%\bin&#xff0c;注意必须放在顶部第一位 2.3、配置jdk的环境变量&#xff0c;在P…

IDEA中如何创建各种类型的java工程

如果你的工程下面的module没有互相依赖&#xff0c;就相当于是一个小的项目&#xff0c;idea版本不同&#xff0c;细节可能不同 1、普通的Java 工程 在工程上&#xff0c;右键- New - Module&#xff0c;如下&#xff1a; 指明Java工程的名称及使用的JDK版本&#xff1a; 创建…

Redis设计与实现之数据库

目录 一、数据库 1、数据库的结构 2、 数据库的切换 3、 数据库键空间 4、键空间的操作 添加新键 删除键 更新键 取值 其他操作 5、 键的过期时间 6、过期时间的保存 7、设置生存时间 8、过期键的判定 9、 过期键的清除 定时删除 惰性删除 定期删除 10、过期…

基于SSM+Vue的新闻管理系统

基于SSMVue的新闻管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 新闻列表 管理员界面 用户界面 摘要 新闻管理系统基于SSM&#xff08;Spr…

java之HikariCP连接池介绍和使用方法 简单易懂!!!

文章目录 &#x1f60e;一、HikariCP连接池介绍&#x1f60e;二、导入的jar包&#x1f60e;三、代码演示&#x1f9e8;Properties配置文件&#x1f9e8;使用配置文件连接&#x1f9e8;运行结果 &#x1f60e;四、总结 ✨前言&#xff1a;本章主要学习hikaricp连接池的介绍以及使…

21 3GPP中 5G NR高速列车通信标准化

文章目录 信道模型实验——物理层设计相关元素μ(与子载波间隔有关)设计参考信号(DMRS) 本文提出初始接入、移动性管理、线性小区设计等高层技术。描述3GPP采用HST场景的评估参数&#xff0c;阐释了HST应用的物理层技术&#xff0c;包括数字通信和参考信号设计&#xff0c;链路…

@德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?

德人合科技 | 天锐绿盾加密软件是一款全面保障企业电脑数据和安全使用的加密软件 PC端访问地址&#xff1a;www.drhchina.com 它的功能包括但不限于&#xff1a; 实时操作日志&#xff1a;可以实时详细地记录所有终端的操作日志&#xff0c;包括终端上窗口标题的变换、程序的…

FFmepeg——视频处理工具安装以及简单命令学习。

FFmpeg 是一个免费、开源且高度可定制的多媒体处理工具&#xff0c;它是一个强大的跨平台框架&#xff0c;用于处理音频、视频、多媒体流和图像。FFmpeg 的主要功能包括解码、编码、转码、流处理、多路复用、分离、合并、过滤等&#xff0c;支持多种音视频格式&#xff0c;包括…

Flink(十)【处理函数】

前言 冬天学习成本太高了&#xff0c;每天冻得要死&#xff0c;自习室人满为患&#xff0c;确实是辛苦。学校基本的硬件条件差的一批&#xff08;图书馆贼小贼偏僻、老教室暖气还没有地板热、空教室还得自己一个一个挨着找&#xff09;&#xff0c;个体无法改变环境只能顺应了&…

探索 Vuex 的世界:状态管理的新视角(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

XM平台官网开户注册流程图解

注册前准备 在进行XM外汇官网注册之前&#xff0c;首先需要准备必要的信息&#xff0c;包括个人身份信息、联系方式以及相关财务信息。确保这些信息的准确性是保证注册流程顺利进行的关键。 一、要访问XM外汇官方网站&#xff0c;首先打开您的浏览器。在浏览器的地址栏中输入…

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.非洲秃鹫算法4.实验参数设定5.算法结果6.…

环境搭建及源码运行_java环境搭建_idea版本下载及安装

1、介绍 Idea是一款被广泛使用的Java集成开发环境&#xff0c;它提供了丰富的功能和工具来帮助开发人员更高效地编写和调试代码。作为一款开源软件&#xff0c;Idea不仅提供了基本的代码编辑、自动完成和调试功能&#xff0c;还支持大量的插件和扩展&#xff0c;可为开发人员提…

MySQL的增删改查(进阶)--下

3. 新增 插入查询结果 在一张表中插入另一张表的查询结果 语法为&#xff1a; INSERT INTO table_name [(column [, column ...])] SELECT ...该语句是组合技&#xff1a;把插入语句和查询语句结合到一起了—以查询结果&#xff0c;来作为插入的值。即把表一查询出来的结果集合…

从西工大安全事件浅谈特权账号管理系统

去年9月&#xff0c;国家计算机病毒应急处理中心发布《西北工业大学遭美国NSA网络攻击事件调查报告&#xff08;之一&#xff09;》&#xff08;以下简称“西工大事件报告”&#xff09;&#xff0c;以充分详实的证据揭示了美国NSA使用41种武器&#xff0c;先后使用了遍布17个国…

创建Maven Web工程

目录下也会有对应的生命周期。其中常用的是&#xff1a;clean、compile、package、install。 比如这里install &#xff0c;如果其他项目需要将这里的模块作为依赖使用&#xff0c;那就可以 install 。安装到本地仓库的位置&#xff1a; Java的Web工程&#xff0c;所以我们要选…