AtCoder Regular Contest 065

C - Daydream

Score : 300300300 points

倒着来就行了,正着来会产生歧义匹配,dreamer,dreamdreamer,dreamdreamer,dream产生歧义,倒着来的话是确定的。

代码

D - Connectivity

Score : 400400400 points

用两个并查集合并起来两个图,让后开一个mapmapmap,让mp[p1[i],p2[i]]++mp[{p1[i],p2[i]}]++mp[p1[i],p2[i]]++,最后输出即可。

代码

E - Manhattan Compass

Score : 900900900 points 切比雪夫距离 + 二分

题意:

给你nnn个点对,问从aaa出发,每次走aaa到bbb的曼哈顿距离,问能走到多少个点对。

1≤n≤1e51\le n\le 1e51≤n≤1e5

思路:

首先将曼哈顿距离转换成切比雪夫距离,距离变成max(abs(xa−xb),abs(ya−yb))max(abs(x_a-x_b),abs(y_a-y_b))max(abs(xa​−xb​),abs(ya​−yb​)),显然可以排序乱搞。

将x,yx,yx,y分两次考虑,这里只考虑xxx,设a−da-da−d的曼哈顿距离是ddd。

将xxx从小到大排序,让后离散化一下,将每个点yyy坐标插到对应的xxx的位置,之后遍历xxx,找x−dx-dx−d的位置,这个时候已经保证了距离为ddd了,那么我们只需要满足abs(y−yk)<=dabs(y-y_k)<=dabs(y−yk​)<=d即可,可以在xxx这个位置存的yyy内二分找到位置算贡献。

但是这样直接写遍历所有位置去重显然是会超时的,考虑优化一下。

有两种,思路是一样的,讲一下简单的。

我们还是找到位置,但是不是在x−dx-dx−d的这个位置找yyy,而是我们将(x,y)(x,y)(x,y)存到一个pairpairpair里面,让后二分(x−d,y−d),(x−d,y+d)(x-d,y-d),(x-d,y+d)(x−d,y−d),(x−d,y+d)的位置,由于角上的位置会重复,我们算yyy的时候去掉即可。假设二分的位置是(l,r)(l,r)(l,r),那么我们给(l,r)(l,r)(l,r)打一个懒标记,代表将(l,r)(l,r)(l,r)内的点合并起来,合并是为了方便最后求答案,答案一定是与aaa连通的。

这样就可以了,注意细节即可。

代码1

代码2

F - Shuffling

Score : 900900900 points dpdpdp

题意:

给你一个串sss,依次进行mmm次操作,每次可以将[li,ri][l_i,r_i][li​,ri​]区间内的sss随意排序,问最终能生成多少不同的010101序列,保证询问的lll升序。

1≤n≤3000,1≤m≤30001\le n\le 3000,1\le m\le 30001≤n≤3000,1≤m≤3000

这是一个又难又简单的dpdpdp,考虑到lll升序,我们设dp[i][j]dp[i][j]dp[i][j]表示到了第iii个,前iii个有jjj个111,转移很简单,就是dp[i][j]+=dp[i−1][j],dp[i][j]+=dp[i−1][j−1]dp[i][j]+=dp[i-1][j],dp[i][j]+=dp[i-1][j-1]dp[i][j]+=dp[i−1][j],dp[i][j]+=dp[i−1][j−1],主要的问题是jjj的范围。

先考虑这个范围是否能构成,就是先看成010101可以随意分配,我们先求一下每个位置被覆盖的区间最远能到哪里,设为maxr[i]maxr[i]maxr[i],那么[1,maxr[i]][1,maxr[i]][1,maxr[i]]区间内的010101假设都可以分配给前iii个,这样能算出来前iii个111的个数的上限和下限,让后直接转移即可。

虽然某个状态可能是不存在的,但是不影响答案。

代码

AtCoder Regular Contest 065相关推荐

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

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

  2. 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 ...

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

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

  4. 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 ...

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

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

  6. AtCoder Regular Contest 071 D - 井井井 / ###

    题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...

  7. AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

    题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...

  8. AtCoder Regular Contest 058

    这个应该是第一场有英文的atcoder吧??不过题解却没有英文的... 从前往后慢慢做... C こだわり者いろはちゃん / Iroha's Obsession 数据范围这么小,直接暴力 #inclu ...

  9. AtCoder Regular Contest 120 C - Swaps 2 线段树模拟

    传送门 文章目录 题意: 思路: 题意: 给你两个序列a,ba,ba,b,每次可以执行一个操作:将a[i]a[i]a[i]与a[i+1]a[i+1]a[i+1]交换,且让交换后的a[i]+1,a[i+ ...

最新文章

  1. jquery-ajax请求:超时设置,增加 loading 提升体验
  2. 图解命令行手动编译构建一个win32汇编程序
  3. Mac下安装的MySQL root账号无法登陆用户解决
  4. epoll哪些触发模式_网络编程:epoll
  5. 怎么求平均数_EXCEL怎么求企业连续几年业绩的平均增长率
  6. Eclipse和Tomcat绑定并且将上传资源到Tomcat上
  7. 如何使用消息队列,Spring Boot和Kubernetes扩展微服务
  8. 关于学习Python的一些心得
  9. ftp lftp 客户端设置_网络客户端工具—ftp、lftp、wget
  10. Linux和window写python,搭建Python环境(window和linux)
  11. rapidsvn 安装步骤
  12. C# 文件上传 制作水印
  13. Windows更新错误代码0x8007000e
  14. 我爱赚钱吧:你知道自己建网站可以赚钱吗?①
  15. centos7升级GLIBC版本
  16. Dell 灵越7370 装机过程遇到硬盘枷锁 bitlocker锁解决方法
  17. Django适配达梦数据库
  18. llvm clang esl 一些常用指令
  19. 教你从零开始成为优秀交互设计师(四):工具资源
  20. Pdf格式怎么转化为word?这些软件堪称神器,却不为大众所知?

热门文章

  1. mysql申请审核系统_Mysql审核工具archery
  2. php反转数字_【PHP】php实现数组反转
  3. python基础ppt_Python基础课件.ppt
  4. 快要“成精”的波士顿机械狗,开始卖了,价格不贵准备搞一只
  5. 人体的血管连起来竟能绕地球两圈!?| 今日最佳
  6. 服务器文件每天备份重新命名,定时备份服务器文件至本地电脑
  7. python根据地址查看变量名_tensorflow创建变量以及根据名称查找变量
  8. python中数据用折线图表示_用python处理文本数据
  9. java接口课程_用java定义一个接口,用于查询课程
  10. php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...