摘要: 传送 很多人质疑它是二分,但其实它就是二分(我会说我不会解方程吗) 据说有很多人没看懂题干在说些什么,那就不要管题干了。拿样例算一遍,我们看看样例的答案是怎么算出来的。 这是样例。看到这个数,我们很懵逼。众所周知,坐车比走路快。那么让谁先坐车,坐到哪,就是个问题。因为甲,乙两人要同时到终点,所以肯定 阅读全文
posted @ 2019-03-30 18:40 千载煜 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 传送 这个题一本通上有,但是为了增强我们的创新精神,思维能力balabala,书上的满分程序不全,要优化一下,在此写一下第二种方法 书上从1到√b0枚举gcd(x,b0),并分i为gcd(x,b0),b0/i为gcd(x,b0)以及特判i*i=b0,但是会出现一个i被多次判断的情况,所以要在if里特 阅读全文
posted @ 2019-03-26 11:07 千载煜 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 传送 特写此篇,纪念不用dp做dp题 洛谷说这是个dp,但我不信(其实就是不会dp),因此我们考虑用另一种思路。修改后的队列每一个 数a[i]一定满足a[i]<=a[i+1],那修改后的顺序就是一个不下降序列。为了求出最少要改的数,只要求出原来的序列中最长不下降子序列的长度l,再用n减去即可。求l的 阅读全文
posted @ 2019-03-26 09:21 千载煜 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 传送 乘法逆元:ax ≡ 1 (mod p),其中x为a的逆元,求模意义下的乘法逆元,通常有一下几种方法: 1.拓展欧几里得(也就是exgcd) ax ≡ 1 (mod p) ax-py=1 这就变成解不定方程的问题了,根据拓展欧几里得算法,代码如下(会TLE3个点)(就算开o2优化也没有卵用) # 阅读全文
posted @ 2019-03-19 19:28 千载煜 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 传送 因为卒每到一个点上,就有两种情况。1.从左边过来。2.从上面过来。我们设f[i][j]为卒到[i][j]这个点的方案数,那么方程就是f[i][j]=f[i-1][j]+f[i][j-1],边界状态为f[i][0]=0,f[0][i]=0。哦,等等好像有什么不对的,如果马的控制点在边界上怎么办? 阅读全文
posted @ 2019-03-12 20:16 千载煜 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 传送 01背包又进化了,它变成了二维背包。 既然它多了一个维度,那么我们的f[j]也变成了二维数组f[i][j],其中i表示费用1,j表示费用2 核心方程也相应的变成了f[i][j]=max(f[i-v1[i]][j-v2[i]],f[i][j]),同时,也多了一层循环 代码如下: 阅读全文
posted @ 2019-03-10 20:41 千载煜 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 传送 它不是可爱的01背包了!!!这个题中一种药可以采无限次!!! 它进化成了完全背包。完全背包中的内循环从m到v[i]改成了从v[i]到m 既然如此,代码如下: 其余完全背包:P2722总分 阅读全文
posted @ 2019-03-10 20:29 千载煜 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 传送 这个题的题干很长,长到令人恶心 这个题的p乍一看好像没有卵用,但其实他很有用(废话)。这里的“费用”不再是tw[i](wky做第i道题的时间),而是tw[p[i]](wky做第i道题所对应的知识点的时间),跳过这个坑后就套用经典的01背包代码就行了 代码如下: 阅读全文
posted @ 2019-03-10 20:21 千载煜 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 传送 这是一个典型的背包方案问题,设f[j]为当前价值为j的方案数,则f[j]=f[j]+f[j-a[i]],即当前方案数为选这个的方案数和不选这个东西的方案数,代码如下 其余背包方案数问题: P2639Bessie的体重 P1049装箱问题 阅读全文
posted @ 2019-03-10 20:13 千载煜 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 传送 回文数的判断有个神奇的公式: 其中leng为字符串长度,看每个g[i]是否都满足它,若满足,就是回文数 ps:洛谷的impossible有毒,必须得复制题干中的impossible 代码如下: 阅读全文
posted @ 2019-03-09 21:17 千载煜 阅读(442) 评论(0) 推荐(0) 编辑