首页 > 其他分享 >2024SCAU暑假集训_1题解(部分,待补充)

2024SCAU暑假集训_1题解(部分,待补充)

时间:2024-07-12 10:11:57浏览次数:17  
标签:std 黑暗 int 题解 爆炸 城齿 2024SCAU 集训

最近我们开始了暑假集训
现在我来补一下第一场集训的题解

题目

题号 来源 是否写了题解
A 黑暗爆炸 4771 否 但是放了大佬的链接指路
B 黑暗爆炸 3399 已写
C 洛谷 P3231
D 洛谷 P2120
E CodeForces 197A
F 洛谷 P1732
G BZOJ 5296
H 黑暗爆炸 1406
I CodeForces 1511C
J 黑暗爆炸 1596
K 洛谷 P2801
L 黑暗爆炸 4176
M 黑暗爆炸 2563

正文

A 黑暗爆炸 4771

题面

Description

给定一棵 \(n\) 个点的有根树,编号依次为 \(1\) 到 \(n\) ,其中 \(1\) 号点是根节点。每个节点都被染上了某一种颜色,其中第 \(i\) 个节点的颜色为 \(c[i]\) 。如果 \(c[i]=c[j]\) ,那么我们认为点 \(i\) 和点 \(j\) 拥有相同的颜色。定义 \(depth[i]\) 为 \(i\) 节点与根节点的距离,为了方便起见,你可以认为树上相邻的两个点之间的距离为 \(1\) 。站在这棵色彩斑斓的树前面,你将面临 \(m\) 个问题。每个问题包含两个整数 \(x\) 和 \(d\) ,表示询问 \(x\) 子树里且 \(depth\) 不超过 \(depth[x]+d\) 的所有点中出现了多少种本质不同的颜色。请写一个程序,快速回答这些询问。

Input

第一行包含一个正整数 \(T(1<=T<=500)\) ,表示测试数据的组数。
每组数据中,第一行包含两个正整数 \(n(1<=n<=100000)\) 和 \(m(1<=m<=100000)\) ,表示节点数和询问数。
第二行包含 \(n\)个正整数,其中第 \(i\) 个数为 \(c[i](1<=c[i]<=n)\) ,分别表示每个节点的颜色。
第三行包含 \(n-1\) 个正整数,其中第 \(i\) 个数为 \(f[i+1](1<=f[i]<i)\) ,表示节点 \(i+1\) 的父亲节点的编号。
接下来 \(m\) 行,每行两个整数 \(x(1<=x<=n)\) 和 \(d(0<=d<n)\) ,依次表示每个询问。
输入数据经过了加密,对于每个询问,如果你读入了 \(x\) 和 \(d\) ,那么真实的 \(x\) 和 \(d\) 分别是 \(x\) \(xor\) \(last\) 和 \(d\) \(xor\) \(last\) ,
其中 \(last\) 表示这组数据中上一次询问的答案,如果这是当前数据的第一组询问,那么 \(last=0\) 。
输入数据保证 \(n\) 和 \(m\) 的总和不超过 \(500000\) 。

Output

对于每个询问输出一行一个整数,即答案。

Sample Input
1
5 8
1 3 3 2 2
1 1 3 3
1 0
0 0
3 0
1 3
2 1
2 0
6 2
4 1
Sample Output
1
2
3
1
1
2
1
1

这题的解法是主席树 但是我不会

先放个其他大佬的链接后面再补吧


B 黑暗爆炸 3399

题面

Description

约翰用沙子建了一座城堡.正如所有城堡的城墙,这城墙也有许多枪眼,两个相邻枪眼中间那部分叫作城齿
城墙上一共有 \(N(1≤N≤25000)\) 个城齿,每一个都有一个高度 \(M~i~(1≤M~i~≤100000)\) .
现在约翰想把城齿的高度调成某种顺序下的 \(B~i~\) , \(B~2~\) ,…, \(B~N~(I≤B~i~≤100000)\) .

  • 一个城齿每提高一个单位的高度,约翰需要 \(X(I≤X≤100)\) 元;
  • 每降低一个单位的高度,约翰需要 \(Y(1≤y≤100)\) 元.

问约翰最少可用多少钱达到目的.数据保证答案不超过 232

Input

第1行输入3个整数 \(N\) , \(X\) , \(Y\) .
第2到N+1行每行输入两个整数 \(M~i~\) 和 \(B~i~\) .

Output

最少花费.

Sample Input
3 6 5
3 1
1 2
1 2
Sample Output
11
Hint

第 \(1\) 个城齿降低 \(1\) ,第 \(2\) 个城齿提高 \(1\)

我的题解

先说结论:签到题
两个数组排序
然后求差值
再分类讨论求和
就行了

一开始我看到城墙的时候
我认为城墙是不可移动的
但是Hint又说:第 \(1\) 个城齿降低 \(1\) ,第 \(2\) 个城齿提高 \(1\)
我以为是那就要这个城齿能和隔壁的城齿交换
想来想去都不对
后面看过的人多了才这么写的
真让人头大

我的代码

