2023-04-04 2016天梯赛决赛练习题L2

news2024/11/25 0:31:36

7-11 互评成绩

学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。

输入格式:

输入第一行给出3个正整数N(3 < N ≤104,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。

输出格式:

按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。

输入样例:

6 5 3
88 90 85 99 60
67 60 80 76 70
90 93 96 99 99
78 65 77 70 72
88 88 88 88 88
55 55 55 55 55

输出样例:

87.667 88.000 96.000
#include<bits/stdc++.h>
using namespace std;
int N, K, M;
vector<double> ans;

int main()
{
    cin >> N >> K >> M;
    while (N--)
    {
        double sum = 0;
        vector<double>num(K);
        for (int i = 0; i < K; i++)
        {
            cin >> num[i];
        }
        sort(num.begin(), num.end());
        for (int i = 1; i < K - 1; i++)sum += num[i];
        sum /= (K - 2);
        ans.emplace_back(sum);
    }
    sort(ans.begin(), ans.end());
    for (int i = ans.size() - M; i < ans.size(); i++)
    {
        printf("%.3lf",ans[i]);
        if (i != ans.size()-1)cout << " ";
    }
    return 0;
}

7-10 列车调度 

火车站的列车调度铁轨的结构如下图所示。

两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?

输入格式:

输入第一行给出一个整数N (2 ≤ N ≤105),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。

输出格式:

在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。

输入样例:

9
8 4 2 5 3 9 1 6 7

输出样例:

4
#include<bits/stdc++.h>
using namespace std;
//我的解 === 查队列查尾巴 == 查找超时
vector<int> Q;
int N, num;//所需要的铁轨数
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N;
    while (N--)
    {
        cin >> num;
            bool falg = false;//判断是否入队
            for (int i = 0; i < Q.size(); i++)
            {
                if (Q[i] > num)
                {
                    Q[i] = num;//更新队尾
                    falg = 1;
                    break;
                }
            }
            if(!falg)  Q.emplace_back(num);
        }
    cout << Q.size();
    return 0;
}

 优化

 通过二分查找减少时间

#include<bits/stdc++.h>
using namespace std;
//优化
vector<int> Q;
int N, num;//所需要的铁轨数
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N;
    while (N--)
    {
        cin >> num;
        auto pos = lower_bound(Q.begin(),Q.end(),num);//返回第一个小于num的迭代器位置
        if(pos == Q.end())
        {
            Q.emplace_back(num);
        }
        else
        {
            int X = pos - Q.begin();
            Q[X] = num;//更新队尾
        }
    }
    cout << Q.size();
    return 0;
}

7-9 红色警报

战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。

输入格式:

输入在第一行给出两个整数N(0 < N ≤ 500)和M(≤ 5000),分别为城市个数(于是默认城市从0到N-1编号)和连接两城市的通路条数。随后M行,每行给出一条通路所连接的两个城市的编号,其间以1个空格分隔。在城市信息之后给出被攻占的信息,即一个正整数K和随后的K个被攻占的城市的编号。

注意:输入保证给出的被攻占的城市编号都是合法的且无重复,但并不保证给出的通路没有重复。

输出格式:

对每个被攻占的城市,如果它会改变整个国家的连通性,则输出Red Alert: City k is lost!,其中k是该城市的编号;否则只输出City k is lost.即可。如果该国失去了最后一个城市,则增加一行输出Game Over.

输入样例:

5 4
0 1
1 3
3 0
0 4
5
1 2 0 4 3

输出样例:

