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. 计算机房英语单词,主机房是什么意思

    1. 介绍了冷热源的选择及空调风系统.水系统.自控系统设计及主机房采取的安全措施,并做了几点设计总结. Presents the selection of cold and heat sources ...

  2. 使用路由器实现(非常)基本的家庭网络家庭安全

    Most people probably don't think of themselves as an "administrator" but if you have compu ...

  3. linux安全配置技术论文,基于linux平台的web安全技术研究apache安全大学论文.doc

    基于linux平台的web安全技术研究apache安全大学论文 广州大学华软软件学院 --毕业论文 题目-Apache安全 学生姓名: 指导教师2015-5-10 摘 要 随着网络通信技术的不断发展, ...

  4. php fpm iamp,基于IAMP的WEB安全模型

    Communication and Network 基于 LAMP的WEB安全模型 张艳 萍 ,高忠新 (1.牡丹江师范学院 网络信息中心,黑龙江 牡丹江 157012) 摘 要 :从 Linux平 ...

  5. 中国学术会议2009---001

    会议名称(中文): 第一届工程与科学全局优化国际会议 会议名称(英文): The First World Congress on Global Optimization in Engineering ...

  6. 中国学术会议(2009)---002

    [ 会议基本信息 ] 会议名称(中文): 2009管理工程与信息技术国际学术会议(ICMEIT'09) 会议名称(英文): 2009 International Conference of Manag ...

  7. 计算机英语中协议英语,计算机英语

    一.搭配每组中同意义的词或短语 A b 交换机 IP 路由器 IDPS 组件 Switch 传输控制协议 Router 互联网协议 Component 万维网 TCP 入侵检测和防御系统 WWW 交换 ...

  8. android渗透工具是什么意思,android渗透攻击工具合集

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.Hackode Hackode : The hacker*s Toolbox is an application for penetration te ...

  9. Android渗透测试工具大合集

    Android传承着Linux的血统,无疑使渗透 从机器端到各种终端,使用起来更加方便,工具集中了众多方法,大大提高了渗透的效率(当然不推荐傻瓜式工具,这里只是入门,高手勿喷,初学者了解) 大名鼎鼎的 ...

最新文章

  1. “国产操作系统最大难题在于解决「生产关系」” | 人物志
  2. (Python)from collections import Counter统计包
  3. react循环key值_React源码揭秘(三):Diff算法详解
  4. 前端请求,后台http 连接输出流交给ServeletResponse 下载文件
  5. eth显卡算力2020最新排行_最新三大主流币IPFS比特币ETH挖矿全网算力动态速递单周报(12.3更新)...
  6. Oracle9i OCM认证实践课考试的一些说明
  7. 【转载保存】java优先队列使用
  8. 计算机消失了一个磁盘,win7系统重装后莫名奇妙消失一个分区磁盘的解决方法...
  9. Wap wml开发中需要注意的地方
  10. 重拾阅读--朝花夕拾啊
  11. matlab ip 大端,MATLAB格式化输出控制
  12. c语言不定长参数函数,DEFUN 如何定义支持不定长参数的函数
  13. OA系统中的HRM的发展和存在的误区,值得每一个HR学习
  14. Word2013 设置默认缩进
  15. 外卖点餐系统(App及后台)
  16. HDU - 1166 敌兵布阵(线段树模板)(入门题)
  17. HTML 内联元素之间的空隙问题
  18. CSS属性前的 -webkit, -moz
  19. 出现这十种症状,说明你不适合干程序员
  20. Masking操作,即只关注图像的一部分

热门文章

  1. 会按摩的充气颈枕,只占行李箱一个角,却能让你的脖子爽到爆
  2. 女朋友当众甩了我一巴掌,我扑上去......
  3. 年底求职难?起薪28万的数据岗位,人才缺口达150万,不限专业学历……
  4. dbeaver 数据转化 mapping_Python机器学习实例:数据竞赛-足球运动员身价估计
  5. detectron2训练自己的数据集_keras版MaskRCNN来训练自己的目标检测数据集
  6. jodconverter水印java,OpenOffice实现Office转Pdf(支持自定义添加水印、页眉、页脚)
  7. java什么是静态_什么是java静态
  8. 算法题目中经典问题(易错点)
  9. 上海市二级c语言软件环境,上海市计算机二级C语言复习资料 word整理版.doc
  10. 1017 The Best Peak Shape (35 分)(最佳峰形)(思路+详解+翻译+题意分析)Come brather!!!!!!!!!