打卡信奥刷题(3071)用C++实现信奥题 P6951 [ICPC 2018 WF] Wireless is the New Fiber
P6951 [ICPC 2018 WF] Wireless is the New Fiber题目描述一种新型的无限带宽无线通信刚刚通过测试并被证明可以替代现有的基于光纤的通信网络后者正努力跟上流量增长的步伐。你被委托决定新通信网络的布局。当前的通信网络由一组节点用于路由消息和光纤链路组成每条链路连接两个不同的节点。对于每对节点至少存在一条但可能更多为了带宽目的光纤路径。新的通信网络将不再使用光纤。相反它将使用无线链路每条链路连接两个节点。这些链路具有无限带宽但成本昂贵因此决定尽可能少地建设这些链路以提供连通性对于每对节点应该只有一条路径通过无线链路连接。此外你发现每个节点的设计都考虑了特定数量的连接。如果每个节点的连接数与今天不同则需要重新组织这将非常昂贵。你的任务是设计新的网络使其在每对节点之间恰好有一条路径同时最小化与原始网络连接数不同的节点数量。图 K.1 显示了原始网络和样例输入 1 的解决方案。图 K.1样例输入 1 的示意图。输入格式输入以一行两个整数n ( 2 ≤ n ≤ 10 4 ) n (2 \le n \le 10^{4})n(2≤n≤104)和m ( 1 ≤ m ≤ 10 5 ) m (1 \le m \le 10^{5})m(1≤m≤105)开始表示现有网络中的节点数和光纤链路数。节点编号从0 00到n − 1 n - 1n−1。接下来的m mm行中的每一行包含两个不同的整数a i a_{i}ai和b i b_{i}bi表示第i ii条光纤链路连接编号为a i a_{i}ai和b i b_{i}bi的节点。保证对于每对节点至少存在一条路径连接这两个节点。任何一对节点之间可能有多条光纤链路连接。输出格式显示需要更改连接数的最小节点数。从下一行开始以与输入相同的格式显示连接系统。即显示一行包含节点数这将与输入相同和无线链路数然后在后续行中描述这些链路。如果有多种布局可能任何有效的布局都将被接受。输入输出样例 #1输入 #17 11 0 1 0 2 0 5 0 6 1 3 2 4 1 2 1 2 1 5 2 6 5 6输出 #13 7 6 0 1 0 2 0 5 0 6 3 6 4 6输入输出样例 #2输入 #24 3 0 1 2 1 2 3输出 #20 4 3 2 1 1 3 0 2说明/提示时间限制2 秒内存限制1024 MB。SPJ 提供者shenyouran。题面翻译由 ChatGPT-4o 提供。C实现#includebits/stdc.husingnamespacestd;intn,m,d[10005],pl[10005];intmain(){cinnm;for(inti1,x,y;im;i)cinxy,d[x],d[y];for(inti0;in;i)pl[i]i,d[i]--;sort(pl,pln,[](intx,inty){returnd[x]d[y];});ints0,ans0;for(inti0;in;i){if(sd[pl[i]]n-2)break;sd[pl[i]],ans;}coutn-ans\nn n-1\n;for(intians;in;i){if(sn-2)d[pl[i]]0;elsed[pl[i]]1,s;}sort(pl,pln,[](intx,inty){returnd[x]d[y];});for(inti0,j0;i2n;i){while(!d[pl[j]])j;d[pl[j]]--,coutpl[i] pl[j]\n;}coutpl[n-2] pl[n-1]\n;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2490466.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!