Senior Pan HDU - 6166 最短路+思维

从零到一:手把手教你用DJI E-Port套件为M350 RTK开发第三方负载(PSDK V3实战) 本文详细介绍了如何使用DJI E-Port套件为M350 RTK开发第三方负载,涵盖硬件配置、开发环境搭建及实战应用。通过PSDK V3开发套件,开发者可以高效实现负载与无人机的通信,适用于电力巡检等工业场景,提升开发效率与系统稳定性。 阅读详情

题目链接https://vjudge.net/problem/HDU-6166

参考http://blog.youkuaiyun.com/qq_33362864/article/details/77494173

题意:给一个有向图,n个点,m条边。给k个其中的点,求这k个点相互之间的路径值的最小值是多少。

这道题最难想到的是对这k个点进行划分,这里方法是这样的:

将这k个点用二进制来划分。首先两个不相同的数,其二进制一定有一位是不同的。根据这种特性,将某一位上为0的分到一个集合,为1的分到另外一个集合,求一次多源最短路。那么100000就是2^17就够了,也就是17次最短路。
这个地方的这种枚举非常厉害。。。

int ans;
int a[N],n,m,k;
int dist[N],inq[N],fst[N],nxt[N<<1],to[N<<1],cost[N<<1];
int e;
void add(int u,int v,int c){
    cost[e]=c;to[e]=v;nxt[e]=fst[u];fst[u]=e++;
}
void spfa(){
    queue<int>q;
    mem(inq,0);
    for(int i=1;i<=k;++i){
        inq[a[i]]=1;q.push(a[i]);
    }
    while(!q.empty()){
        int u=q.front();q.pop();
        inq[u]=0;
        for(int i=fst[u];~i;i=nxt[i]){
            int v=to[i];
            if(dist[v]>dist[u]+cost[i]){
                dist[v]=dist[u]+cost[i];
                if(!inq[v]){
                    inq[v]=1;q.push(v);
                }
            }
        }
    }
}
int cas;
void solve(){
    for(int i=1;i<=17;++i){
        int bit=(1<<(i-1));
        mem(dist,inf);
        for(int j=1;j<=k;++j){
            if(a[j]&bit){ dist[a[j]]=0; }
        }
        spfa();
        for(int j=1;j<=k;++j)
            if(!(a[j]&bit))ans=min(ans,dist[a[j]]);

        mem(dist,inf);
        for(int j=1;j<=k;++j){
            if(!(a[j]&bit))dist[a[j]]=0;
        }
        spfa();
        for(int j=1;j<=k;++j)
            if(a[j]&bit)ans=min(ans,dist[a[j]]);
    }
    pf("Case #%d: %d\n",++cas,ans);
}

void init(){
    mem(fst,-1);e=0;
}

int main(){
    cas=0   ;
    int T;sf("%d",&T);
    while(T--){
        init();
        ans=inf;
        sf("%d%d",&n,&m);
        rep(i,1,m){
            int u,v,c;sf("%d%d%d",&u,&v,&c);
            add(u,v,c);
        }
        sf("%d",&k);
        rep(i,1,k){ sf("%d",&a[i]); }
        solve();
    }
}

Ubuntu开机进入initramfs,解决办法来了! 摘要:Ubuntu系统启动时卡在initramfs界面,表明系统无法正常挂载根文件系统。常见原因包括引导配置错误、文件系统损坏、驱动程序问题和硬件故障。解决方法包括:1)使用fsck修复文件系统;2)通过dmesg排查驱动问题;3)检查硬盘等硬件状态;4)重新安装GRUB引导程序。建议做好系统备份等预防措施,遇到问题时按步骤排查。该问题通常可通过文件系统修复或引导配置重建解决。(148字) 阅读详情

相关推荐

ElasticSearch读写性能调优