City 1 is lost.
City 2 is lost.
Red Alert: City 0 is lost!
City 4 is lost.
City 3 is lost.
Game Over.
#include<bits/stdc++.h>
using namespace std;
const int MAX = 510;
int N,M,K;
//并查集
bool MAP[MAX][MAX];
vector<bool>vis(MAX,0);
void dfs(int x)
{//意义:遍历搜索x的连通块
    vis[x] = 1;//标记已被记录过来
    for(int i = 0;i < N;i++)
    {
        if(!vis[i] && MAP[i][x])//若该点未被访问且和x有连通
            dfs(i);
    }
}
int AS_sum()
{//计算连通集合个数
    int sum = 0;
    for(auto i : vis) i = 0;
    for(int i = 0;i<N;i++)
    {
        if(!vis[i])
        {
            dfs(i);
            sum++;
        }
    }
    return sum;
}
int main()
{
    cin>>N>>M;
    while(M--)
    {
        int A,B;
        cin>>A>>B;
        MAP[A][B] = MAP[B][A] = 1;
    }
    cin>>M;
    int m = M;
    int S = AS_sum();
    while(M--)
    {
        cin>>K;//被攻陷的城市
        for(int i = 0;i<N;i++)
        {
            if(MAP[i][K])
            {
                MAP[i][K] = MAP[K][i] = 0;//删除该城市的一切联系
            }
        }
        int T = AS_sum();//重新判断连通集合数
        if(T - 1 > S)
        {//如果出现分裂的情况,那么集合块一定多出2块 例如: 1-2-3 断1 变成 1 和 2-3 连通性没有改变,若断2 变成 1 2 3 多出2块
            printf("Red Alert: City %d is lost!\n",K);
        }
        else
        {
            printf("City %d is lost.\n",K);
        }
           S = T; // 每次都要更新最新的的集合块
        //否则可能出现 初始为 1-2-3 4 集合块为2
        //去 4 1-2-3 //此时集合块变成1 但是没有关系到整体的连通性,集合没有发生更新导致下列判断出现问题
        //去 2 1 2 3 3 - 1 不满足 > 2
    }
    if(m == N)cout<<"Game Over."<<endl;
    return 0;
}

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

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

相关文章

JUC概述

1. JUC是什么&#xff1f; 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包&#xff0c;在此包中增加了在并发编程中很常用的工具类。此包包括了几个小的、已标准化的可扩展框架&#xff0c;并提供一些功能实用的类&#xff0c;没有这些类&#xff0c;一些功能会很难实现或…

【JavaEE】SpringBoot配置文件的设置及其读取

目录 配置文件作用 配置文件注意事项 properties 用法 修改字符集 优缺点 yml 用法 优缺点 读取配置文件 使用 Value注解 读properties配置文件 读yml配置文件 使用 ConfigurationProperties 注解 读properties配置文件 读yml配置文件 配置文件作用 SpringBoot的…

MCMC采样

MCMC采样 MCMC 是一种随机的近似推断&#xff0c;其核心就是基于采样的随机近似方法蒙特卡洛方法。而近似推断中又可以分成两大类&#xff0c;即为确定性近似 (VI) 和随机近似 (MCMC)。我们需要从概率分布中取 个点&#xff0c;从而近似计算这个积分。常用采样方法有&#xff…

开关柜绝缘状态检测与故障诊断

摘要:电力开关柜作为电力系统的关键设备广泛应用于输电配电网络&#xff0c;其运行可靠性直接影响着电力系统供电质量及安全性能。开关柜绝缘状态检测与故障诊断是及时维修、更换和预防绝缘故障的重要技术手段。在阐述开关柜绝缘状态评估的基础上&#xff0c;指出其内典型的局部…

Docker --- 基本操作、Dockerfile自定义镜像

一、Docker的基本操作 1.1、镜像操作 镜像名称 首先来看下镜像的名称组成&#xff1a; 镜名称一般分两部分组成&#xff1a;[repository]:[tag]。 在没有指定tag时&#xff0c;默认是latest&#xff0c;代表最新版本的镜像 如图&#xff1a; 这里的mysql就是repository&…

数据库课设--基于Python+MySQL的餐厅点餐系统(表的设计)

文章目录 一、系统需求分析二、系统设计1. 功能结构设计2、概念设计2.2.1 bill_food表E-R图2.2.2 bills表E-R图2.2.3 categories E-R图2.2.4 discounts表 E-R图2.2.5 emp表E-R图2.2.6 food 表E-R图2.2.7 member表E-R图2.2.8 member_point_bill表E-R图2.2.9 servers表E-R图2.2.1…

MySQL的事务原理和实现

一、事务属性与架构概述 1、基本概念&#xff1a; 事务&#xff08;Transaction&#xff09;是访问和更新数据库的程序执行单元&#xff1b;事务中可能包含一个或多个sql语句&#xff0c;这些语句要么都执行&#xff0c;要么都不执行。作为一个关系型数据库&#xff0c;MySQL…

为什么很多程序员不反感加班?行内人:老板给钱是真的给啊

为什么很多程序员不反感加班&#xff1f;行内人&#xff1a;说给钱老板真的给&#xff01; 一提到程序员&#xff0c;大部分人第一反应是加班多、996、脱发&#xff0c;这几乎成了外界对程序员刻板印象的标配。不少知名的互联网大厂也是加班之风盛行&#xff0c;譬如著名的华为…

Java版企业电子招投标采购系统源码之登录页面

信息数智化招采系统 服务框架&#xff1a;Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构&#xff1a;VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术&#xff1a;Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stre…

