03 2020 档案
摘要:斐波那契数列 "PREV 29" 这题的难度很大,主要是题目中的要求数据量太大,1^18,这不管是运行时间会超时,而且累加的话也会超出long型的大小。 我采用多种方法来求解这道题目,逐步优化算法。 1. 基础解法:直接暴力求解斐波那契数列(得分:40) 我们深入考虑斐波那契的性质: 1.1 f(x
阅读全文
摘要:分巧克力 "PREV 37" 可以使用暴力来求解,但是1^10显然运行时间会超出1s的时间限制。 这里可以通过二分查找的方法来优化这次搜索。
阅读全文
摘要:包子凑数 "PREV 36" 这题首先需要知道不定方程的一些性质,即:ax+by=c的解的情况: 如果a,b互质,则一定有解且由无穷多个。若限制x,y =0,则ax+by=c有可能有负数解,即存在有限个c使得方程无正数解。且存在max{c|使方程无解的c}=a b a b; 如果a,b不互质,则可能
阅读全文
摘要:正则表达式 "PREV 35" 首先看到题目的要求是求解最长的字符串,一看到最长应该想到一般是使用深度优先搜索和动态规划。 本题中求解的是正则表达式,因为符号只有四种,而且括号可以嵌套,所以我们可以从递归的角度求解最长的长度。 当遇到的字符是左括号时,这个时候应该继续递归以等待右括号的出现,当遇到的
阅读全文
摘要:油漆面积 PREV-38 解法一:使用线段树和扫描线模板求解: 一个比较好的关于扫描线和线段树的总结模板:原文链接:https://blog.csdn.net/tomorrowtodie/article/details/52048323 问题:给出若干个矩形,(给的是矩形左上角和右下角坐标),求最后
阅读全文
摘要:分考场 "PREV 53" 这题的解决方法使用dfs,因为数据很小,才100. 每次当前的人人是否可以和前面的组队,设置两个数组group和fri
阅读全文
摘要:合根植物 "PREV 54" 这题主要考察的也是并查集。 直接应用并查集的模板就可以了。
阅读全文
摘要:小计算器 "PREV 55" 这题我使用的是java来求解,因为这题需要求解各种进制的转换。可以利用valueOf和toString来转换各种进制。 值得注意的是:这题有很多细节,因为有的命令之间不是必然连续的,所以需要处理。 我一开始总是运行错误,后来发现这是漏写了一个flag的情况。
阅读全文