实际上这场比赛已经过去一个月了,但是我还是想把我的题解放到博客里面来。
前一次选题被大佬喷太毒瘤,所以这次就成了送分场。
要不他们就不会有心情做我接下来两场的题目了。

天天爱种菜 题解

前言

tag:最小生成树?
原题:[CSP-S JX 2019 T3]网格图

算法1:64分

容易发现题目是在让你求最小生成树。
所以你爱怎么暴力怎么来:)
复杂度O(nmlog⁡nm)O(nm\log{nm})O(nmlognm)。

算法2:100分

考虑一整行/一整列的边排序依次加入图中,根据破圈法原理,你会发现你这次加的边最少时当前这一整行/一整列的边的数量减去你在另一方向上已经加入的行数/列数。因此直接做就行了。
注意第一个加入的行和列需要特判,不过大样例已经把这个细节卡掉了,大家应该都会注意到这一点。
复杂度:O(n+mlog⁡n+m)O(n+m\log{n+m})O(n+mlogn+m)

制胡串问题 题解

前言

tag:hash+二分/SA/SAM/后缀树
原题:[NOI 2016 day1]优秀的拆分

算法1:25-30分

暴力check一个子串是否满足AAAAAA的形式,BBBBBB同理,然后在中间点乘起来即可。
复杂度:O(n3)O(n^3)O(n3)
upd:很遗憾的是,做这题的数据有一点水,导致一些同学O(n3)O(n^3)O(n3)开O2也得了60分。

算法2:60分

考虑对check AAAAAA的形式做一些优化,这里提供四种做法:
1.直接使用SAM/SA/后缀树。
2.考虑lcp(i,j)表示以i,ji,ji,j开始的lcp长度。这都是老套路了
3.暴力建trie树。
4.当然还可以用标算做法RK hash。
复杂度:O(n2)O(n^2)O(n2)

算法3:100分

正解还是比较困难的。
其实我们会发现我们不需要暴力枚举两个位置之后再去找lcp。可以发现的是,如果我们不仅从两个位置往后找最长匹配,还往两个位置向前找最长匹配,我们可以找到包含这两个位置的所有AAAAAA的形式
但是我们还需要知道这个字符串的长度LLL,因为我们需要将两个字符串AAAAAA,BBBBBB拼起来,我们需要知道它的结束位置。
因此我们先枚举长度LLL,确定位置s[0],s[L],s[2L],...s[0],s[L],s[2L],...s[0],s[L],s[2L],...,让后我们对相邻两个位置字母相同的都做一遍这个算法。我们可以通过RK hash+二分来做到这一点。然后我们就得到了每个包含两个点且长度为LLL的字符串的起始位置的区间。
接下来就简单了,考虑对起始位置区间和终止位置区间差分前缀和一下即可。这是字符串问题的常见套路。

复杂度:O((n+n/2+n/3+...+n/n)log⁡n)=O(nlog⁡2n)O((n+n/2+n/3+...+n/n)\log n)=O(n\log^2{n})O((n+n/2+n/3+...+n/n)logn)=O(nlog2n)
当然你用SAM/SA会少一个log。

迷宫 题解

搬题人:Panda_hu

前言

tag:提交答案-构造最优化方案问题
原题:我也不知道我从哪里翻出来的:)然后我还瞎改了一下。
本来想搬旷野大计算的,但是害怕被喷死。
这题算是提交答案中非常简单的一道题目了,希望大家玩的开心。

子任务1

手玩即可。
如果你懒得自己走迷宫写个暴力也行:)
期望得分:101010。

子任务2

感觉地图很大?
但是点数很少…仔细看一下数据你会发现全在8×88\times 88×8的矩阵以内。因此我们同样手玩/写暴力。
期望得分:10+2010+2010+20。

乱搞1

注意到只要你的方案合法,你就至少能够得到10%的分数。
因此每个答案先交个起点上去:)
期望得分:1+2+2+2+31+2+2+2+31+2+2+2+3

乱搞2

这种题目明显可以用随机算法来做啊:)
试着随机游走100~100 100次取最优解交上去。
期望的得分:我没试过。

乱搞3

这题出的比较失败的关键原因就在于如果你dfs按照类似上左下右这样的顺序跑通常都能够得到满分或接近满分的成绩。不过没关系,出题人就是想把这题的分送给大家的:)

你们的乱搞

??

子任务3

观察数据,你会发现数据呈现一种横竖道路交错的形式。
如果你用代码检验一下,你会发现这个数据的道路没有环。

因此dfs一下即可。
期望得分:10+20+2010+20+2010+20+20

子任务4

