CF1039C Network Safety
CF1039C Network Safety
题意:
题解:
如果我们同时选中a,b两个点,无论异或什么值,都不会影响图的安全性,因为图本来就是安全的
破坏图的安全性只有一种情况,那就是选了a,没选b,且病毒为x,满足a⊕x=b
根据异或的性质,x=a⊕b,那么也就说要让图不安全的方法就是只选两个端点中的一个且病毒x为两个端点的异或值。
那么当病毒x=a⊕b时,我们就一定要选AB两点,我们把AB看做一个点,这样我们将相同边权的看作点,且合并起来
如果合并完后有k个点,说明这k个点之间的异或值都不为x,也就是这k个点可以随便选,有2k2^k2k个选择
我们可以用并查集来处理合并点
在实践中,我们先不考虑不安全的情况,求出总方案,然后每次合并一个点后,减去不合法的情况
代码:
#include <bits/stdc++.h>
#include <unordered_map>
#define debug(a, b) printf("%s = %d\n", a, b);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
clock_t startTime, endTime;
//Fe~Jozky
const ll INF_ll= 1e18;
const int INF_int= 0x3f3f3f3f;
void read(){};
template <typename _Tp, typename... _Tps> void read(_Tp& x, _Tps&... Ar)
{x= 0;char c= getchar();bool flag= 0;while (c < '0' || c > '9')flag|= (c == '-'), c= getchar();while (c >= '0' && c <= '9')x= (x << 3) + (x << 1) + (c ^ 48), c= getchar();if (flag)x= -x;read(Ar...);
}
template <typename T> inline void write(T x)
{if (x < 0) {x= ~(x - 1);putchar('-');}if (x > 9)write(x / 10);putchar(x % 10 + '0');
}
void rd_test()
{#ifdef ONLINE_JUDGE
#elsestartTime = clock ();freopen("data.in", "r", stdin);
#endif
}
void Time_test()
{#ifdef ONLINE_JUDGE
#elseendTime= clock();printf("\nRun Time:%lfs\n", (double)(endTime - startTime) / CLOCKS_PER_SEC);
#endif
}
const int mod=1e9+7;
const int maxn=5e5+9;
map<ll,int>a;
map<ll,bool>mp;
ll b[maxn];
map<ll,int>fa[maxn];
int u[maxn],v[maxn];
int find(int x,ll key){if(fa[x][key]==x)return x;return fa[x][key]=find(fa[x][key],key);
}
ll poww(ll a,ll b)
{ll ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans%mod;
}
int main()
{//rd_test();int n,m,k;read(n,m,k);ll ans=0;ans=poww(2,k)*poww(2,n)%mod;
// cout<<ans<<endl;for(int i=1;i<=n;i++)read(b[i]);for(int i=1;i<=m;i++){read(u[i],v[i]);ll key=b[u[i]]^b[v[i]];if(fa[u[i]][key]==0)fa[u[i]][key]=u[i];if(fa[v[i]][key]==0)fa[v[i]][key]=v[i];int x=find(u[i],key);int y=find(v[i],key);if(x==y)continue;fa[x][key]=y;a[key]++;//去掉了不合法的情况 ll w=(poww(2,n-(a[key]-1))-poww(2,n-a[key])+mod)%mod;ans=(ans-w+mod)%mod;}cout<<ans%mod;return 0;//Time_test();
}
CF1039C Network Safety相关推荐
- 计算机房英语单词,主机房是什么意思
1. 介绍了冷热源的选择及空调风系统.水系统.自控系统设计及主机房采取的安全措施,并做了几点设计总结. Presents the selection of cold and heat sources ...
- 使用路由器实现(非常)基本的家庭网络家庭安全
Most people probably don't think of themselves as an "administrator" but if you have compu ...
- linux安全配置技术论文,基于linux平台的web安全技术研究apache安全大学论文.doc
基于linux平台的web安全技术研究apache安全大学论文 广州大学华软软件学院 --毕业论文 题目-Apache安全 学生姓名: 指导教师2015-5-10 摘 要 随着网络通信技术的不断发展, ...
- php fpm iamp,基于IAMP的WEB安全模型
Communication and Network 基于 LAMP的WEB安全模型 张艳 萍 ,高忠新 (1.牡丹江师范学院 网络信息中心,黑龙江 牡丹江 157012) 摘 要 :从 Linux平 ...
- 中国学术会议2009---001
会议名称(中文): 第一届工程与科学全局优化国际会议 会议名称(英文): The First World Congress on Global Optimization in Engineering ...
- 中国学术会议(2009)---002
[ 会议基本信息 ] 会议名称(中文): 2009管理工程与信息技术国际学术会议(ICMEIT'09) 会议名称(英文): 2009 International Conference of Manag ...
- 计算机英语中协议英语,计算机英语
一.搭配每组中同意义的词或短语 A b 交换机 IP 路由器 IDPS 组件 Switch 传输控制协议 Router 互联网协议 Component 万维网 TCP 入侵检测和防御系统 WWW 交换 ...
- android渗透工具是什么意思,android渗透攻击工具合集
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.Hackode Hackode : The hacker*s Toolbox is an application for penetration te ...
- Android渗透测试工具大合集
Android传承着Linux的血统,无疑使渗透 从机器端到各种终端,使用起来更加方便,工具集中了众多方法,大大提高了渗透的效率(当然不推荐傻瓜式工具,这里只是入门,高手勿喷,初学者了解) 大名鼎鼎的 ...
最新文章
- “国产操作系统最大难题在于解决「生产关系」” | 人物志
- (Python)from collections import Counter统计包
- react循环key值_React源码揭秘(三):Diff算法详解
- 前端请求,后台http 连接输出流交给ServeletResponse 下载文件
- eth显卡算力2020最新排行_最新三大主流币IPFS比特币ETH挖矿全网算力动态速递单周报(12.3更新)...
- Oracle9i OCM认证实践课考试的一些说明
- 【转载保存】java优先队列使用
- 计算机消失了一个磁盘,win7系统重装后莫名奇妙消失一个分区磁盘的解决方法...
- Wap wml开发中需要注意的地方
- 重拾阅读--朝花夕拾啊
- matlab ip 大端,MATLAB格式化输出控制
- c语言不定长参数函数,DEFUN 如何定义支持不定长参数的函数
- OA系统中的HRM的发展和存在的误区,值得每一个HR学习
- Word2013 设置默认缩进
- 外卖点餐系统(App及后台)
- HDU - 1166 敌兵布阵(线段树模板)(入门题)
- HTML 内联元素之间的空隙问题
- CSS属性前的 -webkit, -moz
- 出现这十种症状,说明你不适合干程序员
- Masking操作,即只关注图像的一部分
热门文章
- 会按摩的充气颈枕,只占行李箱一个角,却能让你的脖子爽到爆
- 女朋友当众甩了我一巴掌,我扑上去......
- 年底求职难?起薪28万的数据岗位,人才缺口达150万,不限专业学历……
- dbeaver 数据转化 mapping_Python机器学习实例:数据竞赛-足球运动员身价估计
- detectron2训练自己的数据集_keras版MaskRCNN来训练自己的目标检测数据集
- jodconverter水印java,OpenOffice实现Office转Pdf(支持自定义添加水印、页眉、页脚)
- java什么是静态_什么是java静态
- 算法题目中经典问题(易错点)
- 上海市二级c语言软件环境,上海市计算机二级C语言复习资料 word整理版.doc
- 1017 The Best Peak Shape (35 分)(最佳峰形)(思路+详解+翻译+题意分析)Come brather!!!!!!!!!