ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

20201003 质数序列,种花,挺进

2021-05-02 17:03:02  阅读:196  来源: 互联网

标签:20201003 val 题解 质数 偶数 考场 枚举 种花


A.质数序列

考场

手玩样例发现 \(2+4\) 非法是因为 \(6\) 为偶数,即和为偶数(奇+奇or偶+偶)的情况的不行,所以答案有且仅有2个且为一奇一偶。

数据很大,考虑优化时间:

  1. 两个相同的数非法,故可将奇偶数分别排序去重
  2. 从小到大枚举两个数,若当前和已小于当前解则break
  3. 线性筛(不熟练,考场上没有打)(考后lgh说他写了,但并没有快多少)

大约用时40min,可以接受。

期望

\(O(n^2\sqrt a)\)

100pts

题解

对于两个数的情况,考场思路无误。

但可能有多个 \(1\)(\(1+1=2,2\in prime\))。且如果存在一个偶数,该数+1也为质数,则该数与所有1构成合法解。

总结

  • 手玩样例有助于发现题目性质
  • 分类全面,考场想到“偶数非质数”,忘记了质数判断中1的特殊情况

B. 种花

考场

感觉是DP。

“ 两株花不能种在相邻的位置 ”与没有上司的舞会类似,很快列出状态 \(f[i][j][0/1]\) 表示 \(i\) 位置种 \(j\) 盆花且 \(i\) 种/不种的最大值,转移:\(f[i][j][0] = max(f[i-1][j][0],f[i-1][j][1]), f[i][j][1]=f[i-1][j-1][0]+a[i];\)。

环形处理很套路(和蓝书上的例题一样):强行令 \(n\) 放/不放,改变 \(f[1]\) 的初值DP两次。

但显然时空复杂度无法接受,想了半天发现空间类似背包,\(f[i]\) 只与 \(f[i-1]\) 有关,可以压掉一维(虽然没写)。时间不会优化。

思路比较简单,但环形处理后的结束状态不清楚,浪费了不少之间,再加上思考优化,一共用了将近2h,导致T3暴力没时间写了。

期望

\(O(n^2)\)

50pts

题解

可反悔的贪心。

先将每个值放入大根堆,取出时标记两边为不可选,同时将“左右”的值-当前值入堆,双向链表维护左右。

若先选出的位置 \(i\) 不属于最优解,则取出 \(val[pre[i]]+val[nxt[i]]-val[i]\) 时相当于把 \(i\) 拔出来,再种上两边的。

循环 \(m\) 次结束。(若有反悔,设已种 \(k\) 棵,相当于将原来的拔起(\(k-1\))再种下旁边的两颗(\(k-1+2=k+1\))。)

C. 挺进

考场

完全不会。。。

暴力很好想:枚举断边,从两个端点开始dfs找最长链取max。

由于T2耗时太多&机子坏掉重敲了一次,看到T3时就剩不到1h了。最终没有写完。最后20min准备再看一下T1T2结果被机子制裁了。到现在(2020/10/4 18:39)代码还取不出来。。。

题解

枚举断边,RMQ求LCA,线段树维护直径

标签:20201003,val,题解,质数,偶数,考场,枚举,种花
来源: https://www.cnblogs.com/9Rings/p/14725932.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有