• 参加了个算法比赛,真是一言难尽啊


    hello大家好呀,我是小楼。

    上周参加了一个区的程序员技能比赛的初赛,其实就是算法比赛,虽然最后结果是过了初赛,但过程真是一言难尽啊。

    这次的算法比赛和ACM非常类似,虽然我大学是数学专业,虽然大学也修过ACM这门课,但是我的算法是真的不行,很菜很菜的那种。

    好在这次比赛是组(抱大腿)队模式,3人一组,3个小时时间,一共7道算法题,1入门,2简单,2中等,2困难。

    10分钟写出入门题,但…

    由于我知道我比较菜,所以比赛一开始,我就挑了一个看起来最简单的题目做,难题交给队友。

    结果是3个小时过去,这个看起来最简单的题目,愣是没有做出来,下面就结合这道题讲讲我的心路历程。

    这道题的描述是这样的:

    看起来文字很多,其实要表达的很简单,就是输入一些成绩,每个成绩输进去时,如果超过全班最好成绩则输出prefect,如果超过自己的最好成绩则输出great,如果没超过自己最好成绩则输出bad。

    是不是很简单?用一个max变量保存全班最好成绩,用一个map保存每个人的最好成绩,不就解决了吗?

    不过这是我第一次用这个oj系统,连用户都是刚注册的,所以我还特地看了一会输入输出的demo,这次比赛只能使用ACM的输入输出模式,例如如果用的是Go语言,输入输出应该是这样:

    学会了输入输出之后,一口气写入如下的解法:

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
       
    	var n int
    	var name string
    	var x float32
    	var max float32
    	scores := make(map[string]float32, n)
    
    	fmt.Scan(&n)
    	for i := 0; i < n; i++ {
       
    		fmt.Scan(&name, &x)
    
    		if x > max || i == 0 {
       
    			fmt.Println("perfect")
    			max = x
    			scores[name] = x
    		} else {
       
    			if s, ok := scores[name]; ok {
       
    				if x > s {
       
    					fmt.Println("great")
    					scores[name] = x
    				} else {
       
    					fmt.Println("bad")
    				}
    			} else {
       
    				fmt.Println("great")
    				scores[name] = x
    			}
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    在我正得意,觉得这题10分钟就能解决的时候,提交上去的代码竟然

  • 相关阅读:
    【Rust 易学教程】学前准备:Cargo, 你好
    Linux-进程和计划任务管理⭐
    GUI编程学习
    [篇五章二]_使用 USB 系统安装盘在真机上安装激活 Windows 10 LTSC 2021 中文企业版系统
    【Linux网络】从原理到实操,感受PXE无人值守自动化高效批量网络安装系统
    阿里云新加坡主机服务器选择
    Perl语言基础概念、基本语法
    Fedora Linux上使用Homebrew包管理器dnf异同
    [Unity][ECS]学习笔记(二)
    关于我写的IDEA插件能一键生成service,mapper....这件事(附源码)
  • 原文地址:https://blog.csdn.net/lkxiaolou/article/details/126660606