【算法】2022第五届“传智杯”全国大学生计算机大赛(练习赛)

news2025/7/18 11:50:09

【参考:第五届“传智杯”全国大学生计算机大赛(练习赛) - 洛谷 | 计算机科学教育新生态】

练习赛满分程序(多语言):https://www.luogu.com.cn/paste/fi60s4yu

CPU一秒大概运行 1 0 8 10^8 108 次,题目一般限时1000ms,自己计算时间复杂度吧!

B:时钟

【参考:T292112 [传智杯 #5 练习赛] 时钟 - 洛谷 | 计算机科学教育新生态】
在这里插入图片描述

先计算一天的好时刻

import java.util.Scanner;

class Main {

    public static void main(String[] args) {
        // Main main = new Main();
        Scanner scanner = new Scanner(System.in);
        // 计算一天的好时刻 0:00-23:59
        int result = 0;
        int n = 1440; // 一天有1440分钟
        for (int h = 0; h < 24; h++) {
            for (int m = 0; m < 60; m++) {
                // h1h2:m1m2
                int h1 = h / 10; // 小时的第一位
                int h2 = h % 10; // 小时的第二位,下同
                int m1 = m / 10;
                int m2 = m % 10;
                // 判断等差
                if (h >= 10 && h2 - h1 == m1 - h2 && m1 - h2 == m2 - m1) {
                    result++;
                    System.out.printf("%d%d:%d%d\n", h1, h2, m1, m2);
                }
                if (h <= 9 && m1 - h2 == m2 - m1) {
                    result++;
                    System.out.printf("%d%d:%d%d\n", h1, h2, m1, m2);
                }
                n--;// 过去一分钟
                if (n < 0) // 遍历完了
                    break;
            }
        }
        System.out.println(result);
    }

}
00:00
00:12
00:24
00:36
00:48
01:11
01:23
01:35
01:47
01:59
02:10
02:22
02:34
02:46
02:58
03:21
03:33
03:45
03:57
04:20
04:32
04:44
04:56
05:31
05:43
05:55
06:30
06:42
06:54
07:41
07:53
08:40
08:52
09:51
11:11
12:34
13:57
22:22
23:45
39

最后答案

import java.util.Scanner;

class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int day = n / 1440;
        n %= 1440; // 还剩多少分钟
        int result = day * 39;

        for (int h = 0; h < 24; h++) {
            for (int m = 0; m < 60; m++) {
                // h1h2:m1m2
                int h1 = h / 10; // 小时的第一位
                int h2 = h % 10; // 小时的第二位,下同
                int m1 = m / 10;
                int m2 = m % 10;
                // 判断等差
                if (h >= 10 && h2 - h1 == m1 - h2 && m1 - h2 == m2 - m1) {
                    result++;
                    // System.out.printf("%d%d:%d%d\n", h1, h2, m1, m2);
                }
                if (h <= 9 && m1 - h2 == m2 - m1) {
                    result++;
                    // System.out.printf("%d%d:%d%d\n", h1, h2, m1, m2);
                }
                n--;// 过去一分钟
                if (n < 0) // 遍历完了
                    break;
            }
        }
        System.out.println(result);
    }

}

C:平等的交易

【参考:T292113 [传智杯 #5 练习赛] 平等的交易 - 洛谷 | 计算机科学教育新生态】

贪心

只买一次,无限次交换
为了尽可能的交换,那就尽可能先买最贵的,然后交换价值最低的物品
在这里插入图片描述

需使用快读模板

import java.io.*;
import java.util.*;

class Main {

    public static void main(String[] args) throws IOException {

        // 快速读取 int double long (char不行)
        StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        in.nextToken();
        int n = (int) in.nval;
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            in.nextToken();
            a[i] = (int) in.nval;
        }
        in.nextToken();
        int w = (int) in.nval;

        int result = 0;
        Arrays.sort(a);
        int k = 0; // 买的物品的价值
        // 尽可能买最贵的那个
        for (int i = n - 1; i >= 0; i--) {
            if (w >= a[i]) {
                k = a[i];
                break;
            }
        }

        for (int i = 0; i < n; i++) {
            if (k <= 0)
                break;
            if (k >= a[i]) {
                result++;
                k -= a[i];
            }
        }
        System.out.println(result);
    }
}

D:清洁工

