![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm
文章平均质量分 63
Hello_World_96
这个作者很懒,什么都没留下…
展开
-
FZU-2282 Wand
这题主要就是用错排公式 + 组合数学: 错排公式: D[n] = (n-1) * ( D[n-1] + D[n-2] ) 求组合数: 我们注意到n、m都比较大,所以我们在求C(n, m) = n!/((n-m)!*m!)时候,直接求的话会出现精度问题,所以我们可以通过求逆元来避免这个问题,同时我们又注意到MOD=1000000007,这是个素数,所以我们可以根据费马小定理直接算出逆元。详情见代...原创 2018-04-20 12:30:36 · 131 阅读 · 0 评论 -
UVa 714 Copying Books (二分答案 + 贪心)
最大值最小化问题我们可以二分查找这个答案,初始化上界 R 为这个序列的和,下界为序列中的最大值。我们二分查找,即取L和R的中间值C,判断k个中序列最大的S(i)是否小于C(这个过程我们只需要将序列尽量往后划分即可),若小于C,则上界R就变为C,否则下界L就变为C+1,重复这个步骤直到L==R即可,这时的L(或R)就是我们要找的。由于输出的时候需要满足,S(1)尽量小,其次S(2)尽量小……...原创 2018-05-23 07:22:54 · 231 阅读 · 0 评论 -
UVa 1608 Non-boring sequences (分治法)
题目链接: https://cn.vjudge.net/problem/UVA-1608解法:首先想到分治法,若一个序列是“non-boring”就要求,其中任何一个连续的子序列中至少得有一个只出现一次的元素。所以我们可以先找出一个只出现过一次的元素A[k],若找不到这样的A[k],直接输出“boring“就ok了,现在我们假设能够找到A[k],这样一来,我们就可以将问题划分一下,判断A[0]...原创 2018-05-26 16:46:14 · 322 阅读 · 0 评论 -
UVA - 11134 Fabled Rooks(简单贪心)
题目链接:https://cn.vjudge.net/problem/UVA-11134这题和我之前做的多校上的一题十分像,就是一个贪心。具体可以先看看这篇bolg:https://blog.csdn.net/super_son/article/details/80330290这和多校那题很像,唯一不同就是多了一步分析,这里的行和列是无关的,所以我们可以把行和列分开来看,行进行一次贪心,列...原创 2018-05-15 23:21:15 · 160 阅读 · 0 评论 -
HDU - 5360 多校 H题 Hiking
题目链接:https://cn.vjudge.net/contest/226118#problem/H这个题就是贪心法的简单应用,我们定义cnt为目前去远足的人数,cnt从0开始枚举,将目前所有的满足L小于等于cnt的人加到一个优先队列中去,这个优先队列按照每个人的R从小到大排序,然后我们选出第一个符合R大于等于cnt的人加入到远足团中来,一直这样进行下去即可。#include <c...原创 2018-05-15 22:21:48 · 148 阅读 · 0 评论 -
UVa 1471 Defense Lines (解释紫书思路)
题目链接:https://cn.vjudge.net/problem/UVA-1471设序列L表示连续递增子序列; 则最长的L就可以分为两部分,一部分是以j结尾的序列,另一部分是以i为开头的序列 现在我们来设置f(i)表示以i为开头的最长L的长度,g(i)表示以i为结尾的最长L的长度。这样一来我们可以在O(n)的时间复杂度内求出所有的f(i)和g(i),则最长序列L的长度就是g(j) ...原创 2018-05-21 18:42:59 · 867 阅读 · 0 评论 -
Uva-1152 (Hash) 4 Values whose Sum is 0
题目链接:https://cn.vjudge.net/problem/UVA-1152题目解法有多种,这里只讨论使用hash表实现,下面给出两种使用hash表解决此题的代码: Hash写法一: AC:Time 890ms 先枚举A集合和B集合中元素的和,直接存入Hash表中,接下来枚举C集合和D集合中元素的和的相反数在Hash表中出现的次数,即可,具体在代码中解释。#include ...原创 2018-05-13 12:25:56 · 248 阅读 · 1 评论 -
Uva 120 Stacks of Flapjacks
题目链接:https://cn.vjudge.net/problem/UVA-120这一题就是一个简单的模拟选择排序,对于n个元素,每次选出当中最大的元素,然后首先将这个最大的元素换到堆顶上去(如果这个元素就在堆顶,就可以跳过此操作),然后再将其换到堆底上去(若目前最大的元素就在堆底,以上步骤都可忽略,直接进入下一步),此时的堆底第一个元素的位置已经确定不会变了,然后对剩下的n-1个元素进行同...原创 2018-05-12 21:08:13 · 93 阅读 · 0 评论 -
HDU - 4300 多校A题 Clairewd’s message
题目链接:https://cn.vjudge.net/contest/226030#problem/A题目首先给出译码本,译码本给出了26字母的映射 然后再给出一段,截获的文本y,这段文本y的组成是:完整的密文+一部分明文。 所以我们可以把这段文本按照译码本先译码成一个文本x,文本x的组成:完整的明文 + 一串字符 这样一来我们就可以看得出,这就是一个裸的扩展kmp算法:寻找y[i…n-1]与原创 2018-05-09 18:57:41 · 134 阅读 · 0 评论 -
HDU - 5363 多校 K题 Key Set
这题应该说是思维题,一开始了很久都没有想出来,后来听别人一说,就明白了。 题目中说了对于集合n,其中的元素为 [ 1, 2, 3 … n ] 所以这个集合的非空子集个数就是 2^n - 1 所以接下来我们这么来想,我们把集合n中的 1 这个元素去掉,就还剩下n-1个元素,这n-1个元素可以组成非空集合的个数就是2^(n-1) - 1,这其中有和为偶数的也有和为奇数的,对于和为偶数的子集合,我们可原创 2018-05-02 22:07:24 · 150 阅读 · 0 评论 -
HDU - 4969 多校 J题 Just a Joke
这个题主要就是考察微积分,我认为主要的难点就是积分公式不记得了,orz……. 首先题目中说了,在跑的过程中 Guizeyanhua 和 Girl 还有 圆心 必须保持三点一线,所以我们可以知道要想三点一线,则Guizeyanhua 和 Girl的角速度必须相同,所以就会有下面的推导: 这样一来代码也就好写了:#include &lt;cstdio&gt;#include &lt;...原创 2018-05-02 20:55:50 · 220 阅读 · 0 评论 -
HDU - 5353 多校 A题 Average
这题一开始就想麻烦了,实际上只需要按照下面的规则来考虑即可:若糖果不能被平分,则直接输出“NO”求出平均数,让每个人所拥有的糖果数减去这个平均数。接下来从第一个人开始,枚举其对第二个人进行的操作,即给第二个人1颗糖,或从第二个人处取一颗糖,或者什么也不做。这样一来第二个人只能对第三个人操作(因为前面的人已经进行操作了,所以不能再操作前面的人),而且操作是唯一的,操作完成之后必须保证第二个人糖原创 2018-05-03 23:37:02 · 121 阅读 · 0 评论 -
UVa 12627 Erratic Expansion 分治法
题目链接:https://cn.vjudge.net/problem/UVA-12627一开始只能想到O(n*k)的算法,就是傻傻的一行一行的算,结果可想而知,TLE了。看了紫书看到了O(k)的算法,觉得很值得借鉴,以后肯定有不少地方能用到,就记录一下。 具体思路就是我们只须统计前 i 行的红球数量即可,我们用 f(k, i) 表示k小时后,前 i 行的红球数量,这样一来我们的答案就是 ...原创 2018-05-23 08:33:29 · 198 阅读 · 0 评论