
P2700 逐个击破
发布日期:2021-05-07 09:40:57
浏览次数:20
分类:精选文章
本文共 851 字,大约阅读时间需要 2 分钟。
题目
思路
采取正难则反的思想,应用容斥,把题目变为尽量连接不是敌人节点的点,注意,如果连接一个正常点和一个敌人节点,则正常节点会被入侵。
code:#include#include #include #include #include using namespace std;int a,b,g;long long ans;int fa[100005];bool yy[100005];struct f{ int x,y,z;} e[100005];int find(int x){ if (x==fa[x]) return x; return fa[x]=find(fa[x]); }void jb(int x,int y,int z){ g++; e[g].x=x; e[g].y=y; e[g].z=z; return;}bool cmp(f a,f b){ return a.z>b.z;}void f(){ int j=1; while (j<=g) { int xx=find(e[j].x),yyy=find(e[j].y); if (!(yy[xx]&&yy[yyy])) { fa[xx]=yyy; yy[yyy]=yy[xx]|yy[yyy]; ans-=e[j].z; } j++; } return;}int main(){ cin>>b>>a; for (int i=1;i<=b;i++) fa[i]=i; for (int i=1;i<=a;i++) { int x; cin>>x; yy[x]=1; } for (int i=1;i >x>>y>>z; jb(x,y,z); ans+=z; } sort(e+1,e+g,cmp); f(); cout<
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月16日 05时19分06秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
在Vue中使用样式——使用内联样式
2021-05-10
@pathVariable 映射URL绑定的占位符
2021-05-10
案例:验证用户名是否可用
2021-05-10
基于组件的案例:购物车
2021-05-10
实现简易前端路由
2021-05-10
桥接模式
2021-05-10
application.yml如何显示成小叶子图标
2021-05-10
MySQL 高级 - 存储过程 - 函数
2021-05-10
Explore Optimization
2021-05-10
js的知识点14
2021-05-10
MATLAB知识点1
2021-05-10
数据挖掘
2021-05-10
《区块链基础知识25讲》-第二十二讲-区块链的缺陷
2021-05-10
交换机基础知识 - 从零开始学习
2021-05-10
Kali Linux 内网渗透教程 - ARP欺骗攻击 | 超详细
2021-05-10
Unable to find vcvarsall.bat build_ext
2021-05-10
搞懂线程和进程的关系及区别
2021-05-10
java如何实现任意两个值交换 数组为例(值传递和地址传递)
2021-05-10
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
2021-05-10