【参考:T292114 [传智杯 #5 练习赛] 清洁工 - 洛谷 | 计算机科学教育新生态】

思路:由于题目给的数据范围比较小,直接暴力即可。只要坐标不是被走到的那一个,灰尘就可以直接加1, 如果是被走到的点,灰尘数不变并将记录的灰尘累计单位清零。最后按照题目要求的格式输出每个坐标的灰尘数即可。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n, m, x, y;
        n = input.nextInt();
        m = input.nextInt();
        x = input.nextInt();
        y = input.nextInt();
        String S = input.next();
        char[] cArr = S.toCharArray();
        int num = (m * (1 + m)) / 2;
        int[][] arr = new int[n + 1][n + 1]; // 计算格子上的灰的数量
        int[][] arr2 = new int[n + 1][n + 1]; // 存储格子上的灰的增量,默认初始为0
        int t = 1; // 移动次数
        for (char c : cArr) {
            if (t > m)
                break;
            arr2[x][y] = 0; // 经过当前格子,有人经过时不会落灰但灰也不会清零
            for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= n; j++) {
                    if (i != x || j != y) {
                        arr2[i][j]++; // 落灰
                        arr[i][j] += arr2[i][j]; // 加上落灰的量
                    }
                }
            }
            if (c == 'N')
                y += 1;
            else if (c == 'S')
                y -= 1;
            else if (c == 'W')
                x -= 1;
            else
                x += 1;
            t++;
        }
        // 输出每一个位置上落下的灰的量
        // 第 i 行的第 j 个数表示坐标 (j,n-i+1)上的灰的数量
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                System.out.print(arr[j][n - i + 1] + " ");
            }
            System.out.println();
        }
    }
}

E:树的变迁

