语言月赛 202412【顽强拼搏奖的四种发法】题解(AC)

news2025/2/6 3:58:08

请添加图片描述
》》》点我查看「视频」详解》》》

[语言月赛 202412] 顽强拼搏奖的四种发法

题目描述

在 XCPC 竞赛里,会有若干道题目,一支队伍可以对每道题目提交若干次。我们称一支队伍对一道题目的一次提交是有效的,当且仅当:

  • 在本次提交以前,还未通过该题目。
  • 本次提交的题目在比赛里最终被该队伍通过了。

注意,事实上,在通过一道题目后,一支队伍仍然可以提交该题目。这样的提交是无效提交,同时,无论这样的提交是否通过,都不会影响该队伍已通过该题目的状态。

我们按顺序给出本场比赛所有队伍的全部提交记录,每条记录是一个三元组 ( t i d i , p i d i , s t a t e i ) (tid_i, pid_i, state_i) (tidi,pidi,statei),其中 t i d i tid_i tidi 表示提交这条记录的队伍编号, p i d i pid_i pidi 表示这条记录所提交的题目编号, s t a t e i state_i statei 表示这条记录的状态是未通过/通过。

如果一支队伍在比赛里通过了至少 k k k 道不同的题目,则它们获得了奖牌。

你要求出本场比赛的顽强拼搏奖归属于哪支队伍。很遗憾的是,每个主办方对顽强拼搏奖的定义是不同的,因此你需要按如下四种计算方法分别计算获得顽强拼搏奖所归属的队伍编号:

  1. 最后一次 AC 记录所对应的队伍。
  2. 最后一次有效 AC 记录所对应的队伍。
  3. 未获得奖牌的队伍的最后一次有效 AC 提交对应的队伍。
  4. 最后一次使得一支队伍的通过题目数由 0 0 0 变成 1 1 1 的提交所对应的队伍。

输入格式

第一行是四个整数,依次表示记录数量 n n n,队伍数量 t t t,题目数量 p p p 和获得奖牌的题目数 k k k
接下来 n n n 行,每行三个整数 t i d i , p i d i , s t a t e i tid_i, pid_i, state_i tidi,pidi,statei,表示一次提交记录。其中 s t a t e i = 0 state_i=0 statei=0 表示本次提交未通过, s t a t e i = 1 state_i = 1 statei=1 表示本次提交已通过。
我们认为后输入的提交记录的提交时间晚于先输入的提交记录提交时间。

输出格式

输出一行四个用空格隔开的整数,依次表示按这四种评奖方法评定,顽强拼搏奖所归属的队伍的编号。

如果按某种评定方法没有顽强拼搏奖队伍,在对应位置输出 − 1 -1 1

样例 #1

样例输入 #1

8 4 2 2
1 1 1
1 2 1
2 2 1
3 1 1
4 1 1
4 2 1
2 1 1
1 2 1

样例输出 #1

1 2 3 4

提示

样例 1 解释

这个样例共有 4 4 4 支队伍,两道题目。解出两道题目的队伍可以获奖。

  • 整场比赛的最后一次 AC 提交是第八条记录, 1 1 1 号队伍提交第二题通过。因此第一种定义计算出的顽强拼搏奖是队伍 1 1 1
  • 队伍 1 1 1 在第二条记录时就已通过第二题,所以第八条记录不是一条有效提交记录。最后一条 AC 的有效提交记录是第七条。因此第二种定义计算出的顽强拼搏奖是队伍 2 2 2
  • 只有队伍 3 3 3 没有获奖,它们的最后一次提交是第四条记录,因此按第三种定义计算的顽强拼搏奖是队伍 3 3 3
  • 队伍 4 4 4 是最后一个通过题目数由 0 0 0 题变为 1 1 1 题的队伍。其对应的提交记录是第五条。因此按第四种定义计算的顽强拼搏奖是队伍 4 4 4

数据规模与约定

测试点编号 n n n t t t p p p特殊约定
1 1 1 = 1 =1 =1 = 1 =1 =1 = 1 =1 =1
2 , 3 2,3 2,3 ≤ 100 \leq 100 100 = 1 =1 =1 ≤ 100 \leq 100 100
4 , 5 4,5 4,5 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100 = 1 =1 =1
6 , 7 6,7 6,7 ≤ 1000 \leq 1000 1000 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100一支队伍只会通过一道题至多一次
8 , 9 , 10 8,9,10 8,9,10 ≤ 1000 \leq 1000 1000 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100

