首页 > 其他分享 >「模拟赛」多校 A 层联训 8

「模拟赛」多校 A 层联训 8

时间:2024-10-20 10:33:04浏览次数:7  
标签:le gcd 二进制 边权 多校 times 联训 lcm 模拟

A. 排列最小生成树 (pmst)

大家都没签上的签到

调参调到 110 能过?!但赛时用 set 这个大常数选手存的边,挂了个 log,所以跑不动大样例。

正解:

发现只按把编号相邻的点连边构成一条链,此时所有边的长度都 \(\le n\),所以无论如何我们都能保证最小生成树每条边的边权 \(\le n\)。

那么我们只把边权 \(\le n\) 的边连上即可。边权 \(\le n\) 需要满足 \(abs(i-j)\) 和 \(abs(p_i-p_j)\) 至少有一个 \(\le \sqrt n\)。所以每一个点建上 \(2\times \sqrt n\) 条边即可。

边权最多只有 \(n\),所以开个 vector 数组 \(v_i\) 存边权为 \(i\) 的所有边,这样避免排序的 log 复杂度。

B. 卡牌游戏 (cardgame)

签到

设 \(lcm\) 为 \(n\) 和 \(m\) 的最小公倍数,\(gcd\) 为 \(n\) 和 \(m\) 的最大公因数,显然 \(lcm\) 轮时正好为一个循环。

而这前 \(lcm\) 轮内保证有每两个人最多比一次。

\(n=k_1\times gcd\),\(m=k_2\times gcd\),所以在一次循环中 \(a_i\) 和 \(b_j\) 比较时一定有 \(i\% gcd=j \% gcd\),并且对于一个 \(i\) 会对应所有的 \(j\ (if\ j\%gcd=i\%gcd)\),所以把 1~n 中所有模 \(gcd\) 余数相同的存一起,1~m 中所有模 \(gcd\) 余数相同的存一起。对于所有的 \(i\in [1,n]\),计算 1~m 中 \(i\% mod\) 的那个桶里有多少小于自己的,等于自己的,大于自己的就好了。

共有 \(\lfloor \frac {n\times m} {lcm} \rfloor\) 次循环,求出一次循环 A 赢的次数、B 赢的次数,乘上循环次数就好了。

对于 \(n\times m \% lcm\) 的那部分,暴力模拟就好。

C. 比特跳跃 (jump)

二进制运算性质

发现其实是一题三做。

  • \(and\) 部分

    发现大部分数都可以做到答案为 0,只有在 \(n\) 的二进制表示全为 1 的时候特殊,这个时候除了 \(n\) 之外的为 0,把与 \(n\) 相关的边建上跑最短路求出的 \(dis_n\) 为 n 的答案;

  • \(xor\) 部分

    将异或运算看成是每一位上相加但不进位,所以每次改变二进制表示下的一位再连边连向原数就好了

  • \(or\) 部分

    或的数越多,权值就越大,所以一个数只由 1 或者自己二进制下 1 的子集表示的数转移过来较优。

    先把 1 连向每个点和那 \(m\) 条边跑一边最短路,然后对于每个数用它二进制下 1 的子集表示的数的权值更新自己,同样每次只改变二进制的一位。

    把当前每个数的权值作为边权存进 Dij 的堆里,再跑一遍最短路。

标签:le,gcd,二进制,边权,多校,times,联训,lcm,模拟
From: https://www.cnblogs.com/YuenYouth/p/18486985

相关文章

  • 多校A层冲刺NOIP2024模拟赛09
    又双叒叕垫底啦rank4,T150,T2100,T339,T435。accoder上同分,rank20排列最小生成树(pmst)打的\(O(n^2\logn^2)\)暴力发现总是存在⼀颗⽣成树,使得⽣成树⾥的所有边的边权都⼩于\(n\)。考虑Kruskal的过程,我们只需要留下那些边权⼩于\(n\)的边。然后用桶排序即可。点......
  • json-server详细模拟GET、POST、DELETE等接口数据教程
    引言在前端开发过程中,我们经常需要在后端API尚未就绪的情况下模拟接口数据。json-server是一个强大而灵活的工具,可以帮助我们快速创建一个模拟的RESTfulAPI。本文将详细介绍如何使用json-server来模拟GET、POST、PUT、PATCH、DELETE等常用的HTTP方法,以及如何处理复杂的数......
  • csp-s 模拟 12
    csp-s模拟12T小h的几何whk我能说什么呢...T小w的代数仙人掌,DP,计数题本题部分分较有启发意义考虑是一棵树怎么做注意到\(n\)比较小,直接想想比较暴力的做法,可以用\(O(n^2)\)的复杂度枚举起点和终点,而由于是一棵树,两点之间的路径是唯一的,并且本题要求点集不重,......
  • 使用application模拟聊天室
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>Session测试</title......
  • 多校A层冲刺NOIP2024模拟赛09
    GG多校A层冲刺NOIP2024模拟赛09T1排列最小生成树(pmst)需要思考一会。你得发现一个性质:所有要的边的权值都得小于n,因为每个点都可以找到至少一条边权小于n的边,所以最后生成树里的边的边权一定小于n。那么$\vertp_i-p_j\vert\times\verti-j\vert$中较......
  • 使用sendReddirect模拟用户登录
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>简单登录模拟</title>......
  • [51] (多校联训) A层冲刺NOIP2024模拟赛09
    关于生成式AI怎么才能让这个b学会断句我目前的方案是,把逗号和句号单独作为一个特殊词汇看待,也统计到词频里,该断句的时候就断表扬这次的题解,写的很清楚A.排列最小生成树总存在一颗生成树使得树上最大边权值小于\(n\)考虑直接连接序列里的所有\((i,i+1)\),因为\(|a_......
  • 重庆强校模拟赛,提高组堪比省赛
    承上启下今天又被喂了四个小时的史,逆天。T1送分,简单得令人落泪,只要能打提高组就能\(AC\),当时还以为终于有一场普通的模拟赛了,哈哈,笑不活了。T2,同学大佬们目测蓝紫,就算了,我太菜了,想了两个半小时,最后二十分钟打完暴力跑路。T3,BYD,std700多行,出题人你提米当个人不行吗?!你看看这像是......
  • [DMY]2024 CSP-S 模拟赛 Day 18
    今天打的虽然有遗憾,但是也在情理之中。赛时看了眼T1,没有别人的犹豫,第一眼就看到了\(n\le5000\),然后开始写最短路。算了一下dijkstra根本跑不满,无需deque的01bfs。写完以后大概40min,改一下longlong就扔了。赛后没挂,100pts。T2一开始没有思路,在纸上画画图感觉可以......
  • 20241017 模拟赛
    看题戳这里总结时间分配:30min自习,30mint1,然后在t2,t3,t4中间反复横跳,最后一小时狂冲t3没出来,悲伤。后来听巨佬说t3很离谱,也不知道是不是真的。最终分数:0+50+0+0为什么第一题挂了?为什么第一题挂了?为什么第一题挂了?为什么第一题挂了?哦,原来是玩原神freopen注释了导致的。解析......