Codeforces Round #569 题解

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}\)


咕咕咕

猜你喜欢

转载自www.cnblogs.com/xzz_233/p/11070827.html