首页 > 其他分享 >Solution Set #9

Solution Set #9

时间:2024-01-28 13:01:35浏览次数:31  
标签:ac Set 询问 Solution pos 充电站 Judge uoj

在 cdqz 的集训结束了,虽然总榜比较好看但感觉只过了一堆平凡题。

怎么一个月就省选了(恼)

150【IOI2016】shortcut(拆绝对值)

考虑确定了架桥架在哪里之后怎么算(经过桥的)直径。实际上就是 \(\max (|pos_u-pos_x|+|pos_v-pos_y|+d_u+d_v)\)。

大力转切比雪夫(大概)然后二分,先排除 \(|pos_u-pos_v|+d_u+d_v\leq X\) 的点,剩下的点限制 \(pos_x-pos_y\) 和 \(pos_x+pos_y\) 的范围,然后双指针就行。

提交记录 #674333 - Universal Online Judge (uoj.ac)

151【IOI2016】messy(交互,分治,构造)

考虑一个构造:传一个 \(s_0=1\),然后询问 \(n\) 次,就可以知道 \(0\) 的位置。

实际上你也可以传一个集合过去,在 \(n\) 次询问得到这些集合。

问题是每个数只能传一次。所以假设我们上次传过去的集合是 \(S\),那么传下一个集合 \(T\) 的方式是把 \(x\in T\),\(\{x\}\oplus S\) 传过去。由于我们知道 \(S'\),所以枚举 \(x'\) 之后询问 \(\{x'\}\oplus S'\) 很容易得到 \(T'\)。

大力二进制分组,可以得到 \(n\log n\) 次操作的做法。

提交记录 #674659 - Universal Online Judge (uoj.ac)

152【IOI2017】Ancient Books(贪心,析合树)

考虑 \(\text{cir}(p)=1\) 的情况,发现答案是下界 \(X=\sum |i-p_i|\)。

容易构造出 \(2(\text{cir}(p)-1)+X\) 的上界:搜出生成树,每次以 \(1\) 的代价换连通块,然后以 \(1\) 的代价回到原来的位置。

然而换块未必需要 \(1\) 的代价。考虑连通块编号为 \(\{1,2,1\}\) 的三个点,可以从第一个数出发往后走到 \(2\),把书放到 \(2\),做完 \(2\) 连通块,再返回原位置。随便构造一下可以发现一个值域连续段(\(p_{[l,r]}\to[l,r]\))可以取到下界 \(X\),所以换块次数是值域连续段数量 \(-1\)。

写上去发现只过了 \(s=0\),发现 \(s=1\),\(\{0,2,1,4\}\) 会出问题,也就是 \(s\) 需要”跳出来“。然后大概是析合树上跳祖先的过程(?)直接贪心就好了。

不太懂析合树,瞎写了个东西/kk。

提交记录 #674659 - Universal Online Judge (uoj.ac)

153 IOI 2017 Toy Train(博弈,图论)

考虑只有一个充电站,且充电站是自环怎么做。可以 BFS 出所有 Arezon 能保证到充电站的结点。

考虑只有一个充电站怎么做,按上面 BFS 之后,如果 Arezon 控制充电站且存在出边对应结点能到充电站,或者 Borzon 控制且全部出边都能到充电站,那么能到的就是合法的,否则答案为空集。

考虑多个充电站,那么 BFS 多次,如果一个充电站不满足上面条件那么一定不会去这个充电站充电,那么把这个充电站删掉,重复 \(n\) 次可以得到解。

提交记录 #674949 - Universal Online Judge (uoj.ac)

154 IOI 2017 Simurgh(交互)

可以 \(\mathcal{O}(m)\)。具体而言,找到生成树,然后对于一个环,依次删去一条树边并加入非树边,可以得到非树边和树边的大小关系。如果所有边都和非树边相等那么一定都是 \(0\)。据此可以得到所有边的信息。

拓展到正解:如果我们只询问生成树上边的信息,那么我们就可以选择一个无环的边的子集,并询问子集中是否有关键边,然后通过二分技巧找到所有关键边。关键在于把原图拆成尽可能少的生成森林,一个构造是:找到一个点和它相连的所有边,这样可以拆出来 \(\mathcal{O}(n)\) 棵生成树,在所有生成树里面二分边即可。询问次数大约是 \(3n+n\log n\),不是很懂为啥给 \(8000\) 次询问。

https://uoj.ac/submission/675475

标签:ac,Set,询问,Solution,pos,充电站,Judge,uoj
From: https://www.cnblogs.com/yllcm/p/17981183

相关文章

  • Vue 数据相关实例方法vm.$watch、vm.$set、vm.$delete介绍
    vm.$watch观察vue实例变化的一个表达式或计算属性函数。回调函数得到的参数为新值和旧值。表达式只接受监督的键路径。对于更复杂的表达式,用一个函数取代。//写法一:this.$watch('a.b.c',function(newVal,oldVal){})//键路径vm.$watch(function(){this.fullName=this.......
  • Solution Set【2024.1.27】
    CF1778FMaximizingRoot首先不难证明不操作根节点一定不优,因此我们考虑操作根节点的情况。现在我们的问题转化为了:最大化操作根节点前的整个树的节点权值的最大公约数。由于可能的最大公约数值只有\(\mathcal{O}(\sqrt{V})\)种。因此我们考虑将其压入状态进行动态规划。设......
  • C转C++速成浅入浅出系列——STL之bitset
    本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。bitset【bitset:位集,比特集】理解为比特集。特点是①只能存入0与1②小端存储(可参阅计算机组成原理知识,表现为按b[i]增序输出时会倒序输出)需提供头文件#include<bitset> 创建注:①存储时......
  • 报错AttributeError: can't set attribute (image.mode = desired_mode)
      docker容器中安装了pillow包,以及imageio[ffmpeg],运行程序时报错AttributeError:can'tsetattribute(image.mode=desired_mode),发现imageio==2.31.5版本与pillow==10.1.0版本不兼容导致报错,只需将pillow版本降低固定为10.0即可,最近pillow==10.2.0版本也发行了,这个不......
  • 无涯教程-Scala Sets函数
    ScalaSets是同一类型的不同元素的集合,换句话说,集合是不包含重复元素的集合。默认情况下,Scala使用不可变的Set。如果要使用可变Set,则必须显式导入scala.collection.mutable.Set类,如果要在同一集合中同时使用可变集和不可变集,则可以继续将不可变集称为Set,但可以将可变集称为......
  • Solution - 数字配对
    因为网络流的题一直都做得很烂,所以写一发这个题。第一眼感觉可以暴力\(O(n^2)\)连边,然后我去为什么是价值总和不小于\(0\)?我的最小费用最大流班子都准备好了???哦(看了一下下题解),这个配对相当于是流量,然后如果我们固定流量的话,最大价值和是有单调性的。很好感性理解,流量越大即......
  • solution-arc158e
    [ARC158E]AllPairShortestPaths还是挺牛逼的一题。但是为什么其他题解都说很板?看来还是我太菜了,见的题太少了。主要参考@TeneryTree首先考虑CDQ分治,只考虑处理\([l,mid]\)中的到\([mid+1,r]\)这些点的路径和。由于列数\(m=2\)所以我们考虑设\(f_{i,0/1}\)为左......
  • queryset必知必会13条
    queryset必知必会13条<1>all():查询所有结果<2>filter(**kwargs):它包含了与所给筛选条件相匹配的对象<3>get(**kwargs):返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。<4>exclude(**kwargs):它包含了与所......
  • Comparison between IPQ9574 and IPQ9554 | MLO EHT Solution Unveils the WiFi 7 CPU
    ComparisonbetweenIPQ9574andIPQ9554|MLOEHTWiFi7QualcommSolutionUnveilstheWiFi7CPUforIndustrialApplications-AlderSeriesWi-Fi7elevateswirelessexperiencesandwillaccelerateemergingusecaseswithitsextremedataspeedsandconsis......
  • solution-at-agc044-c
    stonantforz正文算得上相当有意思以及启发性的数据结构题了。三进制表示联想到我们可以建立一个三叉树。类似于Trie一样的,按三进制从低位到高位建立一个Trie树。一个非常好的性质这是一个完美三叉树。接下来我们可以考虑怎么维护每一种操作。Salasa舞对于这种操作,相......