2021-2022 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred)

C. Connect the Points

本场比赛的小水题。

题目大意:给定平面上3个点,要求给出至多100条横或竖的线段使3个点连通。

本题最大的难点在于理解题意:我一开始以为这道题的意思是要用这些线段构造一条简单路径把三个点连起来,然后WA飞了;后来才知道不一定非得是简单路径,只要连通就行了,然后这题的做法就很trivial了:假设x坐标从小到大排序为(x1,y1),(x2,y2),(x3,y3),那么三条线段就是(x1,y1,x2,y1),(x2, min{y1,y2,y3}, x2, max{y1,y2,y3} ),(x2,y3,x3,y3)。

D. Deletive Editing

本场比赛的大水题。

题目大意:给一个字符串S,一个目标串T,一次删除操作为:指定一个字母,删除字符串中从左到右数的第一个这个字母(如"DETERMINED",进行一次删除’E’的操作后变为"DTERMINED");问S经过有限次删除操作之后能否得到T。

考虑得不到T的情况:首先如果T中出现了S没有出现过的字母的话肯定是得不到T的;除此之外还有一种可能:S=“ABA”,T=“AB”,这时也得不到T,因为我们删不掉B后面那个A。

有很多乱搞的方法都能判断出这两种得不到T的情况,我的做法类似于双指针:用一个计数数组cntr[26]记录每个字母的出现次数,i最初位于S的最右端,j最初位于T的最右端。如果S[i]!=T[j],那么cntr[S[i]-‘A’]++,i–;如果S[i]==T[j],此时我们需要检查cntr[S[i]-‘A’]是否为0;如果不为0,说明出现了"挡在另一个字母后面的删不掉的相同字母",直接false;否则说明这个匹配可以实现,i–,j–;最终退出的时候如果j没有完全退出T,也就是T没有完成匹配,那也是false。

后来又口胡了一个更接近此题本质的写法:每个T中的字符都找到S中从右往左数的第一个相同字符的位置,如果对应位置出现了逆序对则说明得不到T。

I

交互题

一张n*m的地图里有两个宝藏,有如下两种操作:

  1. SCAN x y 系统返回(x, y)到两个宝藏的曼哈顿距离和

  2. DIG x y 系统返回(x, y)处是否有宝藏

要求在7次操作内找到2个宝藏

设宝藏四个坐标为x1, x2, y1, y2

查询(1, 1) 设返回值为a,有a = (x1+x2)+(y1+y2)-4

查询(n, 1) 返回b = 2m-(x1+x2)+(y1+y2)-2

推出 x1+x2 = (a-b+2+2m)/2

y1+y2 = a-(x1+x2)+4

查询((x1+x2)/2, 1) 返回 c = x1-x2+y1+y2-2

查询(1, (y1+y2)/2) 返回 d = x1+x2-2+y1-y2

推出 x1 = ((x1+x2)+c-(y1+y2)+2)/2 y1 = ((y1+y2)+d-(x1+x2)+2)/2

于是x1x2y1y2已知

先挖掘x1y1 若没有宝藏则宝藏为x1y2 x2y1

否则挖掘 x2y1

