首页 > 其他分享 >CSP 模拟 51

CSP 模拟 51

时间:2024-10-20 17:11:49浏览次数:1  
标签:le 对于 51 然后 节点 即可 子集 CSP 模拟

A 排列最小生成树 (pmst)

首先想到 \(n^2\) 建边的做法,然后最小生成树的所有边权都小于 \(n\),直接从头到尾连都能轻松满足这个。所以很多边是无用的,只要找边权小于 \(n\) 的边即可。所以对于位置差和权值差在 \(\sqrt n\) 以下的都找一遍即可,然后桶排跑 MST 即可。赛时根号都写脸上了,没做出来不应该。

B 卡牌游戏 (cardgame)

考虑一下每个 \(A\) 会去比较的位置,发现比的都是一个余数固定的集合,找到所有余数的集合,然后二分找一下就行了。

C 比特跳跃 (jump)

  • 对于 \(S=1\),发现从 \(1\) 可以用 \(0\) 的代价跳到所有偶数点,通过这些偶数点又可以用 \(0\) 的代价跳到所有二进制无交的奇数点,然后发现对于 \(n\) 点,它在 \(n=2^k-1\) 的情况下跳不到,然后用 \(K\) 和 \(n\) 相连的所有边比一下即可。
  • 对于 \(S=2\),直接考虑优化建图,先想暴力,连出所有异或边即可,但是很多边其实都被其他边间接表示了出来,考虑 \(a\to b\) 只有一个 \(2^k\) 的贡献,\(b\to c\) 只有一个 \(2^s\) 的贡献,那么对于 \(a\to s\) 的贡献 \(2^k+2^s\),它就可以被上面两条边组合出来,所以直接每个点考虑向只改变一个二进制位的连边即可。
  • 对于 \(S=3\),首先跳跃 \(a\) 到 \(b\) 至少会做出 \(\min(a,b)\) 的贡献,这是在有子集关系的情况下。所以从 \(1\) 到奇数点最优,跳到偶数点只会多出来 \(1\) 的贡献,所以先建出来 \(1\) 的所有边,跑一遍 dij,然后考虑节点的松弛,一个节点只有可能被它的子集节点跳跃松弛,不然还不如从 \(1\) 条,这时候枚举子集还是 \(3^{\log n}\),但是只需要找到子集中最小的 dis 即可,所以从小到大枚举,每次在子集上扩展一位,时刻取个 min,把能松弛的节点再放到队列里,然后再跑一遍 dij 即可。

观察性质题,赛时连异或都没做出来还是太菜了。

D 区间 (interval)

说是历史版本和板子题,太麻烦了以后再说,所以说下部分分。

  • 对于 \(n\le 3000\),可以单调栈出最大值的控制范围,然后找有多少个 \(B\) 符合条件即可,上数据结构即可,\(\mathcal{O}(n^2\log n)\)。不是,我都 \(n^2\) 了还上牛魔的数据结构,直接对于每个点暴力找一次存起来不就行了,这个是真的 \(n^2\)。
  • 对于 \(A_i\le 3,B_i\le 3\),手玩发现对于一个右端点,最多有一个左端点符合条件,所以暴力找出来后拍到平面上离线二维数点即可。

赛时咋 \(n^2\) 都不会,你都打暴力了还上牛魔的数据结构。

标签:le,对于,51,然后,节点,即可,子集,CSP,模拟
From: https://www.cnblogs.com/Ishar-zdl/p/18487519

相关文章

  • 『模拟赛』信友队2024CSP-S第二轮(复赛)模拟赛
    Rank意外地好A.坦白签。首先对\(m=0\)很好求,正着跑一遍就行。接着考虑\(m\lt0\)时什么时候遗忘会更优。发现是\(\oplus\)操作,因此答案为偶时(即事件为奇时)遗忘会使答案+1。为判断是否比原先优,我们提前处理出后缀和即可。这题关键在想出一个性质,\(m=i\)是由\(m=i-......
  • 【洛谷 P1116】车厢重组 题解(模拟+冒泡排序)
    车厢重组题目描述在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他......
  • 【洛谷 P1116】车厢重组 题解(模拟+冒泡排序)
    车厢重组题目描述在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他......
  • 【单相交流电压控制器】模拟带有两个背靠背连接的晶闸管的单相交流电压控制器(Simulink
      ......
  • CW 模拟赛 T2.迁跃
    题面似乎有原题,但是很偏挂个pdf题面下载算法一眼树形dp然而考场上没想出来很显然有一个式子令\(f_u\)表示从\(u\)进入子树,再通过迁越回到点\(u\)的最大价值则有\[f_u=\sum_{exist\text{}u\rightarrowv}^{(v,w)}\max(f_v+w-k,0)\]但是我们并......
  • csp2024 游记
    前言今年赛前这段时间或许算得上是我OI生涯中最摆的一段时间了。每天到机房无非就是胡乱的看一些题,趴在桌子上,或者是写whk作业。当然这可能也和最近的状态有关。或许我也只有在刚开始的那几天的在线的,其它时候基本上啥都没干。本来今年是不太想停课的,可最终因为种种原因还是......
  • 深入优化MySQL深度分页:从第10000页出发,Java模拟高效分页技巧
    在深度分页(如LIMIT99990,10)中,SQL的优化方式主要是为了避免MySQL在执行时需要扫描大量的无用数据,从而提高查询效率。以下是几种常见的SQL层面的优化方法:1.使用覆盖索引优化覆盖索引是一种索引优化技术,即查询只通过索引就可以获得所需的数据,而不需要访问实际的数据......
  • P5048 [Ynoi2019 模拟赛] Yuno loves sqrt technology III
    Sol蒲公英题意基本相同,但是注意到空间限制62.5MB,显然不能用蒲公英的做法。考虑先把整块的答案算出来,然后把小块的部分补上去,显然大块可以预处理,小块可以直接暴力查询是否越界。代码很简单。Code#include<iostream>#include<iomanip>#include<cstdio>#include<vector>......
  • 信友队2024CSP-S第二轮(复赛)模拟赛
    2024CSP-S第二轮(复赛)模拟赛\(T1\)A.坦白\(30pts\)部分分\(30pts\):爆搜。点击查看代码llans[300010];chars[300010];intmain(){freopen("confess.in","r",stdin);freopen("confess.out","w",stdout);llt,n,cn......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛09
    Rank还行A.排列最小生成树(pmst)签,有点可惜。考虑连\(i\)与\(i+1\)时,所有边边权都是小于\(n\)的,因此我们只考虑边权小于\(n\)的边即可。因为边权为\(|p_i-p_j|\times|i-j|\),所以只考虑\(|p_i-p_j|\lt\sqrt{n}\)和\(|i-j|\lt\sqrt{n}\)的情况,每个点只用连......