实在是打击人信心的一场比赛啊……一不注意就掉了 50+ 分,rating 没了啊/ll/dk/wq/kk

A

Weak pretest!!!!!11 /fn/fn/fn

一个很显然的注意点是在交换前后,对于每一种数 \(c\) 而言,奇数位上的 \(c\) 中朝右的人数的奇偶性不会发生变化,偶数位上的 \(c\) 中朝右的人数的奇偶性也不会发生变化,因此我们只需检验排序前后奇偶位上数的组成是否相同即可,时间复杂度 \(Tn\log n\)。

现场降智选手,指我无疑了

B

首先根据手玩样例法可以发现 \(\dbinom{13}{5}=\dbinom{13}{8}=1287,\dbinom{13}{4}=\dbinom{13}{9}=715\),因此考虑 \(5,8\),以及后面的 \(4,9\) 是个什么东西,再通过瞪眼法可以发现 \(8\) 恰好是样例中 \(0\) 的个数,\(5\) 恰好是每个全 \(1\) 段中 \(1\) 的个数除以二下取整,于是写个组合数求一求即可。

证明?别问我,我什么也不知道

C

首先记目前没有确定是否被划分进集合的排列的集合为 \(S\),那么我们枚举 \(S\) 中每一个排列 \(p\),如果排列 \(p\) 中存在一个位置满足 \(S\) 中没有其他排列和它值相同,那么根据题目的性质显然它只能在前 \(n\) 个排列中,与此同时我们把与它有重复值的排列设为“不在前 \(n\) 个排列中”并从 \(S\) 中删去;否则根据抽屉原理,每个数在 \(S\) 对应的列中必须恰好出现了两次,这也就意味着那些在原拉丁方阵中的排列和不在原拉丁方阵中的排列是平分秋色的,都能和已经选出的排列集合组成拉丁方阵,此时我们需要将答案乘以 \(2\),并随便选择一个排列设为在拉丁方阵中,并将与其存在重复值的排列从 \(S\) 中删除,重复以下步骤直到选出 \(n\) 个排列为止即可。

时间复杂度 \(n^3\)。

D

我们考虑求出每个排列所有时刻坐标的和 \(s1_i\) 以及平方和 \(s2_i\),记 \(S=\sum\limits_{i=1}^mv_i,T=\sum\limits_{i=1}^mv_i^2\),那么如果没有错误元素,一定有 \(s1_{i+1}-s1_i=S\),由此可以确定错误元素所在的时刻 \(p\),而根据第 \(j\) 个人 \(i\) 时刻的坐标为 \(x_{j}+i·v_j\) 可知,对于三个连续的时刻 \(t-1,t,t+1\),有

\[\begin{cases}
\sum\limits_{j=1}^m(x_j+(t-1)·v_j)^2=s2_{t-1}\\
\sum\limits_{j=1}^m(x_j+t·v_j)^2=s2_{t}\\
\sum\limits_{j=1}^m(x_j+(t+1)·v_j)^2=s2_{t+1}
\end{cases}
\]

一式加三式减两倍的二式,得

\[T=\dfrac{s2_{t-1}+s2_{t+1}-2s2_t}{2}
\]

由此可以确定第 \(i\) 行所有坐标的和及平方和,这样我们枚举修改的元素是哪个,根据第 \(i\) 行坐标的和求出被改前的元素,并 check 平方和是否满足要求即可。

时间复杂度 \(nm\)。

Codeforces Round #732 (Div.1) 题解的更多相关文章

  1. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  2. Codeforces Round #608 (Div. 2) 题解

    目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...

  3. Codeforces Round #525 (Div. 2)题解

    Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...

  4. Codeforces Round #528 (Div. 2)题解

    Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...

  5. Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F

    Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...

  6. Codeforces Round #677 (Div. 3) 题解

    Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...

  7. Codeforces Round #665 (Div. 2) 题解

    Codeforces Round #665 (Div. 2) 题解 写得有点晚了,估计都官方题解看完切掉了,没人看我的了qaq. 目录 Codeforces Round #665 (Div. 2) 题 ...

  8. Codeforces Round #160 (Div. 1) 题解【ABCD】

    Codeforces Round #160 (Div. 1) A - Maxim and Discounts 题意 给你n个折扣,m个物品,每个折扣都可以使用无限次,每次你使用第i个折扣的时候,你必须 ...

  9. Codeforces Round #383 (Div. 2) 题解【ABCDE】

    Codeforces Round #383 (Div. 2) A. Arpa's hard exam and Mehrdad's naive cheat 题意 求1378^n mod 10 题解 直接 ...

随机推荐

  1. 【UE4 C++ 基础知识】<7> 容器——TSet

    概述 TSet是一种快速容器类,(通常)用于在排序不重要的情况下存储唯一元素. TSet 类似于 TMap 和 TMultiMap,但有一个重要区别:TSet 是通过对元素求值的可覆盖函数,使用数据值 ...

  2. Java序列元素替换

    1.数组 直接赋值. 2.String (1) String是不可变的,只能将新的字符串重新赋给String变量.可使用substring进行拼接: String s="hello" ...

  3. nssm.exe使用方法

    nssm no-sucking service manager 1. 安装服务命令 nssm install <servicename> nssm install <servicen ...

  4. linux下的IO模型---学习笔记

    1.linux文件系统和缓存 文件系统接口 文件系统-一种把数据组织成文件和目录的存储方式,提供了基于文件的存取接口,并通过文件权限控制访问. 存储层次 文件系统缓存 主存(通常时DRAM)的一块区域 ...

  5. Unity的Deferred Shading

    什么是Deferred Shading Unity自身除了支持前向渲染之外,还支持延迟渲染.Unity的rendering path可以通过Edit/Project Settings中的Graphic ...

  6. DC综合与Tcl语法结构概述

    转载:https://www.cnblogs.com/IClearner/p/6617207.html 1.逻辑综合的概述 synthesis = translation + logic optimi ...

  7. hdu 5178 pairs(BC第一题,,方法不止一种,,我用lower_bound那种。。。)

    题意: X坐标上有n个数.JOHN想知道有多少对数满足:x[a]-x[b]<=k(题意给)[a<b] 思路: 额,,,直接看代码吧,,,, 代码: int T,n,k; int x[100 ...

  8. hdu 1159 Common Subsequence(最长公共子序列,DP)

    题意: 两个字符串,判断最长公共子序列的长度. 思路: 直接看代码,,注意边界处理 代码: char s1[505], s2[505]; int dp[505][505]; int main(){ w ...

  9. newusers 拷贝服务器A上的用户,批量添加到其它服务器

    服务器B 需要添加多个用户,要求与服务器A 的用户列表一致 1.拷贝服务器A 上的 /etc/passwd 中用户信息,用user1-10为例 #grep ^user /etc/passwd > ...

  10. 数据代理Object.defineProperty()

    数据代理: 通过一个对象代理对另一个对象中属性的操作(读/写) 数据代理 Object.defineProperty() Object.defineProperty() 方法会直接在一个对象上定义一个 ...