洛谷题面传送门

一道需要发现一些简单的性质的中档题(不过可能这道题放在省选 D1T3 中偏简单了?)

u1s1 现在已经是 \(1\text{s}\)​ \(10^9\)​ 的时代了吗?落伍了落伍了/ll

首先我们考虑 \(f(i,G)\)​ 是个什么东西,显然对于 \(x>i\)​ 的 \(x\)​ 肯定就不可能有贡献了对吧,因为扫描到 \(x\)​ 时 \(i\)​ 已经从图中删去了,而扫描到 \(i\)​ 时答案肯定会有 \(1\)​ 的贡献,因此我们不妨先给所有 \(h(G_i)\)​ 都加上 \(n\)​,然后只考虑 \(x<i\)​ 的 \(x\)​ 的贡献即可。思考什么情况下当我们删到 \(x\)​ 时 \(x\to i\)​ 和 \(i\to x\) 都存在​,经过一番观察可以发现以下性质:

Observation. 删到 \(x\)​ 时 \(x\to i\) 和 \(i\to x\) 的路径都存在,当且仅当存在 \(x\to i\) 和 \(i\to x\) 的路径只经过编号 \(\ge x\) 的点。

证明:充分性显然。必要性等价于如果不存在 \(x\to i\)​ 或 \(i\to x\)​ 的路径只经过编号 \(\ge x\)​ 的点,那么必然删到 \(x\)​ 时 \(x\to i\)​ 和 \(i\to x\)​ 中的一者不存在。考虑数学归纳,假设命题对 \(x'\le x\)​ 均成立,那么从 \(x-1\)​ 推到 \(x\)​ 时我们采取反证法,假设 \(x\to i\)​ 和 \(i\to x\)​ 二者在考虑到 \(x\)​ 时都存在,但是不存在 \(x\to i\)​ 和 \(i\to x\)​ 的路径只经过编号 \(\ge x\)​ 的点,那么你任取一对此时没有被删掉的 \(x\to i\)​ 和 \(i\to x\)​ 的路径,它们路径上编号最小的点必然是 \(<x\)​ 的,我们假设这个点为 \(y\)​,那么显然存在 \(y\to x,x\to y\) 的路径,而由于 \(y\) 是 \(x\to i\) 和 \(i\to x\) 路径上编号最小的点,\(y\to x\) 和 \(x\to y\) 路径上点的编号必然都 \(>y\),有归纳假设 \(y\) 此时肯定已经被删除了,矛盾。

有了这个性质之后解题就异常方便了,我们考虑预处理出 \(g_{x,y}\) 表示在所有 \(x\to y\) 的满足不经过编号 \(<\min(x,y)\) 的点的路径中,经过的边的编号的最小值最大是多少,那么不难发现对于一对点 \((x,y)(x<y)\) 而言,它只可能对满足 \(i\le\min(g_{x,y},g_{y,x})\) 的 \(h(G_i)\) 产生 \(1\) 的贡献,差分一下转化为后缀和即可。那么怎么求 \(g_{x,y}\) 呢?我们考虑从大到小枚举中转点 \(z\ge\min(x,y)\),用类似于 Floyd 的方式,取 \(\min(g_{x,z},g_{z,y})\) 更新答案即可。

时间复杂度 \(\mathcal O(n^3+m)\),略微有点卡常。

const int MAXN=1000;
const int MAXM=2e5;
const int INF=0x3f3f3f3f;
int n,m,mx[MAXN+5][MAXN+5],c[MAXM+5];
int main(){
scanf("%d%d",&n,&m);
for(int i=1,u,v;i<=m;i++) scanf("%d%d",&u,&v),chkmax(mx[u][v],i);
for(int i=1;i<=n;i++) mx[i][i]=INF;
for(int k=n;k;k--) for(int i=1;i<=n;i++) for(int j=1;j<=((i<=k)?n:k);j++)
chkmax(mx[i][j],min(mx[i][k],mx[k][j]));
// for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) printf("%d%c",mx[i][j]," \n"[j==n]);
for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) c[min(mx[i][j],mx[j][i])]++;
c[m+1]=n;for(int i=m+1;i;i--) c[i-1]+=c[i];
for(int i=1;i<=m+1;i++) printf("%d%c",c[i]," \n"[i==m+1]);
return 0;
}

