题目:E. Railway System

考点:最小生成树kruskal、交互

题意:现有 n n n 个点 m m m 条边的无向图,一共可提出 2 m 2m 2m 次疑问,提问方式为每次输出一个长度为 m m m 由字符 1 / 0 1/0 1/0 组成的字符串 s s s , s [ i ] = 0 s[i] = 0 s[i]=0 表示第 i i i 条边不存在, s [ i ] = 1 s[i] = 1 s[i]=1 表示第 i i i 条边存在。系统会给出由当前边所组成的最大森林(边权之和最大的森林),我们需要在 2 m 2m 2m 次提问中找出由所有边所构成的最小生森林((边权之和最大的森林))。

思路:题目是要求为求森林的值,在讨论的时候可以化繁为简,将最小森林变为最小树。以一个连通图为例

1.先利用 m m m 次的查询,获得每条边的权值 c n t i cnt_i cnti​。

2.我们可以发现最大生成树的权值为 2 + 4 + 8 + 5 = 19 2+4+8+5 = 19 2+4+8+5=19 ,在这里会发现一个现象,在成环的情况下会有不纳入计算中的边,同样由 k r u s k a l kruskal kruskal 算法可以得知,当某两点已经在同一个连通块中的时候,若还有关联这两点的边,则直接舍去。

3.创建一个集合 S S S 以及 r e s res res 记录当前集合所能构成的最小生成树的值,运用 k r u s k a l kruskal kruskal 的思想,将边权从小到大依次加入到集合 S S S 中,每次加入集合后,则进行一次询问,便会获得一个值 w i w_i wi​ ,如果 w i = c n t i + r e s w_i = cnt_i + res wi​=cnti​+res ,则表示当前边是构成最小生成树的边,然后 r e s = w i res = w_i res=wi​。如果 w i ≠ c n t i + r e s w_i \not= cnt_i + res wi​​=cnti​+res ,则表示当前边不是构成最小生成树的边,而且此时出现了环,所以需要将边 l i l_i li​ 从集合中去除。最后得到的 r e s res res 便是最小生成树的权值。

4.森林的做法与此相同。

#include<stdio.h>
#include<algorithm>using namespace std;
const int N = 1e3 + 10;
char s[N];
int res;
struct node{int id,cnt;
}num[N];bool cmp(node a1,node a2) {return a1.cnt < a2.cnt;
} int main(){int n,m;scanf("%d %d",&n,&m);for(int i=0;i<m;i++) s[i] = '0';for(int i=0;i<m;i++) {s[i] = '1';printf("? %s\n",s);fflush(stdout);s[i] = '0';int k;scanf("%d",&k);num[i] = {i,k};} sort(num,num+m,cmp);for(int i=0;i<m;i++) {s[num[i].id] = '1';printf("? %s\n",s);fflush(stdout);int k;scanf("%d",&k);if(k == res + num[i].cnt) res += num[i].cnt;else s[num[i].id] = '0';}printf("! %d\n",res);fflush(stdout);return 0;
}

E. Railway System相关推荐

  1. 交通运输词汇(zt)

    bus 公共汽车 driver 汽车司机 double decker bus 双层公共汽车 coach, motor coach, bus 大客车 taxi, taxicab 计程汽车,出租汽车 tr ...

  2. 中国上海人工智能CIMCAI世界第一完成两百万次AI验箱上亿次箱识别,成熟AI产品运行超7百万小时智慧港航智能化中国上海人工智能

    中国上海人工智能CIMCAI世界第一完成两百万次AI验箱上亿次箱识别, 成熟AI产品运行超7百万小时智慧港航智能化,全球港航人工智能独角兽企业CIMCAI成熟港航AI产品, 应用码头港区海关仓库口岸铁 ...

  3. python重构_重构Python应用程序以简化操作

    python重构 Do you want simpler Python code? You always start a project with the best intentions, a cle ...

  4. pyqt5 地图可视化 网页地图 folium

    实验任务(实验题目.目的) Implement a shortest path algorithm and apply it to the national railway system.以全国主要城 ...

  5. 每日英语:How to Solve India's Huge Food Wastage

    India is one of the world's  largest producers of fruits and vegetables, but a third of its produce ...

  6. CIMCAI intelligent railway logistics world leading container AI

    港航人工智能/集装箱人工智能领军企业CIMCAI,多式联运智能化铁路货运智能化方案, 全自动化集装箱识别+数字化海运铁路运输集装箱管理. CIMCAI中集飞瞳是世界应用落地最广,规模最大,最先进的的集 ...

  7. IELTS12 TEST7 it is necessary to spend large sums of money on constructing new railway lines

    IELTS12 Test 7的话题,主要是探讨城市是否把大量的资金投入到建造高速铁炉上,还是把大量资金投入到自身城市交通的建设上. 我的观点就是,从国家战略和城际发展的角度,我们应该大力发展城际间的高 ...

  8. SoC(System on chip)与NoC(network-on-chip)

    SoC(System on chip)与NoC(network-on-chip) NoC是相对于SoC的新一代片上互连技术,要深入了解NoC必须深刻认识SoC,故本文组织结构为:  SoC架构  ...

  9. 如何使用Nsight System?

    如何使用Nsight System?

最新文章

  1. iOS进阶之页面性能优化
  2. Coding中遇到的BUG集合~
  3. 进程间通信——自定义消息方式实现(SetWindowsHookEx)
  4. 组织软件测试中应当避免的几个常见现象
  5. nlp gpt论文_GPT-3:NLP镇的最新动态
  6. 技术管理:技术负责人所需的四个核心能力
  7. git can‘t merge 的处理 代码冲突问题的解决
  8. 无论商业模式怎么变,其最核心的东西,永远不变
  9. 一个点击icon就生成html和css的网页
  10. Asp.net AJAX JavaScript 基本类型扩展(7)——String 类型及其扩展
  11. Struts2 Jakarta远程执行代码测试
  12. 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析...
  13. 面向硬件编程的一些思考
  14. Android旅游自助项目之APP设计方案
  15. Cannot build artifact ‘SSM模板+登录注册:war exploded‘ because it is included into a circular dependency (a
  16. Login.aspx
  17. 网络舆情分析技术 读书笔记1
  18. 灰度图学习_为什么灰度图是灰色的??
  19. LEA指令与MOV指令区别
  20. 计算机病毒爆发的新闻,从两次勒索病毒爆发聊聊计算机安全重要性

热门文章

  1. oracle数据库性能awr,Oracle数据库性能调优-AWR讲述详细分析指南之一
  2. 美光RCP28F系列 NAND FLASH
  3. 华为手环6鸿蒙,智能手环盘点:华为手环6比小米手环6贵在哪?
  4. 开源私有云盘python_使用Seafile搭建个人专属私有云盘
  5. linux 调试c语言,Linux下C语言调试
  6. ros理论与实践网盘资源
  7. 自定义view实现侧滑删除功能
  8. Telegram公布个人身份验证工具,可共享财务及ICO数据
  9. 5种实用方案——找回丢失的excel文件
  10. 数位板怎么用?刚开始使用数位板要从什么开始练习