当前位置: 首页 > news >正文

题解:P9041 [PA 2021] Fiolki 2

题意

给一个 \(n\) 个点 \(m\) 条边的 DAG 和一个 \(k\),对于一个 \(k < l \le r \le n\) 的区间 \([l, r]\),定义 \(f(l, r)\) 为起点在 \([1, k]\) 且终点在 \([l, r]\) 中的不相交路径组大小的最大值。对于每个 \(i \in [0, k]\),求 \(f(l, r) = i\) 的区间个数。

\(1 \le n \le 10^5\)\(1 \le m \le 10^6\)\(1 \le k \le 50\)

题解

第一反应网络流,但是复杂度无法有效利用 \(k\) 很小的性质。

  • 有没有什么处理不相交路径的方法?

可以想到 LGV 引理。

  • LGV 对 DAG 不相交路径计数计出来的不知道是什么玩意,怎么办?

观察题面,发现我们并不需要计数,直接判定就可以了。一点好处是当没有不相交路径时,LGV 算出来的行列式一定是 \(0\)(因为全部可以构造双射抵消掉)。

  • 有不相交路径时行列式也有可能是 \(0\),怎么办?

可以考虑将每一条边都赋一个随机权值,一条路径的权值就是边权的乘积,那此时行列式就大概率不为 \(0\) 了。

  • 起点和终点是不固定的,你求什么东西的行列式?

\(d_{i, j}\) 表示 \(i\)\(j\) 的所有路径的权值之和,则对于一个向量组:

\[\begin{pmatrix} d_{1, l} & d_{1, l + 1} & \cdots & d_{1, r} \\ d_{2, l} & d_{2, l + 1} & \cdots & d_{2, r} \\ \vdots & \vdots & \ddots & \vdots \\ d_{k, l} & d_{k, l + 1} & \cdots & d_{k, r} \end{pmatrix} \]

存在大小为 \(i\) 的不相交路径组的充要条件是存在一个 \(i\) 阶子式的值不为 \(0\),即他们是线性无关的,也就是他们的秩为 \(i\)。这个条件等价于这个向量组的线性基大小 \(\ge i\)。那么,我们直接暴力做,复杂度就有 \(\mathcal{O}(n^2k^2)\) 了。

  • 太慢了。

使用前缀线性基即可(就是每个基维护时间戳,每次插入尽量选最新的)。复杂度 \(\mathcal{O}(nk^2 + mk)\)。注意不要写假。

int n,m,k,x,y,deg[100005],dis[55][100005],b[55][55],V[55],t[55],ans[55];
vector<pii>v[100005];
queue<int>q;
void insert(int T){fd(i,k,1)if(V[i]){if(!b[i][i]){memcpy(b[i],V,sizeof V),t[i]=T;break;}if(t[i]<T)swap(b[i],V),swap(t[i],T);int tmp=V[i]*qp(b[i][i],mod-2)%mod;fo(j,1,k)cminus(V[j],tmp*b[i][j]%mod);}
}
void solve(){cin>>n>>m>>k;fo(i,1,k)dis[i][i]=1;fo(i,1,m)cin>>x>>y,v[x].push_back({y,rdint(1,mod-1)}),deg[y]++;fo(i,1,n)if(!deg[i])q.push(i);while(q.size()){int x=q.front();q.pop();for(auto[i,w]:v[x]){fo(j,1,k)cplus(dis[j][i],dis[j][x]*w%mod);if(!(--deg[i]))q.push(i);}}fo(i,k+1,n){fo(j,1,k)V[j]=dis[j][i];insert(i);vector<int>tmp;fo(j,1,k)if(t[j])tmp.push_back(t[j]);tmp.push_back(k),sort(tmp.rbegin(),tmp.rend());// debug(i,tmp);fo(j,0,tmp.size()-1)ans[j]+=(j?tmp[j-1]:i)-tmp[j];}fo(i,0,k)cout<<ans[i]<<'\n';
}
http://www.jsqmd.com/news/312604/

相关文章:

  • 顶尖学府与科技中心联合发布AI研究基金与学者奖项
  • 第一次申请博客,没想到很快就通过了
  • 如何一定需要使用电脑进行拍照,但是电脑像素太差怎么办
  • React Server Components (RSC) 协议中的高危漏洞:CVE-2025-55182 技术剖析
  • 实战抄作业:使用 Claude Code 将 10 万行 TypeScript 代码移植到 Rust
  • 数据驱动,优选未来:2026年1月空气治理/甲醛检测/除甲醛/空气检测/四川甲醛治理服务商选购指南
  • 2026机场与健身房商用全自动咖啡机推荐 商用设备适配高需求场景
  • 2026年 辽宁建筑资质代办服务推荐榜:涵盖升级/增项/延期/转让等全流程,专业高效助力企业合规发展
  • 手把手玩转CNN-BiLSTM-Attention分类模型
  • 设计模式学习(21) 23-20 解释器模式
  • 总结2026年企业和文化团建活动服务靠谱的十大公司
  • 2026年上海木暖地板行业口碑排名揭晓,木暖世家等品牌值得关注
  • LuatOS框架的使用
  • 2026年高性价比法律检索系统推荐,北京靠谱软件排名情况
  • 2026年苏州生鲜行业口碑排名,途一鲜规模、实力、性价比全解析
  • 2026年河北医院设计服务靠谱公司盘点,看哪家性价比高
  • 中电金信:【AI智变】化身“质检员”,AI让客服质检更智能、更高效
  • 2026年有哪些中药提取物厂家TOP5靠谱推荐 排毛球/去泪痕植物原料哪家好
  • Vmware安装contros9的linux镜像
  • 2026年度“真香”之选:爱果乐千元级人体工学椅,性价比天花板再升级
  • PackageManagerService 简析
  • 2026年辽宁资质代办服务推荐榜:监理/设计/电力/市政/水利/勘察/施工/劳务/特种工程等全类别资质专业代办,高效合规助力企业升级
  • 2026 年净化板、净化工程、C 型钢、光伏夹芯板、光伏岩棉板五大优质供应商甄选 实力品牌助力工程建设
  • 【苏州高薪急聘】自动化机械设计师:挑战柔性抓取技术新蓝海 | 省级专精特新企业,定义工业4.0末端执行器
  • 细聊国内有轨电车个性化定制,新阳光价格多少钱
  • 2026年变压器组件抓取方案选型指南
  • 如何选择丰台科技园区写字楼租赁服务商,高性价比场地在哪
  • 东北麻辣烫加盟服务哪家好,结合地区给点建议
  • 2026年 美术培训机构推荐榜:十大画室实力解析,专业师资与升学口碑深度测评
  • 总结好用的铜箔软连接厂推荐哪家