首页 > TAG信息列表 > PA2014

P5979 [PA2014]Druzyny

题面 体育课上,\(n\) 个小朋友排成一行(从 \(1\) 到 \(n\) 编号),老师想把他们分成若干组,每一组都包含编号连续的一段小朋友,每个小朋友属于且仅属于一个组。 第 \(i\) 个小朋友希望它所在的组的人数不多于 \(d_i\),不少于 \(c_i\),否则他就会不满意。 在所有小朋友都满意的前提下,求可以

[PA2014]Bohater

题意: 需要打败 \(n\) 只怪物(从 1 到 \(n\) 编号),为了打败第 \(i\) 只怪物,消耗 \(d[i]\) 点生命值,但恢复 \(a[i]\) 点生命值。任何时候你的生命值都不能降到 0(或 0 以下)。 请问是否存在一种打怪顺序,使得你可以打完这 \(n\) 只怪物而不死掉。 题解: 贪心,先打回血的怪物,再打掉血的怪物

洛谷 P4025 [PA2014]Bohater(贪心)

传送门 解题思路 很妙的一道贪心题。 首先很显然的是,一定先把能回血的怪先干掉,然后再去干扣血的怪。 分类讨论: 对于回血的怪,显然按照d从小到大排序,以免你一开始就被干死。 对于扣血的怪,我们倒着考虑,从终止状态,每次减去a,然后加上d,就变成了回血怪的情况。 所以对于扣血的怪按照a从

题解 P4025 [PA2014]Bohater

题目中没有说怪物掉落的血药 \(a_i\) 和消耗的生命值 \(d_i\) 的大小关系,所以我们可以把怪物分为两类:补血怪(\(d_i\le a_i\))与掉血怪(\(d_i> a_i\))。 容易发现的是,一定是先打完补血怪再打掉血怪。因为打掉血怪没有益处,反而减少生命值。所以我们把它分为两部分,第一部分是打补血怪,第二

[PA2014]Kuglarz

Link Solution 很巧妙的一道题…… 如果想知道位置 \(i\) 是否有球,那就必须知道 \([i,i+1)\) 的奇偶性。反映在图上,就是点 \(i\) 和 \(i+1\) 必须是连通的,那么如果需要知道所有位置是否有球,那么 \(1\) 到 \(n+1\) 的所有点都必须连通。用边 \(u\to v\) 来表示询问区间 \([u,v)\),

【题解】洛谷 P5995 [PA2014]Lustra

题目传送门 \(\to\) HERE 题目大意 给定两条数轴和若干组区间 \([w1,w2]\)、\([h1,h2]\),问是否存在一组区间使得其它所有区间在对应数轴上都是该区间的子集。 分析 其实就是询问区间总合的最值是否属于一组区间~ 但是我们也可以换种想法 考虑到我们只需要关注当前要查询的区间与总

BZOJ 3727: PA2014 Final Zadanie 树形DP

非常有趣的一道题.... code: #include <cstdio> #include <string> #include <algorithm> using namespace std; namespace IO { void setIO(string s) { string in=s+".in"; string out=s+".out";

[PA2014] Fiolki

问题描述 化学家吉丽想要配置一种神奇的药水来拯救世界。 吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号)。初始时,第i个瓶内装着g[i]克的第i种物质。吉丽需要执行一定的步骤来配置药水,第i个步骤是将第a[i]个瓶子内的所有液体倒入第b[i]个瓶子,此后第a[i]个瓶子不会再被用到。瓶子的

3709. [PA2014]Bohater

原文链接:http://hzwer.com/4402.html 题解 注意初值不要设成0x3f; #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #define ll long long using namespace

[PA2014]Muzeum

传送门 BZOJ Solution 显然这是一个最大权闭合子图的问题,所以你把图建出来跑网络流就是\(50pts\). 接着你旋转坐标系然后把这个转换成为一个贪心替换网络流的问题,然后就是一个\(set\)的事了. 代码实现 /* mail: mleautomaton@foxmail.com author: MLEAutoMaton This Code

bzoj3727: PA2014 Final Zadanie

我真是SB之神呢这么SB的题都不会 肯定是先无脑正向思考,罗列下关系式: b[1]=∑a[i]*dep[i]=∑tot[i] (i!=1) b[i]=b[fa]-tot[i]+(tot[1]-tot[i]) a[i]=tot[i]-∑tot[son] 画一下第二个,就变成2*tot[i]-tot[1]=b[fa]-b[i],那么i取遍2~n就有 2*∑tot[i](i!=1) - (n-1)*tot[1] = ∑b[fa]-