模拟CF650,ABC三题,RK90

Codeforces 650 A

思路:首先看式子

\(\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}=|x_i-x_j|+|y_i-y_j|\)

的唯一可行的情况是\(x_i=x_j\)或\(y_i=y_j\)。(因为两边之和大于第三边

所以就知道怎么做了。

  • 第一种方法:我们维护三个\(map\),分别存行、列、坐标是\(\dots\)的时候已经有多少个节点。
    然后就可以边读边算,读到\((x,y)\)这个坐标的时候把\(ans\)变成
    \(row_x+col_y-cnt_{(x,y)}\)就可以了。
  • 第二种方法:我们先读完所有的坐标,然后存同一个行、列、坐标各有多少个。
    然后枚举每一个不同的行、列、坐标,算出
    \(\sum C_{row_x}^2+C_{col_y}^2-C_{cnt_{(x,y)}}^2\)即可。
Codeforces 650 B

思路:二分/two pointers。

我只会二分了。。。

首先确定我们肯定是向左翻几个,再向右翻几个。(或者相反

那么我们就枚举向左翻到了哪一个(注意复制一遍原数组

然后二分右边到了多少个,用前缀和算一下代价。

然后two pointers看起来没多少人写???

注意代价要开long long。

Codeforces 650 C

思路:首先我们把每一行排序。

肯定现在相同的数在“压缩”过后也是相同的。

那就扔到并查集里面当做是一个节点。

然后如果\(x\)小于\(y\)就从\(x\)所在并查集的代表元向\(y\)所在的代表元连边。

这说明\(y\)的压缩后的值肯定大于\(x\)压缩后的值。

但这样边数是\(O(n^2)\)的。

注意到我们这样连边等价于我们只连同一行内大小连续的数的边。

这样就很可做了。直接一把\(bfs\)标记在\(dag\)上下推即可。

还可以直接拓扑排序后一个小小的\(dp\)。

其实没有必要正经地“拓扑排序”,只需要把所有的格子按照数的大小排就可以了。

因为从小的到大的连边啊。。。

那样就可以一个main函数干到底了(雾

【Codeforces Round 650】Codeforces #334 (Div. 1)的更多相关文章

  1. 【Codeforces Round 1137】Codeforces #545 (Div. 1)

    Codeforces Round 1137 这场比赛做了\(A\).\(B\),排名\(376\). 主要是\(A\)题做的时间又长又交了两次\(wa4\)的. 这两次错误的提交是因为我第一开始想的求 ...

  2. 【Codeforces Round 1114】Codeforces #538 (Div. 2)

    Codeforces Round 1114 这场比赛做了\(A\).\(C\).\(D\).\(E\),排名\(134\). \(B\)题做了很长时间,好不容易最后一分钟\(Pretest\ Pass ...

  3. 【Codeforces Round 1110】Codeforces Global Round 1

    Codeforces Round 1110 这场比赛只做了\(A\).\(B\).\(C\),排名\(905\),不好. 主要的问题在\(D\)题上,有\(505\)人做出,但我没做出来. 考虑的时候 ...

  4. 【Codeforces Round 464】Codeforces #265 (Div. 1)

    模拟RD265 ABC三题,Rank58 Codeforces 464 A 题意:给定一个字符串,求比这个字符串字典序大并且和它长度相等的第一个不含有长度大于等于2的回文串的字符串. 思路:首先我们枚 ...

  5. Codeforces Round #539&#542&#543&#545 (Div. 1) 简要题解

    Codeforces Round #539 (Div. 1) A. Sasha and a Bit of Relax description 给一个序列\(a_i\),求有多少长度为偶数的区间\([l ...

  6. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 题解

    Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 题目链接:https://codeforces.com/contest/1130 ...

  7. 【Codeforces Round 1129】Alex Lopashev Thanks-Round (Div. 1)

    Codeforces Round 1129 这场模拟比赛做了\(A1\).\(A2\).\(B\).\(C\),\(Div.1\)排名40. \(A\)题是道贪心,可以考虑每一个站点是分开来的,把目的 ...

  8. 【cf比赛记录】Codeforces Round #601 (Div. 2)

    Codeforces Round #601 (Div. 2) ---- 比赛传送门 周二晚因为身体不适鸽了,补题补题 A // http://codeforces.com/contest/1255/p ...

  9. 【cf比赛记录】Codeforces Round #600 (Div. 2)

    Codeforces Round #600 (Div. 2) ---- 比赛传送门 昨晚成绩还好,AC A,B题,还能上分(到底有多菜) 补了C.D题,因为昨晚对C.D题已经有想法了,所以补起题来也快 ...

随机推荐

  1. MachineLN博客目录

    MachineLN博客目录 https://blog.csdn.net/u014365862/article/details/78422372 本文为博主原创文章,未经博主允许不得转载.有问题可以加微 ...

  2. Ubuntu、deepin 安装 mysql

    在 Ubuntu 和 deepin 安装 mysql 是很简单的,只需要几条简单的命令即可   1. sudo apt-get install mysql-server 2. sudo apt-get ...

  3. android 圆角背景

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...

  4. mac date命令详解

    Mac下的date命令是BSD(Berkeley Software Distribution)系的,Linux下date命令是GNU(GNU's Not Unix)系,二者用法有一些区别. BSD并不 ...

  5. Linux系统网络文件配置

    /etc  一.修改配置文档(需要重启网络配置,永远生效) 1.修改IP地址[MariaDB@db1]$ vi /etc/sysconfig/network-scripts/ifcfg-eth0DEV ...

  6. CentOS 6.5 搭建 .NET 环境, Mono 5.16.0 + Jexus 5.8

    最近有这样一个打算,就是准备把以前的有一个.NET 网站部署在Linux 下面,正好试试 .NET 跨平台的功能,为后续研究 .netCore 方向准备. 搭建环境: CentOS 6.5 + Mon ...

  7. 打印窗口时,一张A4纸单位为缇的大小

    一张A4长297毫米也就是16839.9twip宽210毫米就是11907twip

  8. lua table排序报错与解决

    lua table排序 table的sort函数 比如按照大小进行排序,下面这种写法在某些情况下可能会排序错误,甚至报invalid order function for sorting table. ...

  9. 安装Jenkins getting started卡住

    前言 jenkins版本:2.32.3 操作系统:windows 卡住信息 如果在安装jenkins时卡在getting startted的界面,如下所示 解决方法 1.打开 运行  输入 servi ...

  10. win10优化开机进程

    一种比杀毒软件都优化还给力的方法,还在为开机几百个程序启动发愁嘛.一般电脑在重装系统之后的开机进程在50左右,而随着安装程序的增多开机进程将越来越多.下面介绍怎么优化win10进程的方法 之后重启电脑 ...