题解:P10537 [APIO2024] 九月

题意

在一个树上,在 \(k\) 天内有 \(n-1\) 个节点掉落,会有 \(m\) 个记录者记录掉落的情况,每一天每一个人会以任意的顺序记录当天的掉落情况,求出 \(k\) 的最大值。

思路

根据题意可以得到,判断区间 \([l,r]\) 是否合法,有两个必要的条件。

  • 区间 \([l,r]\) 必须在 \(m\) 个人的记录集合中相等。
1 2 3
1 2 4

以上样例就不合法。

  • 区间 \([l,r]\) 删除后仍然可以构成一棵树。

第一个性质完全可以用 Hash 来判断。

第二个性质可以使用扫一圈判断每一个节点还有多少个节点未掉,最后判断一下即可。

AC code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n, m;
int solve(int nn, int mm, vector<int>FA, vector<vector<int>>SA) {
//初始化
n = nn - 1, m = mm;
int ans = 0;
vector<int>f(n + 1);
vector<vector<int>>s(m + 1, vector<int>(n + 1));
vector<vector<int>>p(m + 1, vector<int>(n + 1));
vector<pair<ll,ll >>has(m+1);
vector<vector<bool>>vis(m+1,vector<bool>(n+1));
vector<int>cnt(m+1); for (int i = 1; i <= n; ++i) f[i] = FA[i];
for (int i=1;i<= m; ++i) for (int j=1;j<=n;++j) s[i][j]=SA[i-1][j-1];
for(int i=1;i<=m;++i) for(int j=1;j<=n;++j) ++p[i][f[j]]; for (int j = 1; j <= n; ++j) {
//判断构成的集合相等
for (int i = 1; i <= m; ++i) has[i].first += s[i][j], has[i].second += (ll)s[i][j] * s[i][j],vis[i][s[i][j]]=1;//Hash
bool flag = 1;
pair<ll, ll>q = has[1];
for (int i = 2; i <= m; ++i) {
if (has[i] != q) {
flag = 0;
break;
}
} //判断是否可以构成一棵树
for (int i = 1; i <= m; ++i) if (p[i][s[i][j]]) ++cnt[i];
for (int i = 1; i <= m; ++i) {
--p[i][f[s[i][j]]];
if (!p[i][f[s[i][j]]] && vis[i][f[s[i][j]]]) --cnt[i];
} for (int i = 1; i <= m; ++i) flag &= !cnt[i];
if (flag) ++ans;//全部符合
}
return ans;
}

题解:P10537 [APIO2024] 九月的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. SDL入门

    本篇主要用于记录SDL2.0.22的基本用法,参考别人的代码,并加了注释方便理解这些api 以下两个demo可以在VS中编译并运行,代码参考 SDL视频显示_奋斗吧!骚年!的博客-CSDN博客 1.S ...

  2. Android 12(S) MultiMedia(十二)MediaCodecList & IOmxStore

    这节来了解下MediaCodecList相关代码路径: frameworks/av/media/libstagefright/MediaCodecList.cpp frameworks/av/medi ...

  3. Json.Net Deserialize a Collection from BSON

    Deserialize a Collection from BSON (newtonsoft.com) This sample sets ReadRootValueAsArray to true so ...

  4. OSGQt编译安装

    OSGQt编译安装 效果演示 1.准备工作 最新版的osg中不附带osgQt源码,所以需要单独下载编译 在编译osgQt前需要先编译osg源码,osg编译安装看这里 编译osgQt的环境与之前编译os ...

  5. FreeRTOS例程开发

    环境配置 下载官方源码 https://www.freertos.org/ 找到这个,他就是visual studio示例demo,我们主要在这个的基础上修改 下载visio studio https ...

  6. 一文了解JVM面试篇(上)

    Java内存区域 1.如何解释 Java 堆空间及 GC? 当通过 Java 命令启动 Java 进程的时候,会为它分配内存.内存的一部分用于创建 堆空间,当程序中创建对象的时候,就从对空间中分配内存 ...

  7. 【技巧】JS代码这么写,前端小姐姐都会爱上你

    前言 缘由 JS代码小技巧,教你如何守株待妹 你想听的故事: 顶着『前端小王子』的称号,却无法施展自己的才能. 想当年本狗赤手空拳打入前端阵地,就是想通过技术的制高点来带动前端妹子.奈何时不待我,前端 ...

  8. 在 Excel 中使用 Python 自动填充公式

    安转Python包的国内镜像源 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple 阿里云 https://mirrors.aliyun.com/pypi/si ...

  9. 地址栏hash模式以?问号分割也可以分割的

    可以看到href里面hash没有? 但是还是以?分割了 就很不明白 但是我就indexof判断有没有? 再进行下一步逻辑 这里记录一下坑

  10. 硬件开发笔记(十七):RK3568底板电路串口、485、usb原理图详解

    前言   原理图有一些常用电路.  本篇就将集中常用电路分析完,如uart口,涉及usart串口.rs485.usb口.   串口   串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接 ...