首页 > 其他分享 >ABC 350

ABC 350

时间:2024-04-25 16:45:52浏览次数:14  
标签:ABC dsu 合并 爷爷 350 直接

image

VP 的。猜猜为啥没有 penalty?因为 T 的没有测完。

submissions

A,B

直接暴力。

C

一个很简单的方法就是第 \(i\) 次把 \(i\) 放到应该在的位置。当然如果原先就在了就别管。

D

一个联通图中的每两个点都能成为朋友。因此直接 dsu。

E

记忆化搜索。注意到如果投骰子投到 \(1\),直接加上 \(y\)。

F

首先,你可以很好的记录大小写要不要转换。对于 reverse,我们记录每一个匹配的括号,指针指到 ( 的时候跳到 ) 处,并且每次变成 \(-1\),就可以了。后面换回来。

G

两个点 \(u,v\) 有相邻的同一个点,当且仅当:

  • \(u\) 是 \(v\) 的爷爷。

  • \(v\) 是 \(u\) 的爷爷。

  • \(u,v\) 的父亲相同。

合并的话启发式合并,用 dsu 维护。小的一方要跑 dfs 重构 \(fa\) 数组。

标签:ABC,dsu,合并,爷爷,350,直接
From: https://www.cnblogs.com/SFlyer/p/18158023

相关文章

  • Netfilter漏洞提权利用(CVE-2023-35001)
    前言Netfilter是一个用于Linux操作系统的网络数据包过滤框架,它提供了一种灵活的方式来管理网络数据包的流动。Netfilter允许系统管理员和开发人员控制数据包在Linux内核中的处理方式,以实现网络安全、网络地址转换(NetworkAddressTranslation,NAT)、数据包过滤等功能。漏洞成因在......
  • ABC350 E - Toward 0 题解
    AtCoderBeginnerContest350E-Toward0原题地址题意给定四个数NAXY,你可以对N进行以下两种操作。花费X的代价将N变成\(\lfloor\cfrac{N}{A}\rfloor\)花费Y的代价掷一颗骰子,设掷出结果是i,将N变成\(\lfloor\cfrac{N}{i}\rfloor\)你需要执行若干次......
  • [ABC343G] Compress Strings
    题目链接:https://www.luogu.com.cn/problem/AT_abc343_gsolution:1.首先我们将给出的字符串中互相包含的消去,可以使用kmp求前后缀来完成。和这道题的写法一样https://www.luogu.com.cn/problem/CF1200E2.我们发现给出的字符串最多只有20个,考虑状压来求解所有可能3.我们注意到这......
  • abc340E题解
    题目描述样例input:5312345240output:04272算法1(树状数组)$O(nlogn)$本题我们可以看作对于每一个查询位置x我们都需要先把该位置上的所有球拿出来,然后再一个一个的放到对应位置上去。假设x位置上面有y个球,那么对于这y个球,如果大于n,那么就对所有的位置放y......
  • [ABC329C] Count xxx 题解
    [ABC329C]Countxxx题解题目分析目的:统计本质不同而不是位置不同的所有字符都相同的字串。需要理解一下什么是本质不同而不是位置不同。结合样例1去理解这句话。列举样例1中的所有所有组成字符相同的字串。aaabaa编号字串位置\(1\)a\([1,1]\)\(2\)aa\([1......
  • (图论分析,思维)ABC 350-D
    背景:我自己思考想出来的图论题,总归是有成就感的分析:求间接连接的点的对数,即一个连通块中枚举出两两连接的组合数,减去整个连通块中的边数,因为一条边必然直接连接了两个不同的点原理:并查集时间复杂度:o(n)代码如下:点击查看代码#include<bits/stdc++.h>usingnamesp......
  • AtCoder Beginner Contest 350 A - G 题解
    AtCoderBeginnerContest350A-PastABCsSolution把最后三个字符转成数字判断即可Code#include<bits/stdc++.h>usingnamespacestd;intmain(){strings;cin>>s;s=s.substr(3,3);intx=0;x=(s[0]-'0')*100+(s[1]-�......
  • ABC350C 题解
    怎么赛时连这道都不会了/ll注意到输入是个排列,这意味着我们可以直接确定每个元素应在的位置。考虑维护每个数当前所在的位置\(\{p\}\)。对于任意\(i\in[1,n]\),我们访问\(p_i\),如果该位置不为第\(i\)位便对排列中第\(i\)位的数\(j\)和\(i\)进行“交换”操作。“......
  • 「杂题乱刷」AT_abc279_e
    链接很一眼。容易发现除非操作时影响\(1\)这个数字,否则答案一定改变,直接特判影响到\(1\)这个数字的两种情况即可。代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h>using......
  • 「杂题乱刷」AT_abc253_c
    感觉要好好补补set了。链接直接用set模拟即可。点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h>usingnamespacestd;#definemapunordered_map#defineforl(i,a,b)for(re......