对全部的测试数据,保证 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1n1000 1 ≤ t i d i ≤ t ≤ 100 1 \leq tid_i \leq t \leq 100 1tidit100 1 ≤ p i d i ≤ p ≤ 100 1 \leq pid_i \leq p \leq 100 1pidip100 1 ≤ k ≤ p 1 \leq k \leq p 1kp 0 ≤ s t a t e i ≤ 1 0 \leq state_i \leq 1 0statei1

AC_Code

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <vector>

using namespace std;

const int N = 1e3 + 10;

int n, t, p, k;
bool st[N][N];
int cnt[N];
int a = -1, b = -1, c = -1, d = -1;
vector<int> q;

int main()
{
	cin >> n >> t >> p >> k;
	
	while (n -- )
	{
		int t, p, s;
		cin >> t >> p >> s;
		
		if (s)
		{
			a = t;
			if (!st[t][p])
			{
				b = t;
				cnt[t] ++;
				q.push_back(t);
				if (cnt[t] == 1)
					d = t;
			}
			
			st[t][p] = true;
		}
	}
	
	for (int i = q.size() - 1; i >= 0; -- i )
		if (cnt[q[i]] < k)
		{
			c = q[i];
			break;
		}
	
	cout << a << ' ' << b << ' ' << c << ' ' << d << endl;
	
	return 0;
}

》》》点我查看「视频」详解》》》

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

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

相关文章

自定义数据集 使用scikit-learn中svm的包实现svm分类

引入必要的库 import numpy as np from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score, classification_report 生成自定义数据集 X, y ma…

有用的sql链接

『SQL』常考面试题&#xff08;2——窗口函数&#xff09;_sql的窗口函数面试题-CSDN博客 史上最强sql计算用户次日留存率详解&#xff08;通用版&#xff09;及相关常用函数 -2020.06.10 - 知乎 (zhihu.com) 1280. 学生们参加各科测试的次数 - 力扣&#xff08;LeetCode&…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.27 NumPy+Pandas:高性能数据处理的黄金组合

2.27 NumPyPandas&#xff1a;高性能数据处理的黄金组合 目录 #mermaid-svg-x3ndEE4hrhO6WR6H {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-x3ndEE4hrhO6WR6H .error-icon{fill:#552222;}#mermaid-svg-x3ndEE4hr…

第一个3D程序!

运行效果 CPP #include <iostream> #include <fstream> #include <string> #include <cmath>#include <GL/glew.h> #include <GLFW/glfw3.h> #include <glm/glm.hpp> #include <glm/gtc/type_ptr.hpp> #include <glm/gtc/…

NeuralCF 模型:神经网络协同过滤模型

实验和完整代码 完整代码实现和jupyter运行&#xff1a;https://github.com/Myolive-Lin/RecSys--deep-learning-recommendation-system/tree/main 引言 NeuralCF 模型由新加坡国立大学研究人员于 2017 年提出&#xff0c;其核心思想在于将传统协同过滤方法与深度学习技术相结…

第二十三章 MySQL锁之表锁

目录 一、概述 二、语法 三、特点 一、概述 表级锁&#xff0c;每次操作锁住整张表。锁定粒度大&#xff0c;发生锁冲突的概率最高&#xff0c;并发度最低。应用在MyISAM、InnoDB、BDB等存储引擎中。 对于表级锁&#xff0c;主要分为以下三类&#xff1a; 1. 表锁 2. 元数…

【Uniapp-Vue3】获取用户状态栏高度和胶囊按钮高度

在项目目录下创建一个utils文件&#xff0c;并在里面创建一个system.js文件。 在system.js中配置如下代码&#xff1a; const SYSTEM_INFO uni.getSystemInfoAsync();// 返回状态栏高度 export const getStatusBarHeight ()> SYSTEM_INFO.statusBarHeight || 15;// 返回胶…

通向AGI之路:人工通用智能的技术演进与人类未来

文章目录 引言:当机器开始思考一、AGI的本质定义与技术演进1.1 从专用到通用:智能形态的范式转移1.2 AGI发展路线图二、突破AGI的五大技术路径2.1 神经符号整合(Neuro-Symbolic AI)2.2 世界模型架构(World Models)2.3 具身认知理论(Embodied Cognition)三、AGI安全:价…

