题目链接: [Noi2018]屠龙勇士 题目大意:有$n$条龙和初始$m$个武器,每个武器有一个攻击力$t_{i}$,每条龙有一个初始血量$a_{i}$和一个回复值$p_{i}$(即只要血量为负数就一直回复$p_{i}$的血量,只有在攻击后会回血),杀死一条龙当且仅当攻击结束后或回复血量之后血量为$0$,杀死一条龙会获得一个新的武器.现在要求对每条龙攻击固定次数$x$求出最小的$x$,使所有龙都能被杀死. 因为每次选择的武器是固定的,所以只要用$multiset$存当前剩下的武器然后每次按题目规…
QWQ 一到假期就颓废 哎 今年新鲜出炉的NOI题,QwQ同步赛的时候写的,后来交了一发洛谷,竟然过了 首先 根据题目,我们很容易得到,假设对应每一条龙的剑的攻击力是\(atk\)的话 \[a_i-x\times atk + k *p_i = 0 \] \[x\times atk = a_i \pmod {p_i} \] QwQ一看到这个式子,就想到了扩展crt求解. 不过我一开始的想法是,根据扩欧,求$a_i-x\times atk + k *p_i = 0 \(中的每一个\)x$的通解表达式…
题目链接: 洛谷 BZOJ LOJ 题目大意:这么长的题面,就饶了我吧emmm 这题第一眼看上去没法列出同余方程组.为什么?好像不知道用哪把剑杀哪条龙…… 仔细一看,要按顺序杀龙,所以获得的剑出现的顺序也是固定的. 那么如果能把所有龙杀死,就能模拟出哪把剑杀那条龙了. (以下设所有除 $n,m$ 外的数的最大值为 $v$) $O(nm)$? 不,发现这里用剑的限制实际上是给出一个上界,来用lower_bound的. 插入也不要太暴力.我们想到什么?手写平衡树multiset! 这一部分复杂度是…
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$来求出…
好久没写了,写一篇凑个数. 题目分析: 这题不难想,讲一下中国剩余定理怎么扩展. 考虑$$\left\{\begin{matrix}x \equiv a\pmod{b}\\ x \equiv c\pmod{d}\end{matrix}\right.$$ 不难发现需要满足$gcd(b,d)|(c-a)$才有解. 结合后的模数一定是$lcm(b,d)$.然后扩展gcd合并就行了. 中间过程会超过$10^18$,需要快速乘. 代码: #include<bits/stdc++.h> using nam…
显然multiset求出每次用哪把剑.注意到除了p=1的情况,其他数据都保证了ai<pi,于是先特判一下p=1.比较坑的是还可能存在ai=pi,稍微考虑一下. 剩下的部分即解bix≡ai(mod pi)方程组.没有保证模数互质,于是excrt一发.excrt实际上就是不停exgcd合并两个方程. 这次是重开这题,调了半天还是一堆-1觉得这个题可能是搞不会了,最后才发现某个地方没开long long. #include<iostream> #include<cstdio> #i…
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]屠龙勇士 因为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…
[NOI2018]屠龙勇士 描述 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 1∼n 顺序杀掉 n 条巨龙,每条巨龙拥有一个初始的生命值 ai .同时每条巨龙拥有恢复能力,当其使用恢复能力时,它的生命值就会每次增加 pi,直至生命值非负.只有在攻击结束后且当生命值恰好为 0 时它才会死去. 游戏开始时玩家拥有 m 把攻击力已知的剑,每次面对巨龙时,玩家只能选择一把剑,当杀死巨龙后这把剑就会消失,但作为奖励,玩家会获得全新的一把剑. 小 D 觉得这款游戏十分无聊,但…