当前位置: 首页 > article >正文

NOIP2011 普及组【瑞士轮】题解(AC)

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

请添加图片描述

AC_Code

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

using namespace std;

const int N = 2e5 + 10;

int n, r, q;
struct Node
{
	int s, w, id;
	bool operator< (const Node &t) const 
	{
		if (s != t.s)
			return s > t.s;
		return id < t.id;
	}
}a[N], b[N], c[N];

int main()
{
	cin >> n >> r >> q;
	n <<= 1;
	
	for (int i = 1; i <= n; ++ i )
		cin >> a[i].s;
	for (int i = 1; i <= n; ++ i )
		cin >> a[i].w, a[i].id = i;
	
	sort(a + 1, a + n + 1);
	
	while (r -- )
	{
		for (int i = 1; i <= n; i += 2)
			if (a[i].w > a[i + 1].w)
			{
				a[i].s ++;
				b[i + 1 >> 1] = a[i];
				c[i + 1 >> 1] = a[i + 1];
			}
			else
			{
				a[i + 1].s ++;
				b[i + 1 >> 1] = a[i + 1];
				c[i + 1 >> 1] = a[i];
			}
				
		int i = 1, j = 1, k = 1;
		while (i <= n / 2 && j <= n / 2)
			if (b[i] < c[j])
				a[k ++] = b[i ++];
			else
				a[k ++] = c[j ++];
		while (i <= n / 2)
			a[k ++] = b[i ++];
		while (j <= n / 2)
			a[k ++] = c[j ++];
	}
	
	cout << a[q].id << endl;
	
	return 0;
}

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


http://www.kler.cn/a/428078.html

相关文章:

  • 某盾Blackbox参数参数逆向
  • 一文了解性能优化的方法
  • Chrome浏览器编译系统研究与优化分析
  • 1.五子棋对弈python解法——2024年省赛蓝桥杯真题
  • C28.【C++ Cont】顺序表的实现
  • Flutter使用Flavor实现切换环境和多渠道打包
  • vue2+html2canvas+js PDF实现试卷导出和打印功能
  • 解决Ubuntu在VMware关机时,老是一个光标在那里闪动几分钟,才能关机的问题
  • Docker 学习总结(84)—— Docker 常用运维命令
  • axios的get和post请求,关于携带参数相关的讲解一下
  • [0629].第29节:配置中心业务规则与动态刷新
  • 运维角度定位JAVA微服务线上CPU飙升问题
  • iOS如何操作更新推送证书
  • 基于单片机的智能客车超载监测综合性实验
  • Ubuntu 环境美化
  • 人机之间的交互存在不少逻辑性的跳跃
  • Hadoop3集群实战:从零开始的搭建之旅
  • 常用的8款电脑加密软件分享|2025电脑办公文件怎么加密?
  • 高通Camera点亮1——Camera相关的DTS配置
  • 每日计划-1207
  • 分布式设备虚拟化概述
  • 量化交易系统开发-实时行情自动化交易-8.15.Ptrade/恒生平台
  • apache部署若依前后端分离项目(开启SSL)
  • openharmony5.0版本源码一二级目录概览
  • 需要排序的子数组
  • 学生信息管理系统(简化版)后端接口