深层次理解,虽然是每隔一秒就会将内存中的segment数据刷新到segment file中,但实际上这里并没有直接到磁盘文件,而是先写入到OS Cache中。以refresh_interval为间隔时间,将保存在ES 内存缓存区中的数据 刷新到 os的文件系统缓存中,定期清空es的buffer,生成segment。注意:ES 的默认设置,已经综合考虑了数据可靠性,搜索的实时性,写入速度,一般不要盲目修改。将segment刷新到os cache中,并开放了查询权限,以提升搜索的实时性。

qq_44027353的博客 1811

hdu6166-最短路&二进制枚举-Senior Pan

http://acm.hdu.edu.cn/showproblem.php?pid=6166 给定一个有向图,再给你一个集合。问这些集合中 两个点之间相互的最短路距离最小是多少。 思路:集合中每个数二进制都有一位不相同, 所以通过枚举二进制可以保证 包含了所有 两两枚举的情况。 然后dij的思路 就是通过 贪心+集合+有限的松弛操作 来搞事情的。 所以也可以计算集合之间的最短路,(学了一招

天与云与山与水 398

草莓成熟度与叶片病虫害智能检测数据集应用全解析

本文深入解析草莓成熟度与叶片病虫害智能检测数据集的应用价值,涵盖从绿草莓到红果转色的完整成熟周期及白粉病、炭疽病等7种病害的精准识别。通过实战案例展示如何提升病害识别率至94%,并介绍数据集的科研价值,包括跨品种迁移学习和多模态数据融合技术。

weixin_28366353的博客 274

hdu6166 最短路

传送门 题意:在一个有向图中,选出K个点,问任意两个点的最短距离中 最小的那个是多少。 因为K太大了,不能枚举任意两个点的距离,所以需要一些技巧,分组!,将所有点分成两组,设为A,B组,那么我们用优先队列求解,初始把所有A组点加入队列,以远离初始点距离最短的优先,A组中所有点一旦走到B组任意一个点,便找到了从A组到B组的一条最短路,我们要做的关键地方是分组,如何使得任意两个点都有一次机会不在同一

猿的进化 649

STM32 使用rtthread的DMA 串口发送失败

在一次使用RTthread的DMA 串口发送时,持续性通过DMA 发送串口数据时,偶发发送过程中后续数据包无法正常发送出去,后经查,发现为RT-Thread的串口中断处理有瑕疵,后做出修改。另,为了更方便的排查为题,建议修改。左为修改前,右为修改后。

qq_39294918的博客 1108

SDI-12协议与STM32 进行uart通信

其中DIR_OUT_SDI是一个IO引脚,控制UART_TX_SDI是否使能,U10是三态门IC,即拉低DIR_OUT_SDI使能stm32输出,拉高DIR_OUT_SDI失能输出,串口配置8位数据位,偶校验,1位停止位,1200波特率。示波器测试得到传感器的应答信号如下:第一个是唤醒信号,拉高电平13毫秒,之后保持20毫秒低电平,第二个数据帧是激活信号,即ascii码: "0!",第三个是传感器的应答信号:"0\r\n"

weixin_42186805的博客 4401

HDU - 6166

题目链接:HDU - 6166 显然,如果我们把K个点可以分成两组,那么我们直接最短路就可以求出一组到另一组之间的最短路。 所以我们怎么分组才能尽量少的分组,使得任意两点一定会某一时刻存在不同集合呢?二进制分组。只需要分组log次。 然后因为是,有向图,分组的两种情况都需要跑一次最短路。 这个是稀疏图,spfa会比Dijkstra快很多。 AC代码: #pragma GCC optimize(...

青烟绕指柔的博客 634

uniapp - 实现安卓App打包上架应用商店详细教程,详解Hbuilder打包编译apk发布上传到应用市场全流程,提供uniApp云打包、离线打包app、原生本地打包,附带APP备案和安卓证书申请