将ollama迁移到其他盘(eg:F盘)

文章目录 1.迁移ollama的安装目录2.修改环境变量3.验证 背景&#xff1a;在windows操作系统中进行操作 相关阅读 &#xff1a;本地部署deepseek模型步骤 1.迁移ollama的安装目录 因为ollama默认安装在C盘&#xff0c;所以只能安装好之后再进行手动迁移位置。 # 1.迁移Ollama可…

Java自定义IO密集型和CPU密集型线程池

文章目录 前言线程池各类场景描述常见场景案例设计思路公共类自定义工厂类-MyThreadFactory自定义拒绝策略-RejectedExecutionHandlerFactory自定义阻塞队列-TaskQueue&#xff08;实现 核心线程->最大线程数->队列&#xff09; 场景1&#xff1a;CPU密集型场景思路&…

使用开源项目:pdf2docx,让PDF转换为Word

目录 1.安装python 2.安装 pdf2docx 3.使用 pdf2docx 转换 PDF 到 Word pdf2docx&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 环境&#xff1a;windows电脑 1.安装python Download Python | Python.org 最好下载3.8以上的版本 安装时记得选择上&#…

蓝桥杯思维训练营(四)

文章目录 小红打怪494.目标和 小红打怪 小红打怪 思路分析&#xff1a;可以看到ai的范围较大&#xff0c;如果我们直接一个个进行暴力遍历的话&#xff0c;会超时。当我们的攻击的次数越大的时候&#xff0c;怪物的血量就会越少&#xff0c;这里就有一个单调的规律在里面&…

尝试把clang-tidy集成到AWTK项目

前言 项目经过一段时间的耕耘终于进入了团队开发阶段&#xff0c;期间出现了很多问题&#xff0c;其中一个就是开会讨论团队的代码风格规范&#xff0c;目前项目代码风格比较混乱&#xff0c;有的模块是驼峰&#xff0c;有的模块是匈牙利&#xff0c;后面经过讨论&#xff0c;…

【学习笔记】深度学习网络-正则化方法

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 在之前的文章中介绍了深度学习中用…

介绍一下Mybatis的底层原理(包括一二级缓存)

表面上我们的就是Sql语句和我们的java对象进行映射&#xff0c;然后Mapper代理然后调用方法来操作数据库 底层的话我们就涉及到Sqlsession和Configuration 首先说一下SqlSession&#xff0c; 它可以被视为与数据库交互的一个会话&#xff0c;用于执行 SQL 语句&#xff08;Ex…

WordPress使用(1)

1. 概述 WordPress是一个开源博客框架&#xff0c;配合不同主题&#xff0c;可以有多种展现方式&#xff0c;博客、企业官网、CMS系统等&#xff0c;都可以很好的实现。 官网&#xff1a;博客工具、发布平台和内容管理系统 – WordPress.org China 简体中文&#xff0c;这里可…

BUUCTF_[安洵杯 2019]easy_web(preg_match绕过/MD5强碰撞绕过/代码审计)

打开靶场&#xff0c;出现下面的静态html页面&#xff0c;也没有找到什么有价值的信息。 查看页面源代码 在url里发现了img传参还有cmd 求img参数 这里先从img传参入手&#xff0c;这里我发现img传参好像是base64的样子 进行解码&#xff0c;解码之后还像是base64的样子再次进…

C基础寒假练习(4)

输入带空格的字符串&#xff0c;求单词个数、 #include <stdio.h> // 计算字符串长度的函数 size_t my_strlen(const char *str) {size_t len 0;while (str[len] ! \0) {len;}return len; }int main() {char str[100];printf("请输入一个字符串: ");fgets(…

MySQL 事务实现原理( 详解 )

MySQL 主要是通过: 锁、Redo Log、Undo Log、MVCC来实现事务 事务的隔离性利用锁机制实现 原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。 Redo Log(重做日志)&#xff1a;记录事务对数据库的所有修改&#xff0c;在崩溃时恢复未提交的更改&#xff0c;保证事务…

git基础使用--1--版本控制的基本概念

文章目录 git基础使用--1--版本控制的基本概念1.版本控制的需求背景&#xff0c;即为啥需要版本控制2. 集中式版本控制SVN3. 分布式版本控制 Git4. SVN和Git的比较 git基础使用–1–版本控制的基本概念 1.版本控制的需求背景&#xff0c;即为啥需要版本控制 先说啥叫版本&…