Codeforces Round #569 题解


CF1179A Valeriy and Deque

有一个双端队列,每次取队首两个值,将较小值移动到队尾,较大值位置不变。多组询问求第\(m\)次操作时队首两个数。


显然\(O(n)\)次以内队首变成了最大值,之后就循环了,暴力前\(O(n)\)个操作的答案即可

https://codeforces.com/contest/1179/submission/55878330


CF1179B Tolik and His Uncle

有一个\(n*m\)的网格图,你在\((1,1)\)。你要遍历一遍这个网格图,正好经过每个点一次。唯一的限制是每次移动的移动向量不能相等,求方案。


显然有解。

一种构造方案是每次取第一行和最后一行,假设是格子\(a_1,\cdots,a_m\)和格子\(b_1,\cdots,b_m\)。向方案中加入\(a_1,b_m,a_2,b_{m-1},\cdots,a_m,b_1\)。只剩一行的时候假设是格子\(a_1,\cdots,a_m\),加入\(a_1,a_m,a_2,a_{m-1},\cdots\)(交替选第一个数和最后一个数)。

证明显然

一种好写的实现方法构造两个数列\(s_{1,1},s_{1,2},\cdots,s_{1,m},s_{2,m},s_{2,m-1},\cdots s_{2,1},s_{3,1},\cdots\)和\(s_{n,m},s_{n,m-1},\cdots,s_{n,1},s_{n-1,m},s_{n-1,2},\cdots s_{n-1,m},s_{n-2,m},\cdots\),交替选第一个坐标直到\(n*m\)个为止。

https://codeforces.com/contest/1179/submission/55878330


CF1179C Serge and Dining Room

