摘要:
0x01 读题 \(……\) 0x02 分析 仔细看看,发现是一道完全背包变形问题。 我们珂以想:以 \(V\) 为外层循环,枚举每一个总方案的值 先看看规律: 自己可以在画图工具上画画,枚举$4$~$5$种,蒟蒻画的太丑了 0x03 状态转移方程 \(f[j]=f[j-m[i]]\) 0x04 代 阅读全文
摘要:
考试题传送门 我靠为啥考场一个不会,下来做觉得除了 T1 水的一批啊 T4被 \(Hack\) 没资格说水/lb T1 实 在 不 会 /kk 观摩一下 @Blueqwq 彁彁の Random 吧 #include <bits/stdc++.h> #define int long long usin 阅读全文
摘要:
Program in C++14 据说某位神犇说过:数位DP就是抄板子的日常 对不对先不说但是要是谁有板子给我一个,数位DP确实有套路 T1:\(P2606\) 模板题不讲 如果需要,这里有神犇 \(\mathtt{zrt}\) 的视频。私信我领取,从 \(\mathtt{1:01:30}\) 开看 阅读全文
摘要:
不要问我为啥鸽到6.5 Program in C++14 T1:\(P1474\) 一道完全背包 就一元一元的凑 易得状态转移方程: \[ f[j]+=f[j-m[i]]; \] 其中 \(f[j]\) 代表凑成 \(j\) 元有 \(f[j]\) 种方法, \(m[i]\) 代表第 \(i\) 个 阅读全文
摘要:
扩展欧拉定理 #include<bits/stdc++.h> using namespace std; typedef long long ll; ll a,b,m,phi; string s; ll calc_phi(ll x){ ll ret=x; for(int i=2;i<=sqrt(x); 阅读全文
摘要:
0x00 前言 艹,我怎么就没想到大模拟呢 0x01 读题 \(……\) 0x02 分析 区间$dp$没什么好说的 我们通过一个$w[i]$存储计数的大小,从一位到三位,所以还有一个方程 当然$f$的初始化也很重要。我tm卡了半个小时就是因为我赋值大了 memset(f,0x3f,sizeof(f) 阅读全文
摘要:
0x01 读题 \(……\) 0x02 分析 数据范围巨大$(n\leq10^{18})$,显然不能用常见的递推求解。发现考点是快速幂 \(C^x_y=\dfrac{n!}{i!(n-i)!}\) 问题转化为求 \(\sum\limits_{i=0}^n \dfrac{\prod\limits_{k 阅读全文
摘要:
0x00 前言 自己整了个翻译呢 一开始写的超级复杂 后开借鉴别人思路才知道其实不长 0x01 读题 在团队队列中,每个元素都属于一个团队。 如果元素进入队列。它首先从头到尾搜索队列,检查它的一些团队成员(同一团队的元素)是否已经在队列中。如果是,它就插入它们的后面。如果不是,它将在尾部进入队列并成 阅读全文
摘要:
题目传送门 我记得我刚学OI时教练wangk就讲过,鸽到现在才写与其是弱智题解,不如说是纪念 还挺简单的,就是个记忆法搜索模板题 #include<algorithm> #include<bitset> #include<cctype> #include<cerrno> #include<cloca 阅读全文
摘要:
前情提示:会TLE,吸口氧可以过 先想到:对于一个系统,当且仅当前面的数凑得出来这个数 之后就像一个完全背包了 Code: #include<algorithm> #include<bitset> #include<cctype> #include<cerrno> #include<clocale> 阅读全文
摘要:
草了 我不得不承认我孤陋寡闻了 因为这是我见到的第一道卡MLE的题 前几次提交 \((60 - 80pts):\) #include<algorithm> #include<bitset> #include<cctype> #include<cerrno> #include<clocale> #in 阅读全文
摘要:
读题 我们首先看标签想到DFS,当然了不剪枝是不可能拿全分的 \[ 剪枝方法\begin{cases}1.从下往上搜\\2.当前的奶油面积+之后的最小奶油面积>现在已求出的的最小奶油面积——果断\ return\\3.当前的体积+之后的最大体积<体积总数,果断\ return\end{cases} 阅读全文
摘要:
题目传送门 在看到这道题后,首先想到直接暴力的做法,但显然在面对 \(10^9\) 时会 TLE 。 由此我们可以想到数论分块的做法。 出题人十分热心,在题干后加上了一句颇为显然但易被忽略的性质: 其中 \(k\bmod i\) 表示 \(k\) 除以 \(i\) 的余数。 形式化的,它表示 \(k 阅读全文
摘要:
Act1.读题 呐呐~这里是敲可爱的传送门 Act2.正解 用 \(f[i][0]\) 来存储 \(0\) 到 \(i\) 位数字中不含 \(4\) 和 \(62\) 的数字个数,即幸运数 用 \(f[i][1]\) 来存储 \(0\) 到 \(i\) 位数字中以 \(2\) 开头的幸运数。 用 \ 阅读全文
摘要:
\(……\) 腿疼,打字没力气,放代码就咕了 感谢神仙 $wsy \(_\) jim$ 提供思路 #include<algorithm> #include<bitset> #include<cctype> #include<cerrno> #include<clocale> #include<cma 阅读全文
摘要:
0x0F 前言 撒币数位 \(DP\) 坑杀我也 没有模板自己敲了快两个小时的我是屑 (还不得不向度娘求教) 0x01 读题 \(……\) 0x02 基础分析 找符合规定的数,显然是数位$DP$。 (以下是没有板子的讲解) $0\sim9$都是$windy$数,所以先预处理一下 for(int i= 阅读全文
摘要:
0x01 读题 \(……\) 0x02 分析 题中指出了给出的关系是树,相互有依赖关系,又让最大值,本题思路可知是 \(bfs\) 和记忆化搜索 可惜本蒟蒻不会记忆化搜索 \(qwq\) 您应该清楚,任何记忆化搜索都可以写成 \(dp\) ,(只是不同的题写法的简便程度不同),所以我们又可以想到树状 阅读全文
摘要:
题目传送门 提供两种做法 1.Dijstra最短路 正常连边后,对于每个位置 \(i\) 都加上 \(i-1->i\) 和 \(i->i+1\) ,长度为 \(1\) 的边,相当于先按照原方法走再改动。 不过题目中要求改动后的数必须是自然数(也就是正整数),所以不是所有点都可以加,必须逐个判断能否改 阅读全文
摘要:
0x00 前言 (我说我在快睡着的情况下写了个这你信吗 0x01 区间查询 #include<bits/stdc++.h> #define int long long//跟同机房大佬学到的,懒到无可救药时可以写写,考试时千万别 using namespace std; const int N=500 阅读全文