洛谷 P7516 - [省选联考 2021 A/B 卷] 图函数(Floyd)的更多相关文章

  1. [省选联考 2021 A/B 卷] 图函数

    考虑到一件事情首先\(u -> u\)是可行的. 所以其实对于\(f(u,G')\) 只要考虑\([1,u]\)的点. 那么考虑其条件等价于\(u -> i\) 和 \(i -> u ...

  2. 洛谷 P7520 - [省选联考 2021 A 卷] 支配(支配树)

    洛谷题面传送门 真·支配树不 sb 的题. 首先题面已经疯狂暗示咱们建出支配树对吧,那咱就老老实实建呗.由于这题数据范围允许 \(n^2\)​ 算法通过,因此可以考虑 \(\mathcal O(n^2 ...

  3. 洛谷 P7515 - [省选联考 2021 A 卷] 矩阵游戏(差分约束)

    题面传送门 emmm--怎么评价这个题呢,赛后学完差分约束之后看题解感觉没那么 dl,可是现场为啥就因为种种原因想不到呢?显然是 wtcl( 先不考虑"非负"及" \(\ ...

  4. [省选联考 2021 A/B 卷] 卡牌游戏

    垃圾福建垫底选手来看看这题. 大家怎么都写带 \(log\) 的. 我来说一个线性做法好了. 那么我们考虑枚举 \(k\) 作为翻转完的最小值. 那么构造出一个满足条件的操作,我们在 \(a_i\) ...

  5. 洛谷P6623——[省选联考 2020 A 卷] 树

    传送门:QAQQAQ 题意:自己看 思路:正解应该是线段树/trie树合并? 但是本蒟蒻啥也不会,就用了树上二次差分 (思路来源于https://www.luogu.com.cn/blog/dengy ...

  6. 洛谷 P6624 - [省选联考 2020 A 卷] 作业题(矩阵树定理+简单数论)

    题面传送门 u1s1 这种题目还是相当套路的罢 首先看到 \(\gcd\) 可以套路地往数论方向想,我们记 \(f_i\) 为满足边权的 \(\gcd\) 为 \(i\) 的倍数的所有生成树的权值之和 ...

  7. [题解] LOJ 3300 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题 数学,第二类斯特林数,下降幂

    题目 题目里要求的是: \[\sum_{k=0}^n f(k) \times X^k \times \binom nk \] 这里面出现了给定的多项式,还有组合数,这种题目的套路就是先把给定的普通多项 ...

  8. [省选联考 2021 A/B 卷] 宝石

    大概是一眼看出来是这个给定序列在树上序列上按顺序跑最大匹配. 然后考虑维护向上和向下的链的值. 大概的做法是用倍增维护,考虑\(f_{u,i}\)是\(c_u\)在序列里的位置向后匹配\(2^i\)位 ...

  9. 题解 P6622 [省选联考 2020 A/B 卷] 信号传递

    洛谷 P6622 [省选联考 2020 A/B 卷] 信号传递 题解 某次模拟赛的T2,考场上懒得想正解 (其实是不会QAQ), 打了个暴力就骗了\(30pts\) 就火速溜了,参考了一下某位强者的题 ...

随机推荐

  1. springboot 事务执行全流程分析

    springboot 事务执行全流程分析 目录 springboot 事务执行全流程分析 1. 事务方法执行前的准备工作 2. 业务代码的调用 3. 事务方法执行后处理 4. 业务代码在事务和非事务中 ...

  2. CentOS 文本编辑器

    目录 1.Nano 1.1.基础命令 1.2.快捷操作 1.3.配置文件 2.Vim 2.1.四大模式 2.2.基础命令 2.3.标准操作 2.4.高级操作 2.5.配置文件 Linux 终端的文本编 ...

  3. kivy画个半圆

    from kivy.uix.boxlayout import BoxLayout from kivy.app import App class BoxLayoutWidget(BoxLayout): ...

  4. Prometheus之告警规则的编写

    Prometheus之告警规则的编写 一.前置知识 二.需求 三.实现步骤 1.编写告警规则 2.修改prometheus.yml执行告警规则的位置 3.配置文件截图 4.页面上看告警数据信息 5.查 ...

  5. mil,mm与inch之间的转换

    inch:英寸 mil:密耳 mm:毫米 cm:厘米 1mil=0.0254mm=25.4um 1mm=39.37mil 1inch=1000mil=25.4mm=2.54cm(公分) /////// ...

  6. Java并发:重入锁 ReentrantLock(一)

    ReentrantLock 是一种可重入的互斥锁,它不像 synchronized关键字一样支持隐式的重进入,但能够使一个线程(不同的方法)重复对资源的重复加锁而不受阻塞. ReentrantLock ...

  7. HCNP Routing&Switching之BGP路由属性和优选规则

    前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...

  8. gawk使用方法简介

    转载:gawk 使用方法简介 - 简书 (jianshu.com) gawk 是最初 Unix 系统上 awk 程序的 GNU 版本.相对于作为流式编辑器的 sed 而言,它提供了更为强大的编程语言特 ...

  9. CPU使用率和平均负载

    转载: https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&mid=2247487782&idx=3&sn=3f04bb053d ...

  10. Register Abstraction(9)

    This post will explain how to use the UVM Register Abstraction Layer (RAL) to generate register tran ...