(题面万恶的zbzy真的23333....

食堂里有\(m\)名同学排成一队,还有\(n\)个菜。因为万恶的zbzy,所以每个菜只有一个,被取完就没了。第\(i\)个菜价格为\(a_i\)元,第\(j\)个同学有\(b_i\)元。

开始打饭时,从同学\(1\)到同学\(m\)依次打饭。每个同学会买下他能买得起的价格最高的菜(万恶的zbzy),如果啥都买不起就啥都不买(万恶的zbzy)

每次会修改\(a\)或\(b\)中的一个值,然后询问如果现在开始打饭,剩下的菜中价格最高的。不存在输出-1。


(当时真的脑抽了先想了个树套树然后又整体二分然后主席树。。。。后来发现一个线段树就行了233

搞一个线段树,对\(a_i\)的位置\(+1\),对\(b_i\)的位置\(-1\)。

询问就是最大的左端点\(l\)使得区间\([l,\infty)\)的最大后缀和\(>0\),不存在即为-1。

https://codeforces.com/contest/1179/submission/55890192


CF1179D Fedor Runs for President

有一棵树,你要增加一条边(可以重边,不能是自环)使得新图的简单路径(不同的定义是边集不同)数量最大。


我也不知道怎么就切了。。。

瞎猜结论,按照求直径的方法搜两遍就切了。。。。。好像还是对的。。。。(差点gm了

https://codeforces.com/contest/1179/submission/55895158


CF1179E Alesya and Discrete Math

交互题。

定义\(f(x)\)是好的当且仅当若\(f(x)\)在\(x\)和\(x-1\)处都有定义,满足\(f(x)=f(x-1)\)或\(f(x)=f(x-1)+1\)。

有\(n\)个好的函数\(f_1,f_2,\cdots,f_n\),都满足

  1. 定义域是\([0,10^{18}]\cap \mathbb{Z}\)。
  2. \(f(0)=0,f(10^{18})=L\)。

这些函数都是确定的,你每次可以询问一个\(f_i(x)\)。你最多提出\(200000\)次询问。交互器不是依赖型的。

还满足\(n|L\)。

对每个函数\(f_i\)你需要选择一个区间,即\([l_i,r_i]\)。需要满足\(f_{i}(r_{i}) - f_{i}(l_{i}) \geq \frac{L}{n}\)。

而且还要满足任意两个区间的交为空或只有一个端点。


首先有一个naive做法:设有\(n\)个函数,在值域\([L,R]\)中求答案。先对每个函数\(f_i\)二分出一个\(x_i\)使得\(f_i(x_i)=\lfloor \frac{L+R}2\rfloor\),然后把函数按\(x_i\)排序,取中间的函数,递归下去\(f_{1\cdots mid}\)值域是\([L,f_{mid}(x_{mid})]\),\(f_{mid+1\cdots r}\)值域是\([f_{mid}(x_{mid}),R]\)。

然后递归做。

(后面部分还没切,不保证正确性

但是这样太慢了,换一个做法。每次随机一个函数\(f_p\),二分出\(x_p\),对其他的\(f\)计算\(f_i(x_p)\),即可知道\(x_i\)和\(x_p\)的大小关系。做完之后将函数分成了两边在大的一边继续找答案。

咕了咕了这题太屎了

Codeforces Round #569 题解的更多相关文章

  1. Codeforces Round #556 题解

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

  2. Codeforces Round #557 题解【更完了】

    Codeforces Round #557 题解 掉分快乐 CF1161A Hide and Seek Alice和Bob在玩捉♂迷♂藏,有\(n\)个格子,Bob会检查\(k\)次,第\(i\)次检 ...

  3. CFEducational Codeforces Round 66题解报告

    CFEducational Codeforces Round 66题解报告 感觉丧失了唯一一次能在CF上超过wqy的机会QAQ A 不管 B 不能直接累计乘法打\(tag\),要直接跳 C 考虑二分第 ...

  4. Codeforces Round #542 题解

    Codeforces Round #542 abstract I决策中的独立性, II联通块染色板子 IIIVoronoi diagram O(N^2 logN) VI环上距离分类讨论加取模,最值中的 ...

  5. Codeforces Round #569 (Div. 2) 题解A - Alex and a Rhombus+B - Nick and Array+C - Valeriy and Dequ+D - Tolik and His Uncle

    A. Alex and a Rhombus time limit per test1 second memory limit per test256 megabytes inputstandard i ...

  6. Educational Codeforces Round 19 题解【ABCDE】

    A. k-Factorization 题意:给你一个n,问你这个数能否分割成k个大于1的数的乘积. 题解:因为n的取值范围很小,所以感觉dfs应该不会有很多种可能-- #include<bits ...

  7. Codeforces-Educational Codeforces Round 53题解

    写之前,先发表下感慨:好久没写题解了,也许是因为自己越来越急利了,也可以说是因为越来越懒了. A. Diverse Substring 直接找一找有没有相邻的两个不同的字符即可. B. Vasya a ...

  8. Codeforces Round #519 题解

    A. Elections 题意概述 给出 \(a_1, \ldots, a_n\),求最小的 \(k (k \ge \max a_i)\), 使得 \(\sum_{i=1}^n a_i < \s ...

  9. Codeforces Round #397 题解

    Problem A. Neverending competitions 题目大意 一个团队有多个比赛,每次去比赛都会先订机票去比赛地点,然后再订机票返回.给出\(n\)个含有起止地点的购票记录(不按时 ...

随机推荐

  1. linux内存管理之uboot第一步

    在进入讲解linux内存管理的kernel阶段以前,了解一下uboot阶段是如何准备好内存物理设备的,这是非常有意义的.通常进入到linux内核阶段之后,对内存芯片的物理特性寄存器访问是比较少的,强调 ...

  2. SpringMVC数据绑定三(JSON 、XML))

    dhc chrome 地址https://chrome.google.com/webstore/detail/restlet-client-rest-api-t/aejoelaoggembcahagi ...

  3. 【数据结构】27、红黑树,节点插入,修复平衡操作总结(针对jdk8中hashmap冲突过多链表转红黑树)

    二叉树节点插入 0.如果只有一个节点,那么就直接作为根,涂黑,如果父为黑,或者祖父为空,那么不做操作 1.叔叔节点不为空且为红 那么就修改父,叔叔,祖父节点颜色,最后把当前节点设置为祖父节点,在进行平 ...

  4. 第四章 朴素贝叶斯法(naive_Bayes)

    总结 朴素贝叶斯法实质上是概率估计. 由于加上了输入变量的各个参量条件独立性的强假设,使得条件分布中的参数大大减少.同时准确率也降低. 概率论上比较反直觉的一个问题:三门问题:由于主持人已经限定了他打 ...

  5. jacoco 的使用及与jenkins的集成

    1.把jacocoagent.jar的包放入到dockerfile COPY jacocoagent.jar /opt/jacoco/lib/jacocoagent.jar 2.打完镜像,需要启动容器 ...

  6. ROS学习笔记六:xxx.launch文件详解

    每当我们需要运行一个ROS节点或工具时,都需要打开一个新的终端运行一个命令.当系统中的节点数量不断增加时,每个节点一个终端的模式会变得非常麻烦.那么有没有一种方式可以一次性启动所有节点呢?答案当然是肯 ...

  7. [CF Round #278] Tourists

    给定一个n个点m条边的无向图,求图上的两点的所有的简单路径之间的最小边. 蓝链 $ n,m,q \leq 100000, w_i \leq 10 ^7$ Solution 考虑建立用缩点双来建立广义圆 ...

  8. [ZPG TEST 115] 种树【差分约束】

    4. 种树 (trees.pas/c/cpp) [问题描述] 一条街的一边有几座房子.因为环保原因居民想要在路边种些树.路边的地区被分割成块,并被编号为1..n.每个块的大小为一个单位尺寸并最多可种一 ...

  9. JAVA大数处理(BigInteger,BigDecimal)

    原文链接 Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类. 这两个类都在java.math.*包中,因此每次必须在开头处引用该包. Ⅰ基本函数: 1.valu ...

  10. ACM_素数环(dfs)

    Problem Description: 如图所示,环由n个圆组成. 将自然数1,2,...,n分别放入每个圆中,并且两个相邻圆中的数字总和应为素数. 注意:第一个圆圈的数量应该始终为1. Input ...