F 没看所以摆了 .

看拜月教教主 LHQ 在群里代打恰钱 /bx

A. Technical Support (*800)

SoyTony 强啊 .

维护一个计数器,扫一遍遇到 \(\tt Q\) 加一,遇到 \(\tt A\) 减一,每次要小于 0 了就赋成 0,看一下最后计数器是否等于 0 即可 .

正确性显然 .

B. Kevin and Permutation (*800)

构造比较显然,不太好说,直接放代码 .

int main()
{
int T, n; scanf("%d", &T);
while (T--)
{
scanf("%d", &n);
for (int i=n; i>=1; i--)
{
if (i & 1 ^ 1) printf("%d ", 1+(i-1)/2);
else printf("%d ", 1+i/2+n/2);
}
puts("");
}
return 0;
}

C. Make Nonzero Sum (C1 *1300, C2 *1500)

C1, C2 是一样的 .

首先任何一种拆分方案都可以化成等价的只用长度为 1 和 2 的区间的方案 .

就是对于偶数,两两分,对于奇数再分一个 1 出来即可 .

这样就证明了用 1, 2 构造方案如果构不出来一定无解 .

然后先求一下序列之和然后贪心地选一些不相邻的幸运元素乘上 \(-1\) 即可完成构造 .

听 SoyTony 说似乎比较难写?那我放下代码 .

const int N = 222222;
int n, a[N];
int main()
{
int T; scanf("%d", &T);
while (T--)
{
scanf("%d", &n); int s = 0;
for (int i=1; i<=n; i++) scanf("%d", a+i), s += a[i];
int k=0;
string ans;
char tmp[114514];
for (int i=1; i<=n; i++)
{
if ((s * a[i+1] > 0) && (i != n)){sprintf(tmp, "%d %d\n", i, i+1); ++k; ++i; s -= 2 * a[i];}
else{sprintf(tmp, "%d %d\n", i, i); ++k;}
ans += tmp;
}
if (s){puts("-1"); continue;}
else printf("%d\n%s", k, ans.c_str());
}
return 0;
}

D. Factorial Divisibility (*1600)

感性理解一下,直接暴力合并判断 .

具体的,

const int N = 522222;
int n, k, a[N], z[N];
int main()
{
scanf("%d%d", &n, &k);
for (int i=1; i<=n; i++) ++z[read<int>()];
for (int i=1; i<k; i++)
{
z[i+1] += z[i] / (i+1);
if (z[i] % (i+1)){puts("No"); return 0;}
}
puts("Yes");
return 0;
}

E. Wish I Knew How to Sort (*2000)

令序列中有 \(c\) 个 \(0\),目前前 \(c\) 个数有 \(x\) 个 \(1\),然后要排序就需要 \(x\) 次有效交换 .

减少一个 \(1\) 的概率是 \(\dfrac{x^2}{\dbinom n2}\)

令 \(dp_i\) 还剩 \(i\) 次有效交换的的期望,则

\[dp_{i-1}=\frac{i^2}{\frac{n(n-1)}{2}}\times f_i+\frac{\frac{n(n-1)}{2}-i^2}{\frac{n(n-1)}{2}}\times dp_{i-1}+1
\]

移项,经过化简可以得到答案是 \(\displaystyle\dbinom n2\sum_{i=1}^x\dfrac1{i^2}\) .

暴力算一下就是 \(\Theta(n)\) 的 .