#include <iostream>
#include <algorithm>

#define int long long

int t;
const int N = 1e7;
int a[N];
int b[N];

int lcm(int a,int b)
{
    return a*b/gcd(a,b);
}

void solve()
{
    int n,x,y,ans = 0;
    std::cin >> n >>x >> y;
    for(int i = 0 ; i < n ; i ++)
        std::cin >> a[i] >> b[i];

    std::sort(a,a+n);
    std::sort(b,b+n);

    for(int i = 0 ; i < n ; i ++)
    {
        if(a[i] > b[i]) ans += y * (a[i] - b[i]);
        else ans += x * (b[i] - a[i]);
    }

    std::cout << ans << "\n";
}

signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);

	t = 1;
	//std::cin >> t;
	
	while(t--)
	{
		solve();
	}
    return 0;
}
~~~cpp

标签:std,黑暗,int,题解,爆炸,城齿,2024SCAU,集训
From: https://www.cnblogs.com/jiejiejiang2004/p/18297649

相关文章

  • 多线程中自定义线程池与shiro导致的权限错乱问题解决
    importorg.apache.shiro.SecurityUtils;importorg.apache.shiro.subject.Subject;importorg.apache.shiro.util.ThreadContext;importjava.util.concurrent.*;publicclassShiroAwareThreadPoolExecutorextendsThreadPoolExecutor{publicShiroAwareThread......
  • HNU暑假集训-恺撒Caesar密码
    问题的关键是找到密码替换的规则即:密码的第i个字母=原码在字母表后的第五个字母思路:1.先找到密码第i个字母在字母表中的位置s[i]-'A'      2.找到该位置前的第五个字母的在字母表的下标:(26+s[i]-'A'-5)%26聪明的你一定知道为什么先加26,再模26加......
  • Linux创建组和用户groupadd:无法锁定/etc/group问题解决
    问题原因:相关关键文件进行了锁定,不能被访问和修改1.确认是否是使用root用户执行,2.确定文件权限没问题使用lsattr命令查看隐藏权限设定情况[abc@localhost~]$lsattr/etc/group----------------/etc/group[abc@localhost~]$lsattr/etc/passwd----------------/etc/......
  • Codeforces Round #956 (Div. 2)题解
    A.ArrayDivisibility需要让满足$k\midj$的所有\(a_j\)的和整除k,只需要让每个\(a_j\)整除k就可以了,可以让\(a_j=j\)#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineendl'\n'typedefpair<int,int>pii;typedefunsignedlonglo......
  • CF1051F题解
    TheShortestStatement算法:树链剖分,最小生成树,最短路。先讲一下题意:有一个\(n\)点\(m\)边的无向连通图,\(q\)次询问,每次询问\(a\)到\(b\)的最短路长度。数据范围\(1\len,m\le10^5,m-n\le20\)。首先发现给了一个很奇怪的限制:\(m-n\le20\),考虑他有什么用。我们在......
  • 【完结】LeetCode 热题 HOT 100分类+题解+代码详尽指南
    目录LeetCode热题100前言LeetcodeTop100题目和答案-哈希LeetcodeTop100题目和答案-双指针篇LeetcodeTop100题目和答案-滑动窗口篇LeetcodeTop100题目和答案-子串篇LeetcodeTop100题目和答案-普通数组篇LeetcodeTop100题目和答案-矩阵篇LeetcodeTop100题目和......
  • CentOS 乱码问题解决
    首先要区别3个概:编码集、字符集、字体是完全不同的东西,我们要解决的是字符集问题。当一个系统初始化完毕后,会生成一个/usr/lib/locale/locale-archive文件,这个是字符集二进制文件,是系统不同语言运行的核心,通过命令locale-a可以看到当前文件中支持的语言locale命令可以......
  • [题解] [ABC221H] Count Multiset - DP
    [ABC221H]CountMultiset题面翻译输入两个正整数\(N,M\),并存在一个集合,问你一个长度为\(k\)的合法集合存在多少个?你需要回答\(k\)的值为\(1\)到\(N\)的每种情况。一个合法的集合定义指长度为\(k\),元素和为\(N\),每一个数字在集合中出现的次数都小于等于\(M\)的集......
  • CF506D题解
    Mr.Kitayuta'sColorfulGraph算法:根号分治。题目大意先说一下:给一个\(n\)点\(m\)边的无向图,边有颜色。\(q\)组询问,每次给出\(u,v\),求有多少种颜色\(c\),使得存在一条\(u\)到\(v\)的路径,这个路径中每条边的颜色都为\(c\)。先考虑一个朴素的暴力,暴力对每个颜色加边,......
  • UVA12683 Odd and Even Zeroes 题解
    题目简述定义\(\operatorname{count}(num)\)表示\(num\)末尾\(0\)的个数。给出\(n\)(\(n\leq10^{18}\)),求\(\sum\limits_{i=0}^{n}[2\mid\operatorname{count}(i!)]\)。题目分析对于一个\(i\),以下记成\(n\)。\(n!\)末尾\(0\)的个数取决于\(1\simn\)......