博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  A__51nod

摘要:题解 [51nod1340]地铁环线 "题面" 解析 "本文参考这篇博客" 一开始看到只有120行就打算写一写, 结果一刚就是三个星期~~摆摆摆~~ 本来是当查分约束入门学的. step 1 首先来考虑下如果已知总长度$s$如何判断是否合法. ~~显然差分约束~~ 对于$dis(x,y) =w$ 这 阅读全文
posted @ 2019-12-07 22:19 Hastin 阅读(318) 评论(0) 推荐(0)
摘要:题解 [51nod1225]余数之和 "题面" 解析 首先可以发现,$a$%$b$$=a b \lfloor a/b \rfloor$. 而对于一段连续的$b$来说$\lfloor a/b\rfloor$是一样的. 并且这一段$b$是等差数列. 因此整除分块搞一搞就行了. 数据范围真的恶心(爆lon 阅读全文
posted @ 2019-12-07 21:53 Hastin 阅读(175) 评论(0) 推荐(0)
摘要:题解 [51nod1358] 浮波那契 "题面" 解析 首先根据经验应该能一眼矩阵快速幂加速.... 因为给了你递推式,并且$O(n)$求显然不可能. 所以考虑怎么构造矩阵. 首先要处理的是小数的问题, 这里我们可以把$n$扩大5倍, 那么就变成了 $$ \begin{equation}f(n)=\ 阅读全文
posted @ 2019-11-15 08:35 Hastin 阅读(206) 评论(0) 推荐(0)
摘要:题解[51nod1555] 布丁怪 "题面" 解析 本文参考 "这位dalao的题解" 首先有一个巧妙的转换, 开一个数组记录每个横坐标的纵坐标, 简单来说就是对于点(x,y),令a[x]=y. 于是问题就变成了求满足区间最大值与最小值的差恰好等于区间长度的区间数. 于是可以考虑分治不要问我怎么想到 阅读全文
posted @ 2019-11-13 14:12 Hastin 阅读(152) 评论(0) 推荐(0)
摘要:题解 [51nod1753] 相似子串 "题面" 解析 先考虑相等的时候怎么办, 我们考虑求出每个字母的贡献,这样字母相等的问题就可以用并查集来解决. 具体来说,我们先对于每个字母,把S中等于它的标为1,其它的标为0, 那么S对于每个字母都有一个01串的形式, 再考虑对每个01串hash, 在统计答 阅读全文
posted @ 2019-11-13 14:06 Hastin 阅读(166) 评论(0) 推荐(0)
摘要:"题面" 解析 这题思路挺秒啊. ~~本麻瓜终于找了道好题了(还成功把ztlztl大仙拖下水了)~~ 看到叶子节点数 include include include include define int long long define fre(x) freopen(x".in","r",stdin 阅读全文
posted @ 2019-08-28 10:06 Hastin 阅读(159) 评论(0) 推荐(0)
摘要:"题面" 解析 这题一眼DP啊. 然而想了半天毫无思路. 后来~~看题解后~~发现可以按边权的大小顺序DP. 将边权从小到大排序,对于权值相同的边分为一组. 设$f[i][0]$表示经过当前权值的边后到达$i$的最长路, $f[i][1]$表示经过之前的权值的边后到达$i$的最长路. 那么对于一条边 阅读全文
posted @ 2019-08-25 22:20 Hastin 阅读(159) 评论(0) 推荐(0)
摘要:"题面" 解析 首先设$n$有$l$位, 那么对于前$l 1$位,$0$~$9$都是要选上的, 而对于最高位上的数$x$,$1$~$x 1$也是要选上的. 到这里就有了$10 (l 1)+x 1$ 而我们还要考虑最高位的数$x$能不能省(比如说样例就能省). 设一个数$sum$有$l$位,每一位都为 阅读全文
posted @ 2019-08-25 20:59 Hastin 阅读(159) 评论(0) 推荐(0)
摘要:"题面" 解析 首先,因为是不同的数字, 可以从小到大依次枚举加上每一个数字的贡献,再枚举每个数. 然而这样会T掉... 考虑到$n$只有$50000$, 当分成的数最多时,设最大的数为$m$, 则$1+2+3...+m include include define filein(a) freope 阅读全文
posted @ 2019-08-25 19:43 Hastin 阅读(162) 评论(0) 推荐(0)
摘要:"题面" 解析 我们设$f[i]$表示$k$次操作后第一个数在第$i$个位置上加了多少次, 而其它的数也可以类推, 第$i$个数在第$j$个位置加的次数就是$f[j i+1]$. 通过找规律~~手玩样例~~后可以发现, $f[i]=C_{i+k 2}^{i 1}$. (然而并不知道为什么) 最后对每 阅读全文
posted @ 2019-08-25 18:41 Hastin 阅读(103) 评论(0) 推荐(0)
摘要:"题面" 解析 一开始看上去毫无思路啊. 但想通了就很很简单. 我们枚举每种长度的边作为最大的边, 于是长度比当前大的边就要砍掉, 而长度比当前小的边只能留下小于等于当前长度的边数, 砍掉代价最小的几条就好了. 用权值线段树维护一下即可. cpp include include include in 阅读全文
posted @ 2019-08-23 14:54 Hastin 阅读(117) 评论(0) 推荐(0)
摘要:"题面" 解析 这题好像没人写过啊(所以好像没题解)... 然后刚了一天才写出来~~摆了半天~~. 其实一开始是想错了, 写了个$O(n^2)$的近似于暴力的方法. 就是对于每组权值相等的边, 对于每条边先把它假装删掉, 再看有没有边能代替它. 结果最后一个点过不去~~我绝对没想过打表~~. 后来发 阅读全文
posted @ 2019-08-23 13:27 Hastin 阅读(188) 评论(0) 推荐(0)