uni-app,安卓,APP,应用商店,打包编译apk,上架到应用市场,如何打包app并发布到主流应用市场,发布为AndroidApp流程,应用备案,如何申请安卓证书,hbuilder发布安卓apk后怎么上传到各家软件商店,创建app证书,uniapp发行原生APP本地打包安卓APK,详细最全的步骤教程,项目打包成apk,云打包,安心打包,安卓app离线打包,一直审核不通过,被拒绝,不符合规范,上架发布失败,申请安卓证书和获取证书信息,uni-app打包发布安卓Android软件到各大应用商店,腾讯应用

🏆 前端领域优质创作者 1万+

[HDU 6166] Senior Pan

题目大意: 给出一个n个点m条边的有向图, 询问k个点中两两最短路的最小值。 (n,m,k≤105n, m, k \leq 10^5)思路1: 先建k个新点,依次复制k个点的出边, 用着k个新点做多源最短路, 由于这样做可能得到自己到自己的非法答案, 所以最短路时需要维护两种起点不同的最短路和次短路。思路2:考虑最终的答案是u->v的最短路, 对于两个不同的编号, 它们的二进制至少又一个位上不同的,

zhysora的博客 406

uniapp [微信小程序] - 详解微信小程序端接入mqtt全流程及示例源码教程,uniApp微信小程序端如何接入MQTT插件并实现连接/断开+发布订阅+消息队列+离线重连等各种示例代码(开箱即用)

uniapp微信小程序接入MQTT,uniapp中使用mqtt,uniapp 微信小程序端接入mqtt示例代码教程,适用于微信小程序的MQTT插件,uniapp开发微信小程序连接mqtt,uniApp微信小程序接入MQTT协议,uniapp vue3微信小程序使用MQTT的小例子接入流程,使用uniapp开发小程序接入mqtt,如何在uniapp项目中使用mqtt,uniapp mqtt的使用示例,mqtt连接报错,如何在项目里集成mqtt,Mqtt协议,主动连接mqtt,订阅消息,实现发布,订阅和接收消息

🏆 前端领域优质创作者 2881

045、镜头模组公差链分析:从 Lens 到 Sensor 的装配公差累积与良率优化

本文深入分析了镜头模组从镜片到传感器各环节的公差累积问题及优化策略。文章首先剖析了四级公差链(镜片单体、镜筒装配、VCM定位、传感器贴装)的误差传递机制,指出各环节典型公差值及其影响(如5微米镜片偏差可导致0.02度光线偏折)。其次对比了最坏情况法与均方根法的差异,强调需考虑公差相关性(如镜片曲率与镜筒间隙的正相关性)。最后提出良率优化"三板斧":通过蒙特卡洛仿真优化公差分配、采用主动对准工艺在线补偿、建立数据反馈闭环系统,并结合"阴阳脸"案例说明如何定位根因(模具磨损+贴片机老化导致的误差叠加)。作者总结

sundong_81的博客 59

【题解】HDU6166:Senior Pan

原题传送门 这是一种

ModestCoder_的博客 419

2022年12月机器人技术等级考试试卷(三级实操) 试题解析

2022年12月机器人技术等级考试试卷(三级实操) 试题解析

http://www.cierobot.com 1522

HDU 6166 Senior Pan(思维 最短路)

题目:点击打开链接 题意:给一个有向图,n个点,m条边。给k个其中的点,求这k个点相互之间的路径值的最小值是多少。 思路:如果是暴力枚举这k个点到其他k-1个点的最短路取最小值一定是超时的。 正确做法是每次将k个点划分成两个集合,求这两个集合的最短路,取最小值。划分的方法应该保证这k个点均相互求过最短路,且划分次数不应太多以免超时。 这道题最难想到的是对这k个点进行划分,这里方法是这样的:

Code change the World. 407

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HDU 6166 Senior Pan (思维枚举+最短路 求最近点对)

Senior Pan Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 898    Accepted Submission(s): 361 Problem Description Senior Pan fai

K键盘里的青春K 1166

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Hdu 6166 Senior Pan【思维+随机化+最短路】好题~

Senior Pan Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 81    Accepted Submission(s): 15 Problem Description Senior Pan fails

mengxiang000000 887

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

