- 博客(462)
- 收藏
- 关注
原创 幼儿园数学题II
幼儿园数学题II\(Time\) \(Limit:10000MS\)\(Memory\) \(Limit:65536K\)\(Case\) \(Time\) \(Limit:1000MS\)Description这天,当一头雾水的LZH同学在考场上痛哭的时候,一旁的YMW早就如切菜一样cut掉了简单至极的第一题,风轻云淡的冲击着满分,然而最后一道题着实难道了他,毕竟是幼儿园副园长树皮和著名...
2022-07-02 10:49:00
168
原创 「洛谷P3932」浮游大陆的68号岛
\(link\)分析:前缀和\(sum_i\)表示 将仓库\(1-i\)所有物品转移到\(1\)号仓库花费\(sum2_i\)表示 将仓库\(1-i\)所有物品转移到\(n\)号仓库花费\(dis_i\)表示\(i\)号仓库到\(1\)号仓库距离\(num_i\)表示仓库\(1-i\)物品总个数分\(3\)种情况:\(x\)在\(l\)左边\(x\)在\(r\)右边\(x\)在\(...
2022-06-30 10:34:00
140
原创 「洛谷P5521」梅深不见冬
\(link\)分析:因为要在子节点都放置后 才能放自己 那放完自己后 子节点就可以拆除了对于叶节点 \(ans\)为自己的\(w\)对于非叶节点如果所有子节点都没有\(1\)朵以上梅花 \(ans\)为\(w_x+\sum w_{son}\) \(x\)是当前节点 \(son\)是所有子节点或由一棵子树剩下的梅花\((ans_i-w_i)\)(就是可回收的) 分给之后遍历的子树 这...
2022-06-30 10:23:00
155
原创 【洛谷P1541】乌龟棋【DP】
小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行NNN个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第NNN格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中MMM张爬行卡片,分成4种不同的类型(MMM张卡片中不一定包含所有444种类型的卡片,见样例),每种类型的卡片上分别标有1,2,3,41,2,3,41,2,3,4四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片,控
2022-06-29 16:57:48
213
原创 【洛谷P4391】Radio Transmission 无线传输【KMP】
linklinklinkkmpkmpkmpnextnnext_nnextn就是最长公共的前缀后缀部分 所以直接n−nextnn-next_nn−nextn就是答案
2022-06-16 21:45:14
298
原创 2022.6.10 特长生模拟
201620162016 特长生目录:A.A.A.子数整数用%\%%和///取出每333位B.B.B.游戏问题每轮走mmm步 一共走m×10km\times 10^km×10k 所以相当于多走了(m×10k)%n(m\times 10^k)\%n(m×10k)%n步C.C.C.字串距离dpdpdp设fi,jf_{i,j}fi,j表示第一个串做了前 iii 位 第二个串做了前 jjj 位的最小距离那么就是fi,j=min{fi,j,fi−1,j+k,fi,j−1+k,fi−1,j−1+d
2022-06-11 14:55:33
175
原创 2022.6.9 特长生模拟
201220122012 特长生目录:A.A.A.安全密码直接循环×××B.B.B.农场主dpdpdp设fi,jf_{i,j}fi,j表示建了iii个马房 分配了前jjj只马的最小系数那么就可以再枚举一个kkk k
2022-06-11 11:19:46
122
原创 2022.6.7 特长生模拟
201720172017 特长生目录:A.A.A. 优美景点排序然后输出B.B.B.益智游戏搜索 注意可以一开始就添个负号C.C.C.工程拓扑排序 iii要等jjj做完就是从jjj到iii的边D.D.D.摆渡路线先破环成链 设fi,jf_{i,j}fi,j表示iii到jjj的最多保留的线路枚举中间点kkk 那么就是个区间dpdpdp 最后在加上两点间是否本来有答案就是fi,i+100−1f_{i,i+100-1}fi,i+100−1...
2022-06-08 20:52:42
125
原创 2022.6.6 特长生模拟
201820182018 特长生目录:A.A.A.密码问题构造最大最小数然后相减B.B.B.括号匹配问题先判匹配 再判是否符合规则 注意同级括号可以嵌套C.C.C.建学校问题设fi,jf_{i,j}fi,j表示前iii个村庄建了jjj个学校的最小代价 然后分别计算往前走和往后走的代价D.D.D.平板游戏问题分类讨论 注意柱子的距离是0.50.50.5 全部先×2×2×2...
2022-06-08 19:58:15
96
原创 2022.5.28 特长生模拟
其实就是 202020202020特长生题目录:T1.数学题T2.流星雨T3.K星人的语言T4.星座图T1.T1.T1. 数学题分析:高精加 处理负数 注意会有 −0-0−0 这种数据 特判CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;ty
2022-05-28 11:12:04
96
原创 【LGR-109】B.华胥之梦
分析:赛时题解i−>ji->ji−>j边权=ai−2×aj+c=a_i-2\times a_j+c=ai−2×aj+c 要最短就要使 aia_iai 小 aja_jaj 大由于是简单路径 直接按点集内点的aia_iai从小到大走就可以了CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<...
2022-05-14 17:31:35
184
原创 【LGR-109】A.走在夜晚的莲台野
分析:赛时题解每次尽可能用银的装满容器 然后填一个金的 每填一次容量就会减111所以用xxx个金木板可以填的银木板数 可以等差数列求和看剩下的银木板和金木板能否填满容器即可CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long lon...
2022-05-14 17:25:27
151
原创 牛客挑战赛60-D 三千道路【tarjan,拓扑】
linklinklink分析:注意到原图中出现环 那么在竞赛图中也可以存在 所以先缩点如果有大小为 222 的强连通分量 就不合法在竞赛图中 两个点之间都有联系 所以在原图中存在没有联系的点 就不可能构造竞赛图 那么合法情况就是一条链所以拓扑序判链即可CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue&..
2022-05-14 15:46:35
126
原创 牛客挑战赛60-B 尖端放电
linklinklink分析:发现找出一个点就可以breakbreakbreak了 所以O(Tk2)O(Tk^2)O(Tk2)可过CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;const int N=1e6+5;..
2022-05-14 10:31:51
248
原创 牛客挑战赛60-C 格点染色【计数】
linklinklink分析:设 fxf_xfx 为将前 xxx 点染黑的方案xxx是 fxf_xfx 最后被染色的 那fx=fx−1f_x=f_{x-1}fx=fx−1若不是 对于 [ax,x−1][a_x,x-1][ax,x−1] 的任意数ppp xxx都可以放在 ppp 的上一个染色的点与 ppp 之间染色 有 (x−ax)(x-a_x)(x−ax) 种取值 方案为fx−1×(x−ax+1)f_{x-1}\times (x-a_x+1)fx−1×(x−ax+1)所以 f.
2022-05-14 10:15:36
215
原创 牛客挑战赛60-A 第三心脏
linklinklink分析:一开始写数论 挂了 索性打个暴力发现过了(笑CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;ll a,b,ans;int T;ll gcd(ll a,ll b){return (!b.
2022-05-14 09:48:45
218
原创 【洛谷P1300】城市街道交通费系统【dfs】
linklinklink分析:dfsdfsdfs剪枝向右向后向左转分别为 右转1/2/31/2/31/2/3次设向E/S/W/NE/S/W/NE/S/W/N的方向分别为0/1/2/30/1/2/30/1/2/3 注意导航的方向也是E/S/W/NE/S/W/NE/S/W/N的顺序CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#inclu..
2022-05-04 10:52:33
315
1
原创 【51nod 3144】超级购物【概率】
linklinklink分析:P(A∣B)=P(A∩B)P(B)P(A|B)=\frac{P(A∩B)}{P(B)}P(A∣B)=P(B)P(A∩B)BBB是选rrr个人 AAA是rrr个人中 钦定的一个iii对于iii 他的概率就应乘上pip_ipi 其余的即(1−pi)(1-p_i)(1−pi) 可以通过dfsdfsdfs枚举所有情况 最后累加CODE:#include<iostream>#include<cstdio>#include<algori.
2022-05-03 20:52:13
490
原创 【51nod 3145】扔球游戏【期望】
linklinklink分析:第iii个位置上为000 第i+1i+1i+1个位置上为111的概率为 nn+m×mn+m−1 (1≤i<n+m)\frac{n}{n+m}\times \frac{m}{n+m-1}~~_{(1≤i<n+m)}n+mn×n+m−1m (1≤i<n+m)期望就再乘上长度 ×(n+m−1)\times (n+m-1)×(n+m−1)答案即 n×mn+m\frac{n\times m}{n+m}n+mn×.
2022-05-03 16:32:42
1268
原创 【51nod 1632】B君的联通【期望】
linklinklink分析:每炸一条多一个连通块 n−1n-1n−1条概率为50%50\%50% 共n−12+1\frac{n-1}{2}+12n−1+1个最后答案即 (n+1)×2n−2(n+1)\times 2^{n-2}(n+1)×2n−2 注意取模CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg regis.
2022-05-03 16:05:14
249
原创 【51nod 1639】绑鞋带【概率】
linklinklink分析:nnn条鞋带 2n2n2n个头 如果当前绑了iii个 就剩下2n−2i2n-2i2n−2i个头钦定一个头 剩下2n−2i−12n-2i-12n−2i−1个头 肯定不能连一条鞋带上的 所以概率就是∏2n−2i−22n−2i−1\prod \frac{2n-2i-2}{2n-2i-1}∏2n−2i−12n−2i−2CODE:#include<iostream>#include<cstdio>#include<algorithm>.
2022-05-03 15:20:13
244
原创 【51nod 1381】硬币游戏【期望】
linklinklink分析:注意到nnn为大于111的整数 直线间距离为111与半径为rrr的圆相交且有相切的直线有2×r+12\times r+12×r+1条 概率为1∞\frac{1}{\infty}∞1 无相切则有2×n2\times n2×n条 概率为1−1∞1-\frac{1}{\infty}1−∞11∞\frac{1}{\infty}∞1其实就是000 1−1∞1-\frac{1}{\infty}1−∞1为111答案就是n×2n\times 2n×2CODE:#inc..
2022-05-03 09:24:44
158
原创 【洛谷P4933】大师【区间DP】
linklinklink分析:区间dpdpdp(设fi,wf_{i,w}fi,w表示等差数列以iii结尾 公差为www的方案数那么fi,ai−aj=fi,ai−aj+fj,ai−ajf_{i,a_i-a_j}=f_{i,a_i-a_j}+f_{j,a_i-a_j}fi,ai−aj=fi,ai−aj+fj,ai−aj公差可以为负数 所以可以加上一个数处理 最后加上∑i=1ni\sum_{i=1}^ni∑i=1ni 因为一个数也算合法CODE:#include<ios.
2022-05-02 20:48:35
372
原创 【51nod 3050】2维切方格【数学】
linklinklink分析:xxx轴方向会经过mmm个方格 yyy轴方向会经过nnn个方格但是斜着走会有重复经过的 也就是方格顶点 个数为 Gcd(n,m)Gcd(n,m)Gcd(n,m)所以答案为 n+m−Gcd(n,m)n+m-Gcd(n,m)n+m−Gcd(n,m)CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include&.
2022-03-10 20:21:29
390
原创 【51nod 2489】小b和灯泡【数学】
linklinklink分析:当前灯泡亮的次数为当前编号的约数个数 那么只有奇数次最后才会亮只有完全平方数的约数个数为奇数 所以就是问你 111 到 nnn 有多少个完全平方数所以答案为 n\sqrt{n}nCODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define reg registe.
2022-03-10 20:13:01
222
原创 「洛谷P5495」Dirichlet 前缀和
\(link\)分析:可以先暴力 枚举倍数:点击查看代码for(reg uint i=1;i<=n;i++) for(reg uint k=1;k*i<=n;k++) b[k*i]+=a[i];for(uint i=1;i<=n;i++) ans^=b[i];但这样显然过不了 在枚举下标时会多次无意义枚举关于唯一分解定理:\(i\) 和 \(k\...
2022-03-07 21:37:00
67
原创 【洛谷P5495】Dirichlet 前缀和【数论】
linklinklink分析:可以先暴力 枚举倍数:for(reg uint i=1;i<=n;i++) for(reg uint k=1;k*i<=n;k++) b[k*i]+=a[i];for(uint i=1;i<=n;i++) ans^=b[i];但这样显然过不了 在枚举下标时会多次无意义枚举关于唯一分解定理:iii 和 kkk 都可以分解为 ∑i=1npici\sum_{i=1}^np_i^{c_i}∑i=1npici 和 ∑i=1mpici..
2022-03-07 21:24:53
212
原创 【洛谷P1403】约数研究
linklinklink分析:对于每个数k (k<=n)k~(k<=n)k (k<=n) 共有 n/kn/kn/k 个数的约数中有kkk 对答案的贡献也是n/kn/kn/kCODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;t.
2022-02-26 11:07:16
252
原创 「POJ1845」Sumdiv
\(Poj~link\)分析:考虑唯一分解定理 \(A\) 可以表示为 \(\prod_{i=1}^{n} p_i^{c_i}\)约数之和即 \((1+p_1+p_1^2+...+p_1^{c_1})\times(1+p_2+p_2^2+...+p_2^{c_2})\times...\times(1+p_n+p_n^2+...+p_n^{c_n})\)那么 \(A^B\)可表示为 \(...
2022-02-26 10:54:00
49
原创 【POJ1845】Sumdiv【数论】
linklinklink分析:考虑唯一分解定理 AAA 可以表示为 ∏i=1npici\prod_{i=1}^{n} p_i^{c_i}∏i=1npici约数之和即 (1+p1+p12+...+p1c1)×(1+p2+p22+...+p2c2)×...×(1+pn+pn2+...+pncn)(1+p_1+p_1^2+...+p_1^{c_1})\times(1+p_2+p_2^2+...+p_2^{c_2})\times...\times(1+p_n+p_n^2+...+p_n^{c_n})(.
2022-02-26 10:43:16
172
原创 【51nod 2493】二进制距离之和【位运算】
linklinklink分析:n2n^2n2暴力比较 可以将两数xorxorxor后看有多少个111复杂度 O(n2logn)O(n^2logn)O(n2logn)也可以把每个数二进制拆开 若该位有cnt1cnt_1cnt1个111 cnt0cnt_0cnt0个000 最后就会产生cnt0×cnt1cnt_0\times cnt_1cnt0×cnt1个不同复杂度 O(nlogn)O(nlogn)O(nlogn)CODE:#include<iostream>#includ.
2022-02-25 20:59:32
521
原创 【51nod 3062】n皇后问题 V2【位运算dfs】
linklinklink分析:位运算加速nnn皇后可以用三个二进制数记录每行上 每列以及两条斜线的占用情况 那么三个或起来 就得到了该行的所有禁位 取反就是所有可以放的位得出每行可以放的位后 用lowbitlowbitlowbit即可找出放的位置CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerus.
2022-02-25 20:38:19
395
原创 【51nod P3210】二进制统计
linklinklink分析:暴力随便过CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;int T,ans[35];int main(){ scanf("%d",&T); while(T--) { .
2022-02-19 16:52:49
164
原创 【51nod P2527】Or 和 Sum【位运算】
linklinklink分析:众所周知 a∣b+a&b=a+ba|b+a\&b=a+ba∣b+a&b=a+b判断a&ba\&ba&b为111的位在a∣ba|ba∣b也为111即可CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespa.
2022-02-19 16:41:00
190
原创 【51nod P3395】n位格雷码【位运算】
linklinklink分析:nnn位格雷码最多有2n2^n2n个对于一个二进制数xxx 若xxx的第iii位与第i+1i+1i+1位相同 则格雷码的第i+1i+1i+1位为000 否则为111很显然 这就是异或CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace st..
2022-02-19 16:01:55
259
原创 【51nod P3047】位移运算【位运算】
linklinklink分析:如果aaa可以变成bbb 那么去掉前导后缀000的b′b'b′ 一定是aaa的子串判断子串对aaa进行>>>>>>得到a′a'a′ 若a′&b′=b′a'\&b'=b'a′&b′=b′ 说明b′b'b′为111的位在a′a'a′也是111看a′xor b′a'xor~b'a′xor b′得到的ccc 若ccc最低位的111比b′b'b′最高位的111高 b′b'b′才为a′a'a′的子.
2022-02-19 15:27:40
261
原创 【51nod P2653】区间xor【位运算】
linklinklink分析:记录[1,b][1,b][1,b]和[1,a−1][1,a-1][1,a−1]的异或值A,BA,BA,B 和前缀和类似 答案就是A xor BA~xor~BA xor BCODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing n.
2022-02-19 09:30:49
445
原创 【51nod P2102】或减与【位运算】
linklinklink分析:或减与 就是异或 也可以直接算CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;ll a,b;int main(){ scanf("%lld%lld",&a,&b);.
2022-02-19 09:12:46
325
原创 【51nod P3216】授勋【位运算】
linklinklink分析:勋章都是222的幂次 所以就是问每个数的二进制有多少个111CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;int n,x; int main(){ scanf("%d",&..
2022-02-19 08:56:54
191
原创 【51nod P2106】一个奇数次【位运算】
linklinklink分析:异或一个数出现偶数次 它们的异或值就为000 否则为这个数CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;int n,x,ans; int main(){ scanf("%d",&.
2022-02-19 08:49:39
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人