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

【最短路+状压】CF1846 G

Problem - G - Codeforces

题意:

思路:

Code:

#include <bits/stdc++.h>//#define int long longusing namespace std;const int mxn=1e6+10;
const int mxv=1e6+10;
const int mxe=2e3+10;
const int mod=1e9+7;
const int Inf=0x3f3f3f3f;struct ty2{int x,dis;bool operator<(const ty2&a)const{return a.dis<dis;}
};priority_queue<ty2> Q;int N,M,st=0;
int d[mxn],e[mxn],se[mxn];
int vis[(1<<10)+10],dis[(1<<10)+10];char x;void dij(){memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));dis[st]=0;Q.push({st,0});while(!Q.empty()){auto u=Q.top();Q.pop();if(vis[u.x]) continue;vis[u.x]=1;for(int i=1;i<=M;i++){int w=d[i];int v=((u.x&(~e[i]))|se[i]);if(dis[v]>dis[u.x]+w){dis[v]=dis[u.x]+w;Q.push({v,dis[v]});}}}
}
void solve(){st=0ll;while(!Q.empty()) Q.pop();cin>>N>>M;for(int i=1;i<=M;i++){d[i]=e[i]=se[i]=0;}for(int i=0;i<N;i++){cin>>x;st|=((x=='1')<<i);}for(int i=1;i<=M;i++){cin>>d[i];e[i]=se[i]=0;for(int j=0;j<N;j++){cin>>x;e[i]|=((x=='1')<<j);}for(int j=0;j<N;j++){cin>>x;se[i]|=((x=='1')<<j);}}dij();if(dis[0]==Inf) cout<<-1<<'\n';else cout<<dis[0]<<'\n';
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int __=1;cin>>__;while(__--)solve();return 0;
}

 

http://www.lryc.cn/news/94653.html

相关文章:

  • vue+elementui实现英雄联盟道具城
  • ruby注释
  • 2023(WAIC)智能驾驶科技峰会丨拓数派大模型下的数据计算系统,助力汽车智能化产业数据增值
  • 牛客周赛 Round 2
  • Git 命令提交和分支控制
  • 2023 node 接入腾讯云短信服务,实现发送短信功能
  • Devops系列四(使用argocd部署java应用到k8s容器)
  • 如何在Microsoft Excel中进行不连续区域批量填充
  • k8s+springboot+CronJob 定时任务部署
  • Spring5 中更优雅的第三方 Bean 注入
  • Yolov5-Face 原理解析及算法解析
  • 通俗易懂讲解CPU、GPU、FPGA的特点
  • PIC18 DataRAM 笔记
  • 【FFMPEG】AVFilter使用流程
  • 爬虫入门06——了解cookie和session
  • Ubuntu 的移动梦醒了
  • RabbitMQ的集群
  • 超长上下文处理:基于Transformer上下文处理常见方法梳理
  • ChatGPT爆火 但生成式AI并非全新产物
  • 深度学习循环神经网络
  • 如何规范的设计数据库表
  • 【CSS】跳动文字
  • arm海思启动udev的错误
  • 网络协议与攻击模拟-15-DNS协议
  • ChatGPT将改变教育,而不是摧毁它
  • springboot在线考试
  • C国演义 [第三章]
  • 数字化时代,企业的数据指标体系
  • 三分钟了解 RocketMQ消息队列
  • golang redis第三方库github.com/go-redis/redis/v8实践