PS :珍爱生命,交互题远离stdio, 尽量用iostream(((

J. Job Lookup

题目大意:给定一个n*n的矩阵,要求构造一棵包含从1到n的所有数字的二叉搜索树,设i和j在二叉搜索树上的距离为dij,要求最小化 ∑ i = 1 n ∑ j = 1 n c ij d ij \sum_{i = 1}^{n}{\sum_{j = 1}^{n}{c_{\text{ij}}d_{\text{ij}}}} ∑i=1n​∑j=1n​cij​dij​,输出二叉搜索树的构造方案(即从1到n每个节点连接的父亲,根节点的父亲为0)。n的规模是200。

一个容易想到的想法是dp[i][j]表示[i,j]这个区间内构造出的二叉搜索树的最小花费,然后很容易想到这样定义的dp是不具有最优子结构的,假了。

然后不太容易想到一个更类似于贪心的想法:dp[i][j]表示[i,j]"向区间外连出去"的最小花费,这是具有最优子结构的,而且转移也比较好想:dp[i][j]=dp[i][k-1]+dp[k+1][j]+sum(1,i-1,I,j)+sum(j+1,n,I,j),其中sum(L,R,l,r)表示c从(L,l)到(R,r)的子矩阵的二维区间和(容易想到这个子矩阵的意义是[L,R]到[l,r]中每一个数互连的花费),这个转移的意义就是[i,j]这个区间构成的二叉搜索树的子树必然会以某个数为根,然后一旦添加了这个根,虽然我们还不知道这棵树的具体形态,但[i,j]这个区间内的所有数向区间外的所有数互连的代价必然都多加了一倍(因为向k走是多走了1个距离),最后就能最小化代价了。

另外这题要求我们输出方案,所以我们还需要记录对于每一个区间[i,j],转移的最优的k,记为root[i][j],递归得到方案即可(看代码就清楚了)。

L

给一张有向图和一个起点s,要求找一个终点t(不与s重叠),使得s到t有两条没有公共点的简单路径(s,t两点除外)

以s的所有儿子为根进行DFS,如果两棵不同根的BFS树有交集,那么就找到了一个t

2021-2022 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred)相关推荐

  1. 2020-2021 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred)

    D. Digits 题意 给定一个长度为n的数组a和一个k,求数组中最大的元素乘积的尾数为k (每个元素只能用一次),输出方案数 1<= ai <= 10001 <= n <= ...

  2. 2018-2019 ICPC, NEERC, Northern Eurasia Finals K. King Kog's Reception 线段树

    K. King Kog's Reception 题意:有q个操作,第 i 次操作若为 + t d,表示在 t 这个时刻插入一个耗时为 d 的骑士,若 -  i 表示删除第 i 个操作,若 ? t 表示 ...

  3. Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) E. Array Game

    Array Game Link 题目大意: A l i c e Alice Alice 与 B o b Bob Bob ,从一个长度为 n n n 的数组中轮流从数组首部或尾部取数, A l i c ...

  4. COMPFEST 14 - Preliminary Online Mirror (Unrated, ICPC Rules, Teams Preferred) H. Hot Black Hot Whit

    翻译: 有一天,你会成为查内克医生的助理.查内克医生给你的第一个任务就是保管好他的魔法宝石. 查内克博士有

  5. Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) J. Robot Factor

    翻译: 你已经收到了Bubble机器人的数据.你知道你的任务是制造工厂设施,但在你开始之前,你需要知道工厂有多大,有多少房间.当你查看数据时,你会发现你有这个结构的尺寸,它是矩形的:N x M. 然后 ...

  6. COMPFEST 14 - Preliminary Online Mirror (Unrated, ICPC Rules, Teams Preferred) A、B、G、H、M(数学、构造、图论)

    A. Accumulation of Dominoes 签到,数砖块 #include<bits/stdc++.h> #define int long long using namespa ...

  7. Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) J. Robot Factory

    传送门 题意: 给你一个矩阵,矩阵中的每一个数的二进制串可以表示出该位置周围的围墙信息,让你求出所有的房间大小. 思路: 建图,搜索,一气呵成. #include<iostream> #i ...

  8. 2021—2022学年面向中小学生的全国性竞赛活动名单

    2021-2022学年面向中小学生的 全国性竞赛活动名单 序号 竞赛名称 主办单位 竞赛面向学段 自然科学素养类 1 第五届全国青少年人工智能创新挑战赛 中国少年儿童发展服务中心 小学.初中.高中.中 ...

  9. 李宏毅2021/2022春机器学习课程(机器学习基本概念简介)

    (强推)李宏毅2021/2022春机器学习课程_哔哩哔哩_bilibili 目录 1.机器学习是什么? 2.机器学习任务 2.1 regression回归问题 2.2 classification分类 ...

最新文章

  1. java cmd javac java
  2. SQLSever 存储过程创建
  3. 【城市沙龙】LiveVideoStack Meet|西安:人文历史遇到流媒体算法
  4. 小而全的Pandas使用案例
  5. 如何得到当前application server的host name和port number
  6. 酒桌上的规矩,社会的潜规则
  7. python打包exe黑框一闪而过,解决pyinstaller打包exe文件出现命令窗口一闪而过的问题...
  8. which与whereis区别
  9. 力邀安卓为鸿蒙效力,2019 十大语文差错
  10. JavaWeb项目服务端获取客户端的IP地址
  11. 201约花鸟画 考c语言试题,全国计算机二级C语言上机100题..doc
  12. webstorm+node之debug
  13. 架构设计(5)-架构愿景分析
  14. 会议安排(经典贪心算法例题)
  15. 微信小程序:二维码生成器,输入信息生成二维码,调用相机扫描二维码,获取信息
  16. Tensorflow2-卷积神经网络实现图片分类
  17. 智能验证码 阿里云人机验证的使用(PHP)
  18. STM32人脸识别系统设计(程序代码+论文)
  19. 《伟大的小细节:互联网产品设计中的微创新思维》——3.6 基于当前场景的前因后果推演...
  20. 错误方法修改用户名后,开机提示无法登录到你的账户的正确解决方法

热门文章

  1. Nginx重定向与反向代理
  2. 一入递归深似海:二叉树基础
  3. 实现Python构造函数重载效果
  4. 不涉及代码,来聊聊用户画像
  5. 以下css属性可以用来画圆的是,css3 如何画圆
  6. python实现静态变量
  7. 验证UDP端口是否开放
  8. 视频教程-Python全栈工程师特训班第十一期-直播回放-Python
  9. Vue插槽的理解和使用
  10. vue从后台获取新数据后刷新_vue传参页面刷新数据丢失问题