随笔分类 -  ACM

大二到大三不堪回首的记忆....
摘要:原题链接 考察:推导公式 蓝书是将本题归纳到约数里,我实在没看出来这道题和约数有啥关系 这道题计算k%(1~n)的值,实际上是求k - [k/i]*i的值.转化后将式子累加得到n*k-累加和[k/i]*i. n*k是已知的式子,i在循环里枚举,唯一要求的是[k/i].一个个求是肯定不行的,因此需要求 阅读全文
posted @ 2021-01-16 17:50 acmloser 阅读(85) 评论(0) 推荐(0)
摘要:原题链接 考察:推导+gcd(?) 求在1~n的范围内,取k个数求它们的最大公约数. 还以为是一个个枚举,看数据范围感觉不对,结果看了讨论区....我果然fw 正确思路: k个数的最大公约数.假设公约数为x,则这k个数为x,2*x,3*x....k*x我们需要让k*x尽量靠近n,所以答案显而易见.. 阅读全文
posted @ 2021-01-16 11:43 acmloser 阅读(43) 评论(0) 推荐(0)
摘要:原题链接 考察:约数+推导 完全不会,fw本f 参考y总和lyd大佬的思路: 假设x为答案的话.当i<x,则g[i]<g[x]; 当i>x ,则g[i]<=g[x].因为x是最大的反质数.所以比x大的不允许有答案 假设x分解质因数的指数不呈递减式分布.那么后面大的数与前面小的数交换指数,可以得到一个 阅读全文
posted @ 2021-01-16 11:10 acmloser 阅读(70) 评论(0) 推荐(0)
摘要:原题链接 考察:分解质因数 卡死我的是我不知道如何存储S和m1的每一个质因数,一个个对比又觉得好麻烦..结果看了大佬的题解...对不起我是fw 正确思路: 题目应该是比较明显的分解质因数...这道题我们只需要存储m1的质因数.对于每一个S,我们直接让它÷m1的质因数即可.如果不能全部都除尽,那么S不 阅读全文
posted @ 2021-01-15 20:31 acmloser 阅读(199) 评论(0) 推荐(0)
摘要:原题链接 考察:质数筛 错误思路: 用Map可以很方便地合并同类项,但是用Map会MLE 正确思路: 对于1~n的每1个数,它们都会被它的最小质因数筛掉.这道题不是求分解n的质数,不能只枚举到√n.因为1~n之间还存在着质数.这些质数能够除尽>√n的质数 用筛法求出质数后.可以发现1~n的能够分解出 阅读全文
posted @ 2021-01-15 17:29 acmloser 阅读(82) 评论(0) 推荐(0)
摘要:原题链接 考察:质数筛 一开始是在POJ上做的,感谢AcWing让我看到错误数据555 思路: 朴素筛肯定不行.但这道题数字范围很大以至于数字难以用数组存储.好在题目提示r与l的范围差不超过1000000.这样可以将数组下标偏移,这样就能利用筛法求区间素数 这道题要求出质数距离,也就是我们需要先求出 阅读全文
posted @ 2021-01-15 14:34 acmloser 阅读(92) 评论(0) 推荐(0)
摘要:原题链接 考察:并查集 看了大佬的代码后才懂.本蒟蒻属实好菜.. 正确思路: 考点就是并查集删除点的操作.如果每个点的父亲赋原值,那么findf函数后修改某一非叶子结点,后面的结点也会被修改为修改后的值.因此此法无效 正确做法是设置虚父结点.i的父亲是i+n,但初始化的时候和一般并查集有点不一样.在 阅读全文
posted @ 2021-01-15 00:45 acmloser 阅读(97) 评论(0) 推荐(0)
摘要:原题链接 考察:最小生成树+枚举 错误思路: 枚举m个点,将m个点的边权值计入和,与点权值和作商求最小值 上面的思路错在题目是要求求m个点的树的比率最小.如果边权值不去掉一个而全部计入的话就会WA 正确思路: 枚举m个点,求最小生成树 1 #include <iostream> 2 #include 阅读全文
posted @ 2021-01-14 22:38 acmloser 阅读(75) 评论(0) 推荐(0)
摘要:原题链接 考察:最小生成树+并查集的运用+离线处理 永远不会动脑思考TAT 看大佬来的思路: 这道题的询问量很大.因此可以采取一些技巧.我们可以发现L大的答案是可以由L小的答案累加得来的.因此这道题对询问进行排序.先处理L小的询问.再进行累加推导L大的询问. 当i,j有多种路径,我们是选择一条经过路 阅读全文
posted @ 2021-01-14 16:41 acmloser 阅读(118) 评论(0) 推荐(0)
摘要:原题链接 考察:枚举+最小生成树 错误思路: 根据最小生成树建立邻接表.每次询问就dfs...这解法我没做出来.图的dfs还不太熟.等之后熟了再补吧. 正确思路: 每次询问求i,j最大权值与最小权值的差.实际就是问最小生成树上i到j的最大权值与最小权值的差.这道题可以直接枚举.参考上一题当i,j在一 阅读全文
posted @ 2021-01-14 14:18 acmloser 阅读(68) 评论(0) 推荐(0)
摘要:原题链接 考察:最小生成树 感觉很水,没做 但这道题看了别人代码更理解了最小生成树.我们没必要把已经建立公路的路设置权值为0,而是将他们并入集合.最小生成树会涉及所有的点.所以这些点一定会被并入最小生成树里. 别人的代码 记一下以后补了这道题 阅读全文
posted @ 2021-01-14 01:02 acmloser 阅读(65) 评论(0) 推荐(0)
摘要:原题链接 考察:最小生成树 错误思路: 计算每一条边,将最大的s-1条边的距离都变成0,再排序,让生成树选择 这个思路错在最大的边不一定在最小生成树里.我们要让图连通.需要先建一颗最小生成树.再让树的大边变成权值为0的边 谨记:最小生成树不是每条边都选了 1 #include <iostream> 阅读全文
posted @ 2021-01-14 00:49 acmloser 阅读(73) 评论(0) 推荐(0)
摘要:原题链接 考察:最小生成树 这道题难就难在怎么转成最小生成树的模型.本蒟蒻是看了别人的博客看着看着突然顿悟..(本蒟蒻不配) 正确思路: 字符串相互转化成相同的字符串.不同的字符串之间的字母差距其实就是这个字符串到不同的字符串的距离.明白之后直接套模板 1 #include <iostream> 2 阅读全文
posted @ 2021-01-13 21:20 acmloser 阅读(74) 评论(0) 推荐(0)
摘要:原题链接 考察:基础并查集 思路: 已经在集合的不能在连边 易错: 注意所有房间都要连通.所以最后正确的图是一张最小生成树 1 #include <iostream> 2 #include <algorithm> 3 #include <vector> 4 #include <set> 5 usin 阅读全文
posted @ 2021-01-13 08:56 acmloser 阅读(68) 评论(0) 推荐(0)
摘要:原题链接 考察:bf或者spfa判断负环 应该是负环判断的入门题.这道题记录一下bf算法判断负环的模板.万一以后要用呢~ 注释基本写在代码里 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 using namespac 阅读全文
posted @ 2021-01-13 00:35 acmloser 阅读(99) 评论(0) 推荐(0)
摘要:原题链接 考察:位运算+推导 本质是考察推规律,我一眼看过去还以为是字典树.结果这树枝多的离谱.排除字典树的做法.因为数字又是可以随意取于是本蒟蒻蒙蔽.. 参考大佬的正确思路: 在草稿纸上可以列出1~n的答案可以发现规律:当k==1,答案就是n.当k>1,答案就是2的n的位数次方-1. 1 #inc 阅读全文
posted @ 2021-01-12 21:03 acmloser 阅读(69) 评论(0) 推荐(0)