实在是打击人信心的一场比赛啊……一不注意就掉了 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. 【数据结构与算法Python版学习笔记】图——词梯问题 广度优先搜索 BFS

    词梯Word Ladder问题 要求是相邻两个单词之间差异只能是1个字母,如FOOL变SAGE: FOOL >> POOL >> POLL >> POLE > ...

  2. beta事后分析

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 软件要解决的问题是是开发一个简易方便,为用户带来便捷且功能齐全的表情包管理小程序: 预期的典型用户 ...

  3. BUAA-OO-最后单元总结

    BUAA-OO-最后单元总结 经过一学期的魔鬼"折磨"后,OO课程终于要结束了!总体来说我对于作业的总体完成情况还是比较满意的,希望最后可以取得一个理想成绩. 一.第四单元架构设计 ...

  4. 探索Mybatis之JDK动态代理:探究Proxy.newProxyInstance()生成的代理类解析

    Mybatis的Mapper接口UserMapper 1 package com.safin.Mapper; 2 3 import com.safin.Pojo.User; 4 5 import ja ...

  5. [个人开源]vue-code-view:一个在线编辑、实时预览的代码交互组件

    组件简介 vue-code-view是一个基于 vue 2.x.轻量级的代码交互组件,在网页中实时编辑运行代码.预览效果的代码交互组件. 使用此组件, 不论 vue 页面还是 Markdown 文档中 ...

  6. 分析pcap包(基于UDP)

    //c代码#include <stdlib.h> #include <stdio.h> #include <pcap.h> #include <string. ...

  7. Vue面试题2

    Class与Style绑定工作有用过吗: 有,后台管理系统菜单.主题色切换 .tab选项卡等..... 计算属性和侦听器区别.使用场景: 计算属性有缓存.并且是响应式依赖缓存,调用不加小括号 利用vu ...

  8. 如何选择普通索引和唯一索引《死磕MySQL系列 五》

    系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强 ...

  9. 开发笔记----- python3 小甜点

    一.字典内容排序 1.根据 值大小排序,默认reverse=False:从小到大排序,True:从大到小排序.例: >>> dic1 = {'a1':4,'b1':12,'c1':1 ...

  10. You (oracle) are not allowed to access to (crontab) because of pam configura

    用oracle用户添加备份计划任务,crontab -e,提示:You (oracle) are not allowed to access to (crontab) because of pam c ...