这次题比较水,但是还是没能ak,自己小结一下吧


第一道题就是自己枚举相加就行

第二道题是一个多关键字排序,wa了几次,是因为优先级有两个是相同的需要特判一下,然后可以把字符转化为数字的优先级,我用了一个hash。

第三题原来没太懂,后来明白了就是对一个无向图进行深度优先遍历就行了。

总结:自己虽然好多知识点已经学过了,但是做题还是不会用,还是不能发现题目中的一些性质,还是得多练!只要不断地前进,尽管走的很慢,总有一天会变强的!

这里只记录一下第三题的代码

给定一个 n

个节点的树,节点编号为 1∼n

树的根节点编号 r1

已知,每个节点(r1

除外)的父节点编号 pi

已知。

现在,我们要重新指定树的根节点,更具体地说,我们要将树的根节点从 r1

变换为 r2

请你计算并输出,变换树根后,每个节点(r2

除外)的父节点编号。

输入格式

第一行包含三个整数 n,r1,r2

,分别表示节点数量、原根节点编号、新根节点编号。

第二行包含 n−1

个整数,表示每个节点(r1

除外)的父节点编号 pi

输入保证,编号越小的节点,其父节点编号越先给出。

输出格式

在一行中输出 n−1

个整数,表示变换树根后,每个节点(r2

除外)的父节点编号。

输出应保证,编号越小的节点,其父节点编号越先输出。

数据范围

前 5

个测试点满足 2≤n≤10



所有测试点满足 2≤n≤50000

,1≤r1≠r2≤n

,1≤pi≤n

输入样例1:

3 2 3

2 2

输出样例1:

2 3

输入样例2:

6 2 4

6 1 2 4 2

输出样例2:

6 4 1 4 2


#include<iostream>
#include <cstring>
using namespace std;
const int N = 5e5 + 10;
int h[N], e[N], ne[N], idx;
int p[N], r1, r2, n; void add(int a, int b)
{
e[idx] = b; ne[idx] = h[a], h[a] = idx ++;
} void dfs(int u, int fa)
{
p[u] = fa;
for(int i = h[u]; i != -1; i = ne[i])
{
int j = e[i];
if(j == fa) continue;
dfs(j, u);
}
} int main()
{
memset(h, -1, sizeof h);
cin >> n >> r1 >> r2;
for(int i = 1; i <= n; ++i)
{
if(i == r1) continue;
int b; cin >> b;
add(i, b); add(b, i);
} dfs(r2, -1);
for(int i = 1; i <= n; ++ i)
{
if(i == r2) continue;
cout << p[i] << ' ';
} return 0;
}

acwing第75场周赛的更多相关文章

  1. AcWing第85场周赛

    这场周赛是手速局hh 死或生 某国正在以投票的方式决定 2 名死刑犯(编号 1∼2)的生死. 共有 n 组人员(编号 1∼n)参与投票,每组 10 人. 每组成员只参与一名死刑犯的投票,其中第 i 组 ...

  2. AcWing 第11场周赛题解

    计算abc 首先 \(0<=a<=b<=c\) 会随机给出 \(a+b,a+c,b+c,a+b+c\)的值 因为\(a,b,c\)都为正整数,所以\(a+b+c\)一定为最大值 然后 ...

  3. AcWing第78场周赛

    今天想起来了,就补一下吧~ 第一题 商品分类 货架中摆放着 n 件商品,每件商品都有两个属性:名称和产地. 当且仅当两件商品的名称和产地都相同时,两件商品才视为同一种商品. 请你统计,货架中一共有多少 ...

  4. LeetCode-第 166 场周赛

    LeetCode-第 166 场周赛 1281.subtract-the-product-and-sum-of-digits-of-an-integer 1282.group-the-people-g ...

  5. LeetCode 第 165 场周赛

    LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...

  6. LeetCode--第180场周赛

    LeetCode--第180场周赛 1380. 矩阵中的幸运数 class Solution { public: vector<int> luckyNumbers (vector<v ...

  7. Leetcode第 217 场周赛(思维量比较大)

    Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...

  8. 【AcWing】第 62 场周赛 【2022.07.30】

    AcWing 4500. 三个元素 题目描述 给定一个长度为 \(n\) 的数组 \(r\_1,r\_2,-,r\_n\). 请你找到其中的三个元素 \(r\_a,r\_b,r\_c\),使得 \(r ...

  9. Leetcode 第133场周赛解题报告

    今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...

  10. 第二场周赛(递归递推个人Rank赛)——题解

    很高兴给大家出题,本次难度低于上一场,新生的六个题都可以直接裸递归式或者裸递推式解决,对于老生的汉诺塔3,需要找出一般式,后两题分别为裸ST算法(或线段树)/线性DP. 正确的难度顺序为 种花 角谷定 ...

随机推荐

  1. requests高级用法、代理池搭建

    requests高级用法 1.自动携带cookie的session对象 # session对象---->已经模拟登录上了一些网站--->单独把cookie 取出来 import reque ...

  2. 使用SpringBoot+React搭建一个Excel报表平台

    摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 Excel报表平台是一款功能强大.操作简单的系统平台,可 ...

  3. 前后端分离实现注册+登录(Vue3.0 + Django3.2)

    博客地址:https://www.cnblogs.com/zylyehuo/ 一.使用 vite+webstorm 搭建 Vue 环境,构建前端 1.结构树 2.main.js import { cr ...

  4. Maven配置私有仓库

    前言   当公司或个人具有自己独有的jar时,不想公开,一般就会放在自己的私有Maven仓库中,在项目中需要引用,此时就需要将公司私有仓库配置到maven当中,一般我们的maven配置的都是aliyu ...

  5. TypeScript:接口

    介绍 TypeScript的核心原则之一是对值所有的结构类型进行类型检查.在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义约束. 接口的基本使用 interface ...

  6. go 判断文件是否存在,并创建

    1 package main 2 3 import ( 4 "fmt" 5 "os" 6 ) 7 8 //判断文件夹是否存在 9 func PathExists ...

  7. WPF自定义控件之消息提示

    创建消息提示控件 internal class Message : ContentControl { public int Time { get; set; } [Bindable(true)] pu ...

  8. 使用TypeScript类型注解,编写更干净的JS代码

    TypeScript 可以看作是 JavaScript 的超集,不仅包含了 JavaScript 的所有内容,还拓展了语法.规定了类型约束,使得我们可以编写更干净.完整的代码. 类型注解 TypeSc ...

  9. centos7安装influxdb2

    前言 InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读.高性能写.高效存储与实时分析等,广泛应用于DevOps监控.IoT监控.实时分析等场景. 服务器 ...

  10. 【动画进阶】神奇的 3D 磨砂玻璃透视效果

    最近,群友分享了一个很有意思的效果: 原效果的网址:frosted-glass.该效果的几个核心点: 毛玻璃磨砂效果 卡片的 3D 旋转跟随效果 整体透明度和磨砂感.以及卡片的 3D 形态会随着用户移 ...