题目链接 LOJ 洛谷 rank前3无压力(话说rank1特判打表有意思么) \(x*atk[i] - y*p[i] = hp[i]\) 对于每条龙可以求一个满足条件的\(x_0\),然后得到其通解\(x[i] = x_0 + p[i]/gcd*k\). 怎么合并所有龙的通解?可以直接写成 \(Ans\equiv x_0(mod\ p[i]/gcd)\),用扩展中国剩余定理合并即可. 所有\(p[i]=1\)时要特判.(为啥呢...反正我知道它不对...) 所有\(p[i]=hp[i]\)时同余…
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$的通解表达式…
题目链接: [Noi2018]屠龙勇士 题目大意:有$n$条龙和初始$m$个武器,每个武器有一个攻击力$t_{i}$,每条龙有一个初始血量$a_{i}$和一个回复值$p_{i}$(即只要血量为负数就一直回复$p_{i}$的血量,只有在攻击后会回血),杀死一条龙当且仅当攻击结束后或回复血量之后血量为$0$,杀死一条龙会获得一个新的武器.现在要求对每条龙攻击固定次数$x$求出最小的$x$,使所有龙都能被杀死. 因为每次选择的武器是固定的,所以只要用$multiset$存当前剩下的武器然后每次按题目规…
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…
题目:https://loj.ac/problem/2721 1.注意别一输入 p[ i ] 就 a[ i ] %= p[ i ] ,因为在 multiset 里找的时候还需要真实值. 2.注意用 multiset .并且,因为要 upper_bound( a[ i ] ) ,而 a[ i ] 是一个 long long 类型的,所以即使 multiset 里装的都是 int 类型的,也得开成 long long 的 multiset . 3.注意除了同余的限制,还有一个是 \( x*c_i >…
链接:P4774 前言: 交了18遍最后发现是多组数据没清空/ll 题意: 其实就是个扩中. 分析过程: 首先发现根据题目描述的选择剑的方式,每条龙对应的剑都是固定的,有查询前驱,后继(在该数不存在前驱时,最小值即为后继),和插入,删除操作,所以想到平衡树维护每条龙的剑的攻击力,记为b[i].建议使用非旋treap,非常之好写. 根据题目描述,a[i]为每条龙生命值,p[i]为每条龙回复量.发现能够击杀这条龙的条件可以列成一个方程: \(xb[i]-yp[i]=a[i]\) \(x\) 为攻击次…
www.lydsy.com/JudgeOnline/upload/noi2018day2.pdf Solution 将攻击的式子列出来,\(atk \times x-p \times y=a_i\) 这不就是个扩欧的裸式子嘛,求出 \(x\) 的解的式子 \(x=x_0+r \times dis\),其中 \(r\) 为任意整数,\(dis\) 为不定方程解的间隔 上面的式子发现又是一个同余方程 对于每一条龙都是一个同余方程,那么就是要解一个同余方程组的最小解 用扩展CRT就好了 #includ…