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

P8186-传递闭包

Redistributing Gifts S

题意简述

有 n 头牛和 n 个礼物,编号为 1,2,3,...,n,初始时每头牛都分到了与它编号相同的礼物。

奶牛们对所有礼物的喜爱程度都有一个排序,且它们想重新分配礼物。如果存在另一种分配方式,使得每头牛都能得到当前的礼物或比它更好的礼物,则它们可能会采用这种方式。

求每头牛可能得到的对它来说最好的礼物。

即求出每一个一个礼物是否可以通过传递来到某个点,考虑传递闭包

#include <bits/stdc++.h>
#define int long long
using namespace std;
constexpr int maxn = 5e2+10;
constexpr int INF = LLONG_MAX>>1;int n;
int pos[maxn];         // 拥有礼物的位置
int wi[maxn][maxn];
bitset<maxn> gra[maxn];// bitset 优化 没那么离谱,也就快了一半
int ans[maxn];signed main()
{#ifndef ONLINE_JUDGEfreopen("1.in","r",stdin);freopen("1.out","w",stdout);#endif // ONLINE_JUDGEscanf("%lld",&n);for(int i=1;i<=n;++i){for(int j=1;j<=n;++j){scanf("%lld",&wi[i][j]);if(wi[i][j]==i){pos[i]=j;}}for(int j=1;j<=pos[i];++j){gra[i][wi[i][j]]=1; // 连 i 到期望的礼物}ans[i]=i;// 已经拥有的礼物}for(int k=1;k<=n;++k){for(int i=1;i<=n;++i){if(gra[i][k]){gra[i] |= gra[k];// 优化}}}for(int i=1;i<=n;++i){for(int j=1;j<pos[i];++j){if(gra[wi[i][j]][i])// 存在i期望的礼物能到i{ans[i]=wi[i][j];break;}}}for(int i=1;i<=n;++i){printf("%lld\n",ans[i]);}return 0;
}
http://www.gsyq.cn/news/45543.html

相关文章:

  • P3623 免费道路 - Kruskal
  • 幂塔问题-扩展欧拉函数
  • 手持贴标机生产源头厂家2025年市场洞察
  • 奶牛抗议-二维偏序优化
  • 4G摄像机国标GB28181接入EasyGBS突然不上线?双网卡智能切换惹的锅!
  • 详细介绍:热门编程语言的排名及开源贡献比例表格-截至2025年10月
  • SQLite 连接串说明
  • 完整教程:深度学习实战:从图像分类到自然语言处理的完整指南
  • 【完整源码+内容集+部署教程】 黄瓜叶片检测系统源码和数据集:改进yolo11-RVB
  • 国产化Word处理控件Spire.Doc教程:使用Java将RTF文件转换为PDF的全面教程
  • 2025年门卫室岗亭源头厂家综合实力榜单:形象岗亭/小区值班岗亭/钢结构吸烟亭源头厂家精选
  • 树莓派性能分析脚本
  • 2025 ICPC 南京站 游记
  • windows客户端配置免密上传代码到gitlab
  • 神级项目,Github 上线封神,BettaFish你不可忽视的多Agent舆情分析神器~~~
  • MyEMS:赋能能源精细化管理的智慧引擎
  • 2025年新型建筑木方源头厂家综合实力榜单:建筑施工模板/覆膜建筑模板/清水覆膜板生产厂家精选
  • 开源能源管理系统:解锁当下能源困局的关键力量
  • 详细介绍:五点法求解相机的相对位姿
  • Gitee:打造本土化技术生态,驱动中国数字化变革新引擎
  • 2025年卫生应急服生产厂家综合实力榜单:卫生应急藏青无领T恤/黑色立领外套/纯棉黑T恤源头厂家精选
  • 2025年11月学习机品牌推荐:家长口碑榜对比十强同步教材与护眼方案
  • Linux crond - Lafite
  • 鸿蒙应用开发实战:应用数据备份恢复
  • 实用指南:[数据结构] 队列实战!火车车厢重排从 0 到 1:缓冲轨巧用 + 可运行代码
  • Kerberos常见工具错误解析与修复指南
  • vim 配置
  • HT-LFCG-3400+,0改版,测试数据贴图
  • C# 基础——async/await 的实现原理与最佳实践
  • 7885