Description Input Output Sample Input 23 33 5 74 6 107 3 91 9 10003 23 5 64 8 71 1 11 1 Sample Output 59-1 Solution 当时同步赛的时候写出来了……只不过忘了是爆$long~long$还是小细节写爆了只有$75$…… 当时蠢的一比直接强上了一颗$splay$强行增加码量……现在觉得当时太蠢了然后就重写了一遍…… 首先对于这个题,每次使用的剑可以发现是固定的,这个可以使用$set$来求出…
题目链接: [Noi2018]屠龙勇士 题目大意:有$n$条龙和初始$m$个武器,每个武器有一个攻击力$t_{i}$,每条龙有一个初始血量$a_{i}$和一个回复值$p_{i}$(即只要血量为负数就一直回复$p_{i}$的血量,只有在攻击后会回血),杀死一条龙当且仅当攻击结束后或回复血量之后血量为$0$,杀死一条龙会获得一个新的武器.现在要求对每条龙攻击固定次数$x$求出最小的$x$,使所有龙都能被杀死. 因为每次选择的武器是固定的,所以只要用$multiset$存当前剩下的武器然后每次按题目规…
显然multiset求出每次用哪把剑.注意到除了p=1的情况,其他数据都保证了ai<pi,于是先特判一下p=1.比较坑的是还可能存在ai=pi,稍微考虑一下. 剩下的部分即解bix≡ai(mod pi)方程组.没有保证模数互质,于是excrt一发.excrt实际上就是不停exgcd合并两个方程. 这次是重开这题,调了半天还是一堆-1觉得这个题可能是搞不会了,最后才发现某个地方没开long long. #include<iostream> #include<cstdio> #i…
传送门 原来NOI也会出裸题啊-- 用multiset求出对付每一个BOSS使用的武器威力\(ATK_i\),可以得到\(m\)个式子\(ATK_ix \equiv a_i \mod p_i\) 看起来可以直接魔改式子了-- 等一下!如果\(a_i > p_i\),\(ATK_ix<a_i\)没把BOSS打死怎么办QAQ 看数据范围,没有特性1(\(a_i \leq p_i\))的点似乎\(p_i=1\)?那不只要保证攻击次数能够把所有BOSS血量打到\(\leq 0\)就行了,,,于是这个顾…
首先很明显剑的选择是唯一的,直接用multiset即可. 接下来可以发现每条龙都是一个模线性方程.设攻击第i条龙的剑的攻击力为$s_i$,则$s_ix\equiv a_i\ (mod\ p_i)$. 现在需要将方程化成$x\equiv c_i\ (mod\ m_i)$的形式,从而使用exCRT解决. 变式:$s_ix+p_iy=a_i$,先同除以$gcd(s_i,p_i)$,再使用exgcd解不定方程,求x的最小正整数解. 注意判无解,exCRT结束之后注意要使$x\geqslant max(\…
题解:求解形如 $A[i]ans\equiv b[i](mod$ $p[i])$ 的 $x$ 的最小正整数解. 考虑只有一个等式,那么可以直接化成 $exgcd$ 的形式:$A[i]ans+p[i]y=b[i],$ 直接求 $ans$ 的正整数解即可. 增量 $M$ 为 $\frac{p[i]}{gcd(A[i],p[i])}$ 那如果有多个式子呢 $?$假设前面的式子得到的最小解为 $ans,$ 增量为 $M.$ 考虑将当前求出的 $ans',M'$ 与 $ans$ 合并. 即 $ans+M\…
BZOJ_5418_[Noi2018]屠龙勇士_exgcd+excrt Description www.lydsy.com/JudgeOnline/upload/noi2018day2.pdf 每次用哪吧剑显然用个set就搞定了. 对于每头龙,生命值ai,回血pi,剑的攻击力为atk,打的次数为ans. 显然有ans*atk-ai>=0&&pi|ans*atk-ai. ans*atk+pi*y=ai (y<=0). 要求y<=0的前提下ans尽量的小,是一个ax+by=n…
P4774 [NOI2018]屠龙勇士 先平衡树跑出打每条龙的atk t[] 然后每条龙有\(xt \equiv a[i](\text{mod }p[i])\) 就是\(xt+kp[i]=a[i]\) 求出一个满足条件的\(x_0\),通解是\(x=x_0+k*\text{gcd}(t,p[i])\) 就是\(x \equiv x_0 (\text{mod }\text{gcd}(t,p[i]))\) 然后就有n个这样的式子,用excrt,合并方程 excrt懒得写了 // luogu-judg…
[NOI2018]屠龙勇士 描述 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 1∼n 顺序杀掉 n 条巨龙,每条巨龙拥有一个初始的生命值 ai .同时每条巨龙拥有恢复能力,当其使用恢复能力时,它的生命值就会每次增加 pi,直至生命值非负.只有在攻击结束后且当生命值恰好为 0 时它才会死去. 游戏开始时玩家拥有 m 把攻击力已知的剑,每次面对巨龙时,玩家只能选择一把剑,当杀死巨龙后这把剑就会消失,但作为奖励,玩家会获得全新的一把剑. 小 D 觉得这款游戏十分无聊,但…
洛谷题目链接:[NOI2018]屠龙勇士 因为markdown复制过来有点炸格式,所以看题目请戳上面. 题解: 因为杀死一条龙的条件是在攻击\(x\)次,龙恢复\(y\)次血量\((y\in N^{*})\)后龙的血量恰好为\(0\).那么根据题意我们可以列出方程: \[atk_i*x\equiv hp_i(mod \ p_i)\] 这个形式是不是很像中国剩余定理的形式:\(x\equiv b_i(mod \ a_i)\). 事实上我们可以直接将这个方程看做一个同余方程,即\[atk_i*x+p…