Centos8编译安装内核

首先下载kernel&#xff0c;5.x版本的内核&#xff0c;下载地址&#xff1a; https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ 系统安装相关包&#xff1a; # yum install -y bc gcc make python3 ncurses-devel flex bison openssl-devel elfutils-libelf-devel将内…

南大通用数据库-Gbase-8a-学习-34-gcdump(导出数据库对象定义)

目录 一、测试环境 二、介绍 三、命令帮助 四、参数介绍 1、--print-defaults &#xff08;1&#xff09;含义 &#xff08;2&#xff09;例子 2、--connect_timeout &#xff08;1&#xff09;含义 &#xff08;2&#xff09;例子 3、-A, --all-databases &#xf…

软考初级考什么比较好?信息处理技术员怎么样?

软考初级信息处理技术员难度不大&#xff0c;零基础也是可以直接报考的&#xff0c;熟悉电脑&#xff0c;多练习就差不多了。 本考试设置的科目包括&#xff1a; &#xff08;1&#xff09;信息处理基础知识&#xff0c;考试时间为150分钟&#xff0c;笔试&#xff0c;选择题…

92、Nerfbusters: Removing Ghostly Artifacts from Casually Captured NeRFs

简介 主页:https://ethanweber.me/nerfbusters/ 在远离训练视图的新视图上渲染nerf可能会导致伪影&#xff0c;例如浮动或糟糕的几何形状。这些工件在野外捕获(a)中很普遍&#xff0c;但在NeRF基准测试中很少看到&#xff0c;因为评估视图通常从与训练视图相同的相机路径中选…

HTB_Under Construction—jwt伪造与sqlite注入

根据提示&#xff0c;此题目应该是代码审计类型的&#xff0c;文件结构如下 一般思路有两个&#xff0c;一是看有没有什么敏感信息&#xff0c;二就是看参数传递的地方能否利用&#xff0c;包括注入&#xff0c;伪造等 分析代码 index.js 先来分析入口文件&#xff0c;这是标…

零基础C/C++开发到底要学什么?

作者&#xff1a;黑马程序员 链接&#xff1a;https://www.zhihu.com/question/597037176/answer/2999707086 先和我一起看看&#xff0c;C/C学完了可以做什么&#xff1a; 软件工程师&#xff1a;负责设计、开发、测试和维护各类型的软件应用程序&#xff1b;游戏开发&#x…

【机智云物联网低功耗转接板】+模拟MCU快速上手

GE211是机智云自研的定制化转接板&#xff0c;使用 ESP32-C3-WROOM-02 通讯模块&#xff0c;适用于白色智能家电等设备应用。 转接板已经烧录了机智云连云的最新GAgent固件&#xff0c;所以不需要烧写任何软件就可以快速上手使用。 GE211板卡带有一个串口&#xff0c;一般是把这…

YOLOv1代码复现2:数据加载器构建

YOLOv1代码复现2&#xff1a;数据加载器构建 前言 ​ 在经历了Faster-RCNN代码解读的摧残后&#xff0c;下决心要搞点简单的&#xff0c;于是便有了本系列的博客。如果你苦于没有博客详细告诉你如何自己去实现YOLOv1&#xff0c;那么可以看看本系列的博客&#xff0c;也许可以帮…

同步辐射X射线断层扫描成像在各行业的应用

同步辐射X射线断层扫描成像在各行业的应用 同步辐射X射线断层扫描成像&#xff08;synchrotron radiation X-ray computed tomography&#xff0c;SRCT&#xff09;是一种非侵入式、高分辨率的成像技术&#xff0c;利用同步辐射光束产生的高强度、高亮度、单色性和相干性的X射线…

【C#】DockContent的使用

下载主题包和控件包 nuget Install-Package DockPanelSuite -Version 3.0.6 Install-Package DockPanelSuite.ThemeVS2015 -Version 3.0.6 在要靠的子界面继承DockContent 子界面上添加DockPanel控件&#xff0c;并将dock设置为fill。 主界面创建一个dockPanel1&#xff1b…

LDR6020全球第一颗PD MCU 无敌 Type-C手机背夹散热器方案

最近发现了个新玩意儿&#xff0c;因为经常玩游戏&#xff0c;手机发热的厉害&#xff0c;都可以煎鸡蛋了&#xff0c;心想着要买个东西给手机散散热&#xff0c;没想到还真的有手机散热器。 不知道手机散热器的也正常&#xff0c;毕竟一般人正常玩玩手机&#xff0c;发热就发…