2017 Multi-University Training Contest 9 && HDU 6166 Senior Pan 【最短路+思维】

2017 Multi-University Training Contest 9 && HDU 6166 Senior Pan 【最短路+思维】 SeniorPan fails in his discrete math exam again. So he asks Master ZKC to give himgraph theory problems everyday. The task is simple : ZKC will give Pan a directed graph every time,

Dust_heart的博客 442

hdu 6166 Senior Pan

http://acm.hdu.edu.cn/showproblem.php?pid=6166 题意: 给出一张无向图,给定k个特殊点 求这k个特殊点两两之间的最短路 二进制分组 枚举一位二进制位 这一位为1的放到起点集合 这一位为0的放到终点集合 跑一遍两个集合间的最短路 因为是有向图,反过来再跑一遍 正确性分析: 设最优解是x和y间的最短路 若x和y被分...

weixin_34293141的博客 154

hdu-6166(最短路+二进制分组)

题意:给你n个点m条边的有向图,然后再给你k个不同的点,问你这k个点的最小距离; 解题思路:这道题最需要注意的就是k个点一定是不同的,那么有一个结论就是任意两个不同的数字中,在他们的二进制地表示中,一定有一位是不同的,这样,我们就可以按照这个规律,把这些数字分成两组,按他们的二进制在某一位是0或者1分组,然后对每一位都跑一次最短路,这里的数据的二进制不超过20位 #include<i...

weixin_30919919的博客 271

HDU 6166 Senior Pan

Senior Pan fails in his discrete math exam again. So he asks Master ZKC to give him graph theory problems everyday. The task is simple : ZKC will give Pan a directed graph every time, and selects some

樱花满地集于我心,楪舞纷飞祈愿相随 707

hdu6166(xjb迪杰斯特拉)

类比cf 835E,枚举二进制位按照标号当前位为1 和当前位为0分为两个集合,每次求解两个集合之间的最短路即可覆盖到所有的点对。时间复杂度20*dijstla时间 G++ AC c++会超时。 #include #include #include #include using namespace std; typedef long long ll; const ll inf = 0x3f3

constbh的博客 395

HDU 6166 && 2017 多校训练:Senior Pan(最短路)

题意: 有一张n个点m条边的有向图,还有一个包含k个点的点集,求出这个点集中任意两点间最短路的最小值 官方题解看不懂。。 如果一条边的两个端点都在这个集合中,就将这条边直接删掉(中间记录下最小值)以后不会再用 之后就可以愉快的SPFA了,len[i]表示到i点的最短路 随便设集合中的一个点x1为起点,令len[x1]=0然后求最短路,跑完之后记录所有的len[xi] (xi>1

加载中... 1178

Senior Pan(最短路+二进制分组)

题目链接 Problem Description Senior Pan fails in his discrete math exam again. So he asks Master ZKC to give him graph theory problems everyday. The task is simple : ZKC will give Pan a directed graph every time, and selects some nodes from that graph, you can

linjiayina的博客 453

HDU6166Senior Pan(顶点子集最短路径-二进制划分集合)

搬运大佬的博客:http://blog.youkuaiyun.com/calabash_boy/article/details/77487605 题解: 回想最短路算法,首先排除掉N^3的的那个,然后剩下SPFA和Dijkstra跑多次的复杂度比较能接受,这两个其实是差不多的东西,由于边权都是正的,就上Dijkstra吧。 基础版的Dijkstra是单源多汇的,但是本题是多源多汇

Rain 677

hdu 6166 Senior Pan 最短路

Senior Pan Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 179    Accepted Submission(s): 45 Problem Description Senior Pan fail

overload1997 1778

Senior Pan HDU - 6166 (最短路咯)

Senior Pan fails in his discrete math exam again. So he asks Master ZKC to give him graph theory problems everyday. The task is simple : ZKC will give Pan a directed graph every time, and selects som

Coldfresh的博客 633
上一篇: Ch’s gift HDU - 6162 树链剖分
下一篇: 一道关于进制的思维题
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值