【参考:T292115 [传智杯 #5 练习赛] 树的变迁 - 洛谷 | 计算机科学教育新生态】


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

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

相关文章

年产10万吨环氧树脂车间工艺设计

目 录 摘 要 1 ABSTRACT 2 1 绪论 3 1.1环氧树脂的基本性质 3 1.2 环氧树脂的特点和用途 3 1.3环氧树脂发展的历史、现状及趋势 3 1.3.1环氧树脂的发展历史 4 1.3.2环氧树脂的生产现状 4 1.3.3 环氧树脂的发展趋势 5 1.4本设计的目的、意义及内容 5 1.4.1本设计的目的 5 1.4.2…

Matlab顶级期刊配色工具Rggsci

颜色搭配是一件非常让人头疼的事情。 一方面&#xff0c;如果忽视了配色&#xff0c;就好像是做菜没放盐&#xff0c;总会感觉少些味道。 另一方面&#xff0c;如果太注重配色&#xff0c;又感觉不是很有必要&#xff0c;毕竟数据结果好看才是第一位的。 想要平衡两者&#…

18.4 嵌入式指针概念及范例、内存池改进版

一&#xff1a;嵌入式指针&#xff08;embedded pointer&#xff09; 1、嵌入式指针概念 一般应用在内存池相关的代码中&#xff0c;成功使用嵌入式指针有个前提条件&#xff1a;&#xff08;类A对象的sizeof必须不小于4字节&#xff09; 嵌入式指针工作原理&#xff1a;借用…

文华财经期货K线多周期画线技术,多重短线技术共振通道线指标公式——多周期主图自动画线

期货指标公式是通过数学逻辑角度计算而来&#xff0c;仅是期货分析环节中的一个辅助工具。期货市场具有不确定性和不可预测性的&#xff0c;请正常对待和使用指标公式! 期货指标公式信号本身就有滞后性&#xff0c;周期越大&#xff0c;滞后性越久。指标公式不是100%稳赚的工具…

cocos2dx创建工程并在androidstudio平台编译

本文主要是通过androidstudio进行编译运行cocos2dx工程。 前置条件&#xff1a; 1&#xff1a;androidstudio已经下载并安装。 2&#xff1a;cocos2dx已经下载并打开。 这里androidstudio使用2021.3.1版本&#xff0c;cocos2dx使用4.0版本。 第一步&#xff0c;首先安装py…

Hive之数据类型和视图

Hive系列 第八章 数据类型和视图 8.1 数据类型 8.1.1 原子数据类型 &#xff08;其实上图中有一点错误&#xff0c;大家可以找找看&#xff09; 说明&#xff1a; 1、Hive 支持日期类型(老版本不支持)&#xff0c;在 Hive 里日期一般都是用字符串来表示的&#xff0c;而常用…

STC 51单片机40——汇编语言 串口 接收与发送

实际运行&#xff0c;正常 ; 仿真时&#xff0c;单步运行&#xff0c;记得设置虚拟串口数据【仿真有问题&#xff0c;虚拟串口助手工作不正常&#xff01;】 ORG 0000H MOV TMOD ,#20H ;定时器1&#xff0c;工作方式2&#xff0c;8位重装载 MOV TH1,#0FDH ; 波特率…

智慧酒店解决方案-最新全套文件

智慧酒店解决方案-最新全套文件一、建设背景为什么要建设智慧酒店一、智慧酒店功能亮点 &#xff1a;二、智慧酒店八大特色&#xff1a;二、建设思路三、建设方案四、获取 - 智慧酒店全套最新解决方案合集一、建设背景 为什么要建设智慧酒店 一、智慧酒店功能亮点 &#xff1…

mysql-8.0.31-macos12-x86_64记录

常用的命令 停止MySQL服务 : sudo /usr/local/mysql/support-files/mysql.server stop 启动MySQL服务 : sudo /usr/local/mysql/support-files/mysql.server start 重启MySQL服务 : sudo /usr/local/mysql/support-files/mysql.server restart 修改mysql密码 关闭mysql服务…

Qt5开发从入门到精通——第十二篇二节(Qt5 事件处理及实例——多线程控制、互斥量、信号量、线程等待与唤醒)

提示&#xff1a;欢迎小伙伴的点评✨✨&#xff0c;相互学习c/c应用开发。&#x1f373;&#x1f373;&#x1f373; 博主&#x1f9d1;&#x1f9d1; 本着开源的精神交流Qt开发的经验、将持续更新续章&#xff0c;为社区贡献博主自身的开源精神&#x1f469;‍&#x1f680; 文…

【C语言数据结构】带头节点与不带头节点的单链表头插法对比

前言 近期在学习STM32代码框架的过程中&#xff0c;老师使用链表来注册设备&#xff0c;发现使用了不带头节点的单链表&#xff0c;注册时使用头插法。之前在本专题整理学习过带头节点的单链表&#xff0c;因此本文整理对比一下两种方式的头插法区别&#xff0c;具体实现在次&…

html表白代码

目录一.引言二.表白效果展示1.惊喜表白2.烟花表白3.玫瑰花表白4.心形表白5.心加文字6.炫酷的特效一.引言 我们可以用一下好看的网页来表白&#xff0c;下面就有我觉得很有趣的表白代码。评论直接找我要源码也行。 下载整套表白文件 二.表白效果展示 1.惊喜表白 2.烟花表白 源码…

【TS】泛型以及多个泛型参数

泛型 给函数或者属性定义类型的时候&#xff0c;类型是固定的&#xff0c;当业务发生变动时可能不好维护&#xff0c;例如&#xff1a;函数类型固定为string,后续需求更改不好维护&#xff0c;比如需要传入number类型&#xff0c;那么这个函数就不适用了 function add( val :…

数学题类英语作文

最近我看到过这样一道英语作文题&#xff0c;这类英语作文题很少见&#xff0c;但也有必要讲一讲怎么写。 简化题意&#xff1a;帮Peter完成一下一道题&#xff1a; f(x)ax2−(a6)x3ln⁡xf(x)ax^2-(a6)x3\ln xf(x)ax2−(a6)x3lnx &#xff08;1&#xff09;讨论当a1a1a1时&am…

CMake中file的使用

CMake中的file命令用于文件操作&#xff0c;其文件格式如下&#xff1a;此命令专用于需要访问文件系统的文件和路径操作 Readingfile(READ <filename> <variable>[OFFSET <offset>] [LIMIT <max-in>] [HEX])file(STRINGS <filename> <variab…

Java8-新特性及Lambda表达式

1、Java8新特性内容概述 1.1、简介 Java 8(又称为jdk1.8)是Java语言开发的一个主要版本 Java 8是oracle公司于2014年3月发布&#xff0c;可以看成是自Java 5以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性 1.2、新特性思维导图总结 1.…

JS中数组随机排序实现(原地算法sort/shuffle算法)

&#x1f431;个人主页&#xff1a;不叫猫先生 &#x1f64b;‍♂️作者简介&#xff1a;专注于前端领域各种技术&#xff0c;热衷分享&#xff0c;期待你的关注。 &#x1f4ab;系列专栏&#xff1a;vue3从入门到精通 &#x1f4dd;个人签名&#xff1a;不破不立 目录一、原地…

代码随想录刷题|LeetCode 70. 爬楼梯(进阶) 322. 零钱兑换 279.完全平方数 139.单词拆分

目录 70. 爬楼梯 &#xff08;进阶&#xff09; 思路 爬楼梯 1或2步爬楼梯 多步爬楼梯 322. 零钱兑换 思考 1、确定dp数组及其含义 2、确定递推公式 3、初始化dp数组 4、确定遍历顺序 零钱兑换 先遍历物品&#xff0c;再遍历背包 先遍历背包&#xff0c;再遍历物品 279.完全平方…

【操作系统实验】线程的创建+信号量通信

sem_init: 功能&#xff1a;初始化信号量 返回值&#xff1a;创建成功返回0&#xff0c;失败返回-1 参数sem&#xff1a;指向信号量结构的一个指针 参数pshared&#xff1a;不为&#xff10;时此信号量在进程间共享&#xff0c;为0时当前进程的所有线程共享 参数value&#xf…

react context原理

带着问题思考&#xff1a; 1 Provder 如何传递 context&#xff1f;2 三种获取 context 原理 &#xff08; Consumer&#xff0c; useContext&#xff0c;contextType &#xff09;&#xff1f;3 消费 context 的组件&#xff0c;context 改变&#xff0c;为什么会订阅更新 &a…