摘要: 题面传送门 我去我TM没有去掉freopen调了一下午$\cdots$ 思路 因为如果第$i$分钟可以控制住疫情,那么第$i+1$以及之后的都是可以的,所以,就可以二分了。 然后就是$check$函数如何写,有一个显而易见,就是每一个军队都要尽量靠近根节点,这样才会拦掉更多的点,所以,就要把每个军队 阅读全文
posted @ 2022-06-10 20:19 A_zjzj 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看嘛,立刻想到了线段树,然后呢,又不想打,感觉太长,于是呢,因为如果从第$i$个订单开始出问题,那么$i+1$以及以后的都会出问题,所以就可以二分,然后二分呢,重要的是$check$。 我们就要看看前面这么多订单每天的加在一起够不够,所以是区间修改,然后,就要$O(n)$枚举每一 阅读全文
posted @ 2022-06-10 20:02 A_zjzj 阅读(54) 评论(0) 推荐(0) 编辑
摘要: \(\gcd\) 定义:求出两个数的最大公因数。 算法定律:\(\gcd(a,b)=\gcd(b,a\bmod b)\) 证明: 设$\gcd(a,b)=k,a=t_1\times k,b=t_2\times k$ 可知,\(\gcd(t_1,t_2)=1\),如果还有一个$t$,那么就可以说明$a 阅读全文
posted @ 2022-06-10 20:01 A_zjzj 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 \(a x \equiv 1 \pmod b\) 其实这个同余方程就是$ax\bmod =1$ 就想是$ax$减掉若干个$b$剩下的$1$ 即$ax-by=1$,然后直接用$exgcd$,求出来$x$就可以了,然后$y$求出来也不用管了,因为要正整数解,所以求出来一个$x$,就要输出$( 阅读全文
posted @ 2022-06-10 20:01 A_zjzj 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 我天,搞死我了,细节不少啊 思路 首先,一定会看出来可以在暴力的基础上加一点优化——预处理出每个点的第一近的点和第二近的点。(我枯了) 然后,弄好之后,我们发现,如果从不同点开始,有可能还是会走到一起,(即为后面一段相同),所以,就有了另一个优化——倍增,如果还不会的话,可以看看$rmq 阅读全文
posted @ 2022-06-10 20:00 A_zjzj 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看,高精度,参见高精度模板--zhengjun,这个模板十分好用(直接粘贴就可以了)。(代码中就不显示了) 然后,如果是这样的排列: ||| |-|-| |之前的$a$乘积为$t$|\(\cdots\)| |\(k\)|\(a_0,b_0\)| |\(k+1\)|\(a_1.b_ 阅读全文
posted @ 2022-06-10 19:59 A_zjzj 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看,数据这么小,打个搜索剪枝一下就可以了。 然后,我打完了之后,$T$了一个点,就使劲想剪枝,就是已经走到的点就不用再走一次了。 代码 #include<bits/stdc++.h> #define maxn 101 #define maxm 10001 using namesp 阅读全文
posted @ 2022-06-10 19:58 A_zjzj 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一道模拟,注意细节即可 代码 #include<bits/stdc++.h> using namespace std; string a,b; int main(){ cin>>a>>b; for(int i=0,j=0;i<b.length();i++,j=(j+1)%a.len 阅读全文
posted @ 2022-06-10 19:58 A_zjzj 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看就是一道$dp$ 用$f_{i,j}$表示摆到第$i$种花,已经摆了$j$盆花所有的可能性; 初始化:\(f_{0,0}=1\) 状态转移公式: \(f_{i,j}=\sum\limits_{k=1}^{min(a_i,j)}f_{i-1,j-k}\) 这里就直接用滚动数组了。 阅读全文
posted @ 2022-06-10 19:54 A_zjzj 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 首先,一看就是一道模拟,然后这个是暴力代码(50分) #include<bits/stdc++.h> using namespace std; int n,m,x; int a[10001][101],b[10001][101],c[10001]; int main(){ scan 阅读全文
posted @ 2022-06-10 19:53 A_zjzj 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看就是一道搜索的好题目。 说道搜索,就想到了剪枝优化,然后,可以想到一个很简单的剪枝,就是先选所在的行、列、宫已知的数字最多的格子,这样有点麻烦,我就直接看看行就完事了。 然后,然后就是一个搜索了。 代码 #include<bits/stdc++.h> #define max(x 阅读全文
posted @ 2022-06-10 19:52 A_zjzj 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 不就一道模拟吗,于是我就从$n$开始找,结果$T$了,然后,就想到了从小到大找,找到了就输出$n\div i$,结果就$A$了 代码 #include<bits/stdc++.h> using namespace std; int n; int main(){ cin>>n; fo 阅读全文
posted @ 2022-06-10 19:52 A_zjzj 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看到这道题,立刻想到$SPFA$,结果一个单向的东西交上去,$T$了一个点。 然后,单向$SPFA$的搜索面积要远大于从两头开始找,于是,我就改变了思路,分别从两端开始找,分别找出到每个点的最小值和最大值,这样,每一个点一减取个最大值就完事了。 代码 #include<bits/ 阅读全文
posted @ 2022-06-10 19:50 A_zjzj 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 吐槽一句,这么水的题目能搞成蓝色??? 好了,进入正题: 思路 首先,列出式子: \[ \left\{ \begin{aligned} \gcd(x,a_0)=a_1\\ lcm(x,b_0)=b_1 \end{aligned} \right. \] 那么,先来看第一个式子: \(\gc 阅读全文
posted @ 2022-06-10 19:49 A_zjzj 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看就是一道模拟。 注意一下细节就可以了。 代码 #include<bits/stdc++.h> using namespace std; string a,b,c; int x[26],y[26];//分别从两边映射 int main(){ cin>>a>>b>>c; memse 阅读全文
posted @ 2022-06-10 19:48 A_zjzj 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 思路 一看,不就是一个分解质因数吗? 这里使用欧拉筛筛素数,如果不会,可以用埃氏筛,反正代码都差不多。 进入正题。 以第二个样例为例: 2 24 1 30 12 先处理出素数表$prime$。(我喜欢欧拉筛) 然后分解质因数,用$a_i$表示第$i$个素数有几个。(主要是省空间) 然后分 阅读全文
posted @ 2022-06-10 19:30 A_zjzj 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 我以后再也不赋值题面了,直接链接。 思路 不就一道模拟题吗? 想当年,我还不知道洛谷是个啥,还不会用$sort$,更不知道有结构体这个东西,只会打擂台$n^2$排序,$cin,cout$连$scanf,printf$都不会的蒟蒟蒟蒟蒟蒻,就做了这道题,哎 代码 #include<bits 阅读全文
posted @ 2022-06-10 19:29 A_zjzj 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一元$n$次多项式可用如下的表达式表示: \(f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots +a_1x+a_0,a_n\ne0\) 其中,$a_ix^i$称为$i$次项,\(a_i\) 称为$i$次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求 阅读全文
posted @ 2022-06-10 19:28 A_zjzj 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 题目描述 我们现在要利用$m$台机器加工$n$个工件,每个工件都有$m$道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。 每个工件的每个工序称为一个操作,我们用记号j-k表示一个操作,其中$j$为$1$到$n$中的某个数字,为工件号;$k$为$1$到$m$中的某个数 阅读全文
posted @ 2022-06-10 19:27 A_zjzj 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目描述 设 \(r\) 是个 \(2^k\) 进制数,并满足以下条件: \(r\) 至少是个 \(2\) 位的 \(2^k\) 进制数。 作为 \(2^k\) 进制数,除最后一位外,\(r\) 的每一位严格小于它右边相邻的那一位。 将 \(r\) 转换为二进制数 \(q\) 后,则 \(q\) 的 阅读全文
posted @ 2022-06-10 19:27 A_zjzj 阅读(32) 评论(0) 推荐(0) 编辑