[PA2014] [BZOJ 3709]~[BZOJ 3719] 合集

今天起尝试做套题喵~ (当然是因为被最大流的题目弄得恶心死了)

一共是 10 道题一道一道做 预计 3~4 内做完 尽情期待

[BZOJ 3709]Bohater

一眼就能感受到贪心的气息

因为很直观地,能加血的怪先打掉是不二法则

所以把怪分为两类: 能加血的和要掉血的

前者按伤害升序排序,算出最大血量

但后者要怎么搞让我很是郁闷~一开始是按伤害降序的,结果秒 WA 了

想想也是 Z=1000 怪1: a=998 d=1  怪2: a=100 d=99 你说先打哪只?

看来和回血量也是有关系的,事实上按回血量降序排序即可

但为什么呢?

因为最后血量是固定的,所以可以看成从最后血量开始,吐出血瓶,加上打怪时的血量一路逆推(此时怪的 d 是 a ,a 是 d) 问能否打败所有怪

然后就变成和前面一样的问题了

就这么 A 掉了,看来凡事都要反过来想想才行 (顺便提醒一句,此题 z 变量要开 long long)

#include <cstdio>
#include <algorithm>
const int sizeOfMonster=100025;

inline int getint()
{
	register int num=0;
	register char ch;
	do ch=getchar(); while (ch<‘0‘ || ch>‘9‘);
	do num=num*10+ch-‘0‘, ch=getchar(); while (ch>=‘0‘ && ch<=‘9‘);
	return num;
}
inline void putint(int num)
{
	char stack[15];
	register int top=0;
	if (num==0) stack[top=1]=‘0‘;
	for ( ;num;num/=10) stack[++top]=num%10+‘0‘;
	for ( ;top;top--) putchar(stack[top]);
	putchar(‘ ‘);
}

struct node
{
	int id, d, a;
	inline node():id(0), d(0), a(0) {}
	inline node(int _id, int _d, int _a):id(_id), d(_d), a(_a) {}
};
int n; long long z;
int t1, t2;
node add[sizeOfMonster], sub[sizeOfMonster];
inline bool cmpForAdd(node x, node y) {return x.d<y.d;}
inline bool cmpForSub(node x, node y) {return x.a>y.a;}

int main()
{
	register int i;

	n=getint(), z=getint();
	for (i=1;i<=n;i++)
	{
		int d=getint(), a=getint();
		if (d<=a) add[t1++]=node(i, d, a);
		else sub[t2++]=node(i, d, a);
	}
	std::sort(add, add+t1, cmpForAdd);
	for (i=0;i<t1;i++)
	{
		if (z<=add[i].d) break;
		z=z+add[i].a-add[i].d;
	}

	if (i<t1) {printf("NIE\n"); return 0;}

	std::sort(sub, sub+t2, cmpForSub);
	for (i=0;i<t2;i++)
	{
		if (z<=sub[i].d) break;
		z=z+sub[i].a-sub[i].d;
	}

	if (i<t2) {printf("NIE\n"); return 0;}

	printf("TAK\n");
	for (i=0;i<t1;i++) putint(add[i].id);
	for (i=0;i<t2;i++) putint(sub[i].id);
	putchar(‘\n‘);

	return 0;
}

  

时间: 2024-07-30 18:06:33

[PA2014] [BZOJ 3709]~[BZOJ 3719] 合集的相关文章

Vim命令合集

来源:Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim并创建名为filename的文件 文件命令 打开单个文件 vim file 同时打开多个文件 vim file1 file2 file3 ... 在vim窗口中打开一个新文件 :open file 在新窗口中打开文件 :split file 切换到下一个文件 :bn 切换到上一

[转载]VIM命令合集

Vim命令合集 http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim并创建名为filename的文件 文件命令 打开单个文件 vim file 同时打开多个文件 vim file1 file2 file3 ..

前端资源教程合集

综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 En类资源汇总 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程中文书籍索引 智能社 - 精通JavaScript开发 重新介绍 JavaScript(JS 教程) 麻省理工学院公开课:计算机科学及编程导论 JavaScript中的this陷阱的最全收集--没有之一 JS函数式编程指南 JavaScript Promise迷你书

减肥视频合集

薄荷味视频合集 http://www.boohee.com/posts/view/222199/1?sub_id=3 我最爱练习Insanity http://www.bilibili.com/video/av3596373/

转载:2013计算机视觉代码合集

转载,原文地址http://blog.csdn.net/daoqinglin/article/details/23607079 -------------------------------------------------------------------------- 来源: http://www.yuanyong.org/cv/cv-code-one.html http://www.yuanyong.org/cv/cv-code-two.html http://www.yuanyong

图像滤镜艺术---微软自拍APP滤镜实现合集DEMO

微软最近退出了自家的美颜app,大家有兴趣可以在苹果商店中下载一下看一看,今天,我们要说的便是这款app中的所有滤镜实现问题. 这款app中一共有14款滤镜效果,分别是:自然.增强.1965.X-PRO.布兰登.沧桑.复古.凉爽.迈耶.清晨.柔嫩.深沉.水墨.糖果: 这14款滤镜中,"自然"这一款滤镜是结合人脸识别的,在有人脸识别的情况下,会弹出调节bar,没有人脸时,改效果为默认效果,无法调节:"增强"属于细节的增强与锐化,这里也不算入特效滤镜中去,对于剩下的12

02对话框合集

对话框合集 一.确定对话框AlertDialog() 1.AlertDialog的创建,Builder创建,类似工厂模式2.Builder.show()底层 public AlertDialog show() { AlertDialog dialog = create(); dialog.show(); return dialog; }3.核心代码: public void click1(View view) { Builder builder = new Builder(this);//类似工

最牛叉的街机游戏合集 &amp; 模拟器

亲爱的小伙伴们,是否还记得那年我们玩的疯狂的街机游戏吗,街机中心提供400多个街机游戏,让你爽到底. 例如:拳皇96,拳皇97,恐龙新世纪.名将.快打旋风.惩罚者.魂斗罗.超级玛丽.雪山兄弟.忍者神龟.格斗之王系列.合金弹头系列.侍魂系列.龙虎之拳系列.街头霸王系列.西游释厄传系列和三国战纪系列等经典街机游戏. 性能高的手机可以打开显示设置内的平滑拉伸,缩放模式设置为拉伸至全屏,横屏需要开启系统的自动旋转屏幕.Xperia Play用户可以自定义物理按键,然后把触摸控制可见关闭,屏幕上就不会再显

JS_DOM_鼠标、键盘事件合集

JS_DOM_鼠标.键盘事件合集 鼠标事件 onclick         鼠标点击事件 ondblclick          鼠标双击事件 onmousedown 鼠标按下事件 onmouseup       鼠标按键被松开事件 onmouseenter        鼠标指针移上时出发事件(不支持冒泡) onmouseleave        鼠标指针移出事件 onmousemove 鼠标移动事件 onmouseover     鼠标移入事件(移入子元素也会触发) onmouseout