CF Round #829 题解 (Div. 2)的更多相关文章

  1. CF Round #808 题解 (Div. 2 ABCD)

    后面题太难搞不动 . ABCD 的题解写的好水啊,感觉在写闲话,,, A 若 \(\forall i, a_1\mid a_i\),则可以 . 注意判 \(0\) 的情况 . 提交记录 . B 显而易 ...

  2. CF Round#240题解

    第一次参加CF的比赛,MSK19.30,四个小时的时差真心累,第一次CODE到这么夜-- 一开始做了A,C两题,后来做B题的时候我体力和精神集中度就很低了,导致一直WA在4-- 今天起床后再刷B,终于 ...

  3. Codeforces Round #556 题解

    Codeforces Round #556 题解 Div.2 A Stock Arbitraging 傻逼题 Div.2 B Tiling Challenge 傻逼题 Div.1 A Prefix S ...

  4. 竞赛题解 - CF Round #524 Div.2

    CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 ...

  5. CF Round #551 (Div. 2) D

    CF Round #551 (Div. 2) D 链接 https://codeforces.com/contest/1153/problem/D 思路 不考虑赋值和贪心,考虑排名. 设\(dp_i\ ...

  6. CF Round #510 (Div. 2)

    前言:没想到那么快就打了第二场,题目难度比CF Round #509 (Div. 2)这场要难些,不过我依旧菜,这场更是被\(D\)题卡了,最后\(C\)题都来不及敲了..最后才\(A\)了\(3\) ...

  7. CF Round #600 (Div 2) 解题报告(A~E)

    CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include< ...

  8. CF Round #580(div2)题解报告

    CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...

  9. Codeforces Round #581(Div. 2)

    Codeforces Round #581(Div. 2) CF 1204 A. BowWow and the Timetable 题解:发现,$4$的幂次的二进制就是一个$1$后面跟偶数个$0$. ...

随机推荐

  1. Gulp介绍及安装使用教程

    一.简介 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器,不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成,使用她,我们不仅可以很愉快的编写代码 ...

  2. Luogu4427 [BJOI2018]求和 (树上差分)

    预处理,树上差分.注意深度减一 #include <cstdio> #include <iostream> #include <cstring> #include ...

  3. ArcGIS QGIS学习一:打开shp、geojson地图变形变扁问题(附最新坐标边界下载全国省市区县乡镇)

    目录 打开的地图变扁了 修改投影坐标系 等角圆锥投影 Web墨卡托投影 一些要注意的地方 打开的地图变扁了 记得初学GIS软件时,用ArcGIS或QGIS打开省级地图的时候(shp或geojson等格 ...

  4. CSS 布局(一):Flex 布局

    主轴和纵轴 对某一盒子模型添加display: flex;属性后,称之为 Flexible Box 模型(或称之为 flexbox),即弹性盒子模型,简称弹性盒子. 弹性盒子为子元素提供了强大的空间分 ...

  5. day31-线程基础01

    线程基础01 1.程序 进程 线程 程序(program):是为完成的特定任务,用某种语言编写的一组指令的集合.简单来说,就是我们写的代码. 进程: 进程是指运行中的程序,比如我们使用QQ,就启动了一 ...

  6. 如何从零开始参与 Apache 顶级开源项目?| 墙裂推荐

    ​ 写在开头 从 2021 开始,有一个很有意思的说法经常在各大技术媒体或开源论坛中出现,「开源正在吞噬一切」.不论是否言过其实,从一个行业从业者的切身感知来看,开源确实从少数极客的小众文化成为主流的 ...

  7. 发现tab换成空格不起作用,然后解决如下。

    今天发现把 .vimrc 加了set expandtab之后不起作用,这个本来是把代码中的制表符换成空格,免得不同人的设置不同造成代码缩进混乱. 然后搞了半天搞不定,应该是加载了.vimrc之后又加了 ...

  8. 视频结构化 AI 推理流程

    「视频结构化」是一种 AI 落地的工程化实现,目的是把 AI 模型推理流程能够一般化.它输入视频,输出结构化数据,将结果给到业务系统去形成某些行业的解决方案. 换个角度,如果你想用摄像头来实现某些智能 ...

  9. k8s 如何关联pvc到特定的pv

    可以使用对 pv 打 label 的方式,具体如下: 创建 pv,指定 label $ cat nfs-pv2.yaml apiVersion: v1 kind: PersistentVolume # ...

  10. 6.云原生之Docker容器Registry私有镜像仓库搭建实践

    转载自:https://www.bilibili.com/read/cv15219863/?from=readlist #1.下载registry仓库并设置数据存放的目录(并生成认证账号密码) doc ...