首页 > 其他分享 >luogu 4025

luogu 4025

时间:2022-09-21 23:26:09浏览次数:58  
标签:10 le luogu 样例 bj 4025 怪物 TAK

[PA2014]Bohater

题目描述

在一款电脑游戏中,你需要打败 \(n\) 只怪物(从 \(1\) 到 \(n\) 编号)。

为了打败第 \(i\) 只怪物,你需要消耗 \(d_i\) 点生命值,但怪物死后会掉落血药,使你恢复 \(a_i\) 点生命值。

任何时候你的生命值都不能降到 \(0\)(或 \(0\) 以下)。

请问是否存在一种打怪顺序,使得你可以打完这 \(n\) 只怪物而不死掉。

输入格式

第一行两个整数 \(n,z\),分别表示怪物的数量和你的初始生命值。

接下来 \(n\) 行,每行两个整数 \(d_i,a_i\)。

输出格式

第一行为 TAK(是)或 NIE(否),表示是否存在这样的顺序。

如果第一行为 TAK,则第二行为空格隔开的 \(1\sim n\) 的排列,表示合法的顺序。

如果答案有很多,你可以输出其中任意一个。(本题使用 SPJ

样例 #1

样例输入 #1

3 5
3 1
4 8
8 3

样例输出 #1

TAK
2 3 1

提示

对于 \(100\%\) 的数据,\(1\le n,z\le 10^5\),\(0\le d_i,a_i\le 10^5\)。


原理同luogu6927


#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n;
long long m;
struct node
{
	int a,b,bj,no;
	void work()
	{
		if(a>b)bj=1;
		else if(a<b)bj=-1;
		else bj=0;
	}
};
node sz[maxn];
bool cmp(node x,node y)
{
	if(x.bj!=y.bj)return x.bj<y.bj;
	else
	{
		if(x.bj<0)return x.a<y.a||(x.a==y.a&&x.b>y.b);
		else if(x.bj==0)return x.b<y.b;
		else return x.b>y.b||(x.b==y.b&&x.a<y.a);
	}
}
int main()
{
	scanf("%d%lld",&n,&m);
	for(int i=1;i<=n;++i)
	{
		scanf("%d%d",&sz[i].a,&sz[i].b);
		sz[i].no=i;
		sz[i].work();
	}
	sort(sz+1,sz+1+n,cmp);
	for(int i=1;i<=n;++i)
	{
		if(m<=sz[i].a)
		{
			puts("NIE");
			return 0;
		}
		else m=m-sz[i].a+sz[i].b;
	}
	puts("TAK");
	for(int i=1;i<=n;++i) printf("%d ",sz[i].no);
	return 0;
}

标签:10,le,luogu,样例,bj,4025,怪物,TAK
From: https://www.cnblogs.com/gryzy/p/16717575.html

相关文章

  • luogu6927
    [ICPC2016WF]SwapSpace题面翻译你有\(n\)个硬盘\((n\leqslant10^{6})\),现在需要对所有硬盘进行格式化。格式化后,第\(i\)个硬盘的容量会由原来的\(a_{i}\)变为\(......
  • Luogu T273083 新的题目 题解
    怕放洛谷有人看,就搬过来了。本题解提供一个\(O(qn)\)的做法(实际上是暴力的优化)。先考虑暴力求解。对于每个操作,要求代价\(W\times(\sum_{i\inX}^{i}w[i]\times......
  • luogu 将会臭名昭著(
    ......
  • Luogu P4139 上帝与集合的正确用法
    \(\large{题目链接}\)\(\\\)首先介绍一下欧拉定理:\[a^{\varphi(p)}\equiv1\pmod{p},\gcd(a,p)=1\]\(\\\)所以费马小定理其实是欧拉定理的一种特殊情况,即\(p\)为质数......
  • Luogu P3674 小清新人渣的本愿 题解
    P3674小清新人渣的本愿lxl大爷的题,%%%%%以及CSPrp++!!!前言:其实是这题的名字吸引了我,毕竟人渣的本愿里的角色我觉得多多少少都沾点,哪来的小清新啊。《人渣的本愿》,又名......
  • 【luogu P5826】【模板】子序列自动机
    【模板】子序列自动机题目链接:luoguP5826题目大意给你一个序列,每次再给你一个序列,问你新的序列是不是一开始的序列的子序列。思路如果字符少不难想象到一个\(f_{i,j......
  • 【luogu CF633H】Fibonacci-ish II(莫队)(线段树)(矩阵乘法)
    Fibonacci-ishII题目链接:luoguCF633H题目大意给你一个序列,每次问你一个区间,把里面的数拿出来去重排序,第i个位置乘上斐波那契数列第i项之后所有数的和。思路这题......
  • luoguP4407 [JSOI2009] 电子字典 解题报告
    传送门题意对于多个字符串,查询其在字典树上的存在性或删除/插入/替换一个字符后存在的个数。思路存在性好说,直接在Trie树上做一遍查找即可。那剩下的三个操作怎么办......
  • 【luogu P5056】【模板】插头dp(插头DP)(分类讨论)
    【模板】插头dp题目链接:luoguP5056题目大意有一个n*m的网格,每个格子要么必须铺线,要么必须不铺。然后问你有多少个铺发使得形成一个闭合回路。思路快乐插头DP模......
  • [luogu p8338] [AHOI2022] 排列
    \(\mathtt{Link}\)P8338[AHOI2022]排列-洛谷|计算机科学教育新生态(luogu.com.cn)\(\mathtt{Description}\)\(T\)组数据。对于一个长度为\(n\)的排列\(P=......