E. Railway System
题目: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相关推荐
- 交通运输词汇(zt)
bus 公共汽车 driver 汽车司机 double decker bus 双层公共汽车 coach, motor coach, bus 大客车 taxi, taxicab 计程汽车,出租汽车 tr ...
- 中国上海人工智能CIMCAI世界第一完成两百万次AI验箱上亿次箱识别,成熟AI产品运行超7百万小时智慧港航智能化中国上海人工智能
中国上海人工智能CIMCAI世界第一完成两百万次AI验箱上亿次箱识别, 成熟AI产品运行超7百万小时智慧港航智能化,全球港航人工智能独角兽企业CIMCAI成熟港航AI产品, 应用码头港区海关仓库口岸铁 ...
- python重构_重构Python应用程序以简化操作
python重构 Do you want simpler Python code? You always start a project with the best intentions, a cle ...
- pyqt5 地图可视化 网页地图 folium
实验任务(实验题目.目的) Implement a shortest path algorithm and apply it to the national railway system.以全国主要城 ...
- 每日英语: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 ...
- CIMCAI intelligent railway logistics world leading container AI
港航人工智能/集装箱人工智能领军企业CIMCAI,多式联运智能化铁路货运智能化方案, 全自动化集装箱识别+数字化海运铁路运输集装箱管理. CIMCAI中集飞瞳是世界应用落地最广,规模最大,最先进的的集 ...
- IELTS12 TEST7 it is necessary to spend large sums of money on constructing new railway lines
IELTS12 Test 7的话题,主要是探讨城市是否把大量的资金投入到建造高速铁炉上,还是把大量资金投入到自身城市交通的建设上. 我的观点就是,从国家战略和城际发展的角度,我们应该大力发展城际间的高 ...
- SoC(System on chip)与NoC(network-on-chip)
SoC(System on chip)与NoC(network-on-chip) NoC是相对于SoC的新一代片上互连技术,要深入了解NoC必须深刻认识SoC,故本文组织结构为: SoC架构 ...
- 如何使用Nsight System?
如何使用Nsight System?
最新文章
- iOS进阶之页面性能优化
- Coding中遇到的BUG集合~
- 进程间通信——自定义消息方式实现(SetWindowsHookEx)
- 组织软件测试中应当避免的几个常见现象
- nlp gpt论文_GPT-3:NLP镇的最新动态
- 技术管理:技术负责人所需的四个核心能力
- git can‘t merge 的处理 代码冲突问题的解决
- 无论商业模式怎么变,其最核心的东西,永远不变
- 一个点击icon就生成html和css的网页
- Asp.net AJAX JavaScript 基本类型扩展(7)——String 类型及其扩展
- Struts2 Jakarta远程执行代码测试
- 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析...
- 面向硬件编程的一些思考
- Android旅游自助项目之APP设计方案
- Cannot build artifact ‘SSM模板+登录注册:war exploded‘ because it is included into a circular dependency (a
- Login.aspx
- 网络舆情分析技术 读书笔记1
- 灰度图学习_为什么灰度图是灰色的??
- LEA指令与MOV指令区别
- 计算机病毒爆发的新闻,从两次勒索病毒爆发聊聊计算机安全重要性