接下来的数据地图很小,你可以用一个程序把地图可视化下来观察。
这个子任务的地图是这样的:

我们可以这样走:

然后你写一个代码模拟一下即可。
期望得分:10+20+20+2010+20+20+2010+20+20+20

子任务5

大致地图:

显然地图被分为了几个小矩阵,每个矩阵的行数都是奇数,列数不定。
如果列数为偶数:

如果列数为奇数:

但是我们需要特判列数为1的情况,我们不能够进入这些矩阵,但是如果是在终点位置的列数为1的矩阵是可以进入的。
期望得分:10+20+20+20+30=10010+20+20+20+30=10010+20+20+20+30=100

总结

大家一定AK地很开心:)

[赛后总结]G2022 Regular Contest 13总结相关推荐

  1. [赛后总结]G2022 Regular Contest 04总结

    这套题我组的,于是来发一下题解. 前言 由于要求出NOIP难度的题目(还是我听错要求了?),题目难度总体偏低-结果我出得比NOIP还简单- 按照CSP2019 day1的难度来的-T1是那种看完题目就 ...

  2. [赛后总结]G2022 Regular Contest 02总结

    由于某人的某个不过脑袋的提议,现在我们开始常规赛互测了- 常规赛01很简单,没有AK是我的问题,就不打算写了. 赛时 T1 我的组合计数果然还是一样的烂-这一道题目就花了我将近一个小时的时间- 首先我 ...

  3. AtCoder题解——AtCoder Regular Contest 107——B - Quadruple

    题目相关 题目链接 AtCoder Regular Contest 107 B 题,https://atcoder.jp/contests/arc107/tasks/arc107_b. Problem ...

  4. AtCoder Regular Contest 065

    AtCoder Regular Contest 065 C - Daydream Score : 300300300 points 倒着来就行了,正着来会产生歧义匹配,dreamer,dreamdre ...

  5. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  6. AtCoder Regular Contest 100 E - Or Plus Max Sos dp

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为2n2^n2n的数组,让你对于所有的1≤k≤2n−11\le k\le 2^n-11≤k≤2n−1求最大的ai+aj,0≤i<j≤2n−1 ...

  7. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

  8. NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

    文章目录 A - 2nd Greatest Distance B - RGB Matching C - Odd Even Sort D - 1 or 2 E - Directed Tree F - L ...

  9. QLU Regular Contest 003 D Youmu with beautiful dolls queue

    原题链接:QLU Regular Contest 003 D题的链接 题意: 有 N N N个数的数组, M M M个操作如下: P O P B A C K POP \ BACK POP BACK 数 ...

最新文章

  1. 锤子科技犯过的构图错误你一定也犯过
  2. cURL模拟POST方式提交数据
  3. C#在Linux+Mono环境中使用微信支付证书
  4. mysql的学习要点_MySQL中的联合索引的学习要点总结
  5. 使用Speech SDK 5.1文字转音频
  6. elasticsearch-head 集群健康值: 未连接
  7. Tkinter注册界面判断用户名是否唯一的合法性验证(Python3.7)
  8. html设置桌面背景win7,怎么让电脑桌面背景动起来 win7设置动态背景桌面的方法...
  9. Oracle批量导出Hive建表语句
  10. 计算机网络管理员二级考试题,计算机网络管理员(二级)操作鉴定试题A
  11. 04、switch-case分支结构、循环结构
  12. 黑马程序员机器学习Day2学习笔记
  13. umijs介绍及基本用法、配置式路由、约定式路由、路由传参等
  14. javascript+html获取外汇报价并实时更新
  15. ieee 802.1
  16. 机器人学笔记之——操作臂逆运动学:代数解法和几何解法
  17. R语言添加Python模块错误的解决方法
  18. python 头条_python-selenium登陆今日头条
  19. 行政边界矢量数据shp/kml/json/csv(省、市、区、县、乡镇)
  20. 【总结】1056- 如何编写前端设计文档?

热门文章

  1. X射线电子能谱原理及软件图谱处理
  2. 制作本地yum源的详细教程
  3. 印刷行业ERP设计要点
  4. 【机器学习】DS的基础学习笔记1:线性回归
  5. 今天看到“勃客郑渊洁”,是我的偶像
  6. 有名的英文技术网站(包含C#的)
  7. NRF52832在OTA基础上,同时支持UART升级(自定义串口协议、可远程升级)
  8. 简单模拟-----PAT乙级1001 害死人不偿命的(3n+1)猜想
  9. [文献阅读]An Efficient Evolutionary Algorithm for Subset Selection with General Cost Constraints(Bian C)
  10. IntelliJ IDEA使用-图(Diagrams)的使用