Game Master(思维 + 贪心)

题目链接:Game Master

题目大意:

有n名玩家和两张地图,已知每名玩家在每张地图上的战斗力,一共进行n-1场比赛,每次比赛选择一张地图和两名玩家,战斗力强的玩家最终获胜,问每名玩家是否能赢得最终的比赛。

解题思路:

将n名玩家在第一张地图上的战斗力进行升序排序,可知最后一名玩家一定可以赢得比赛,然后进行倒序查找,判断当前玩家在第二张地图上的战斗力是否大于已知可以赢得比赛的所有玩家在第二张地图上战斗力的最小值,若大于,则该玩家及之后的所有玩家都可以赢得比赛,因为之后的玩家在第一张地图上的战斗力都比该玩家的战斗力强。

AC代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;
const int N = 1e5 + 10;
struct node
{
	int a, b, idx;
}s[N];
bool cmp(node a, node b) { return a.a < b.a; }
int ans[N];
int main()
{
	int t; cin >> t;
	while (t--)
	{
		int n; cin >> n;
		for (int i = 1; i <= n; i++)
		{
			ans[i] = 0;
			s[i].idx = i;
		}
		for (int i = 1; i <= n; i++) cin >> s[i].a;
		for (int i = 1; i <= n; i++) cin >> s[i].b;
		sort(s + 1, s + 1 + n, cmp);
		ans[s[n].idx] = 1;
		int mn = s[n].b, idx = n;
		for (int i = n - 1; i >= 1; i--)
		{
			if (s[i].b > mn)
			{
				for (int j = i; j < idx; j++)
				{
					ans[s[j].idx] = 1;
					mn = min(mn, s[j].b);
				}
				idx = i;
			}
		}
		for (int i = 1; i <= n; i++) cout << ans[i];
		cout << endl;
	}
	return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
《游戏修改大师9.0》是一个拥有强大功能的视窗软体修改工具,历经九代的产品,成熟及稳定程度是同类型软体中最出类拔萃的。配合微软 Windows 7的推出,以及电脑硬体的制程突破,本软体亦是PC上面第一个同时支援32bit和64bit游戏的修改工具。 GM9的崭新功能 ☆拥有强大修改功能,核心引擎超过十年的研发,为同类产品中最成熟稳定。 ☆完全支援多核心处理器架构,让强大的多核心CPU能完全应用。 ☆支援32bit, 64bit视窗作业系统:Microsoft Windows 7, Vista, XP。 ☆多种对应动态记忆体模式修改工具,一举突破现有修改瓶颈。 ☆内含精心设计的10个游戏关卡,由浅入深实地操演,立即学会游戏修改精髓! ☆运用组合语言指令反组译器(MMX, SSE, 3DNow, X86, X64…etc)提供反组译功能 ☆全新参考点功能,能够锁定不固的浮动位置!例如以.NET或Java所写的游戏。 ☆注射程式码功能,直接放入由您所写的程式码,无论游戏有什么动作,都能立即修改。 ☆脚本式控制处理器暂存器,利用高阶的脚本控制最低阶的资讯。 ☆指标搜寻器,专门针对有程式码保护并同时使用动态记忆体的游戏,并能避免游戏的反侦查。 ☆快速搜寻功能,能够智慧的选择搜寻机会较大的区域,使效能提高。 ☆常用变化搜寻,在同一次的搜寻中会自动变化目标数值,同时比对不同数值形态。 ☆双精度浮点及混合样式数字列数扫描功能,混合样式数字列,十、十六进制数字、浮点数及文字。 还有强化的究极功能.... ☆自动生产游戏修改器☆网路式远端遥控修改☆第二代神偷大师☆低阶磁区/光碟/记忆卡扫描功能 ☆机械码追踪、状态栏搜寻法、结构式位址表格、强制性暂停游戏执行、无限个金手指位置,及搜寻任务支援..等等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值