description


analysis

  • 首先把 [ L , R ] [L,R] [L,R]看成 [ L , R + 1 ) [L,R+1) [L,R+1),然后把头尾相连的区间视作做操作

  • 就是说,如果一个大区间包含一个与它头或尾相连的小区间,就大区间视作拆成小区间和小区间的补集

  • 大区间完全包含另若干各区间(头尾不相连),两两没有影响

  • 对于搞完后大小为 n n n的区间,该区间答案为 2 n − 1 2^{n-1} 2n−1

  • 然后每个区间头和尾连起来,并查集做一做,求出一共有 k k k个联通块

  • 如果原图有 m m m个点,则最终答案就是 ∑ i = 1 k 2 n i − 1 = 2 m − k \sum_{i=1}^{k}2^{{n_i}-1}=2^{m-k} ∑i=1k​2ni​−1=2m−k

  • 这个并查集怎么搞自行思考


code

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAXN 10000005
#define MAXM 100005*2
#define mod 1000000007
#define ll long long
#define fo(i,a,b) for (ll i=a;i<=b;++i)
#define fd(i,a,b) for (ll i=a;i>=b;--i)using namespace std;ll fa[MAXM],f[MAXM];
bool bz[MAXN];
ll turn[MAXN];
ll n,m,T,tot,cnt;inline ll read()
{ll x=0,f=1;char ch=getchar();while (ch<'0' || '9'<ch){if (ch=='-')f=-1;ch=getchar();}while ('0'<=ch && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
inline ll getfa(ll x)
{return fa[x]==x?x:fa[x]=getfa(fa[x]);
}
inline void merge(ll x,ll y)
{ll xx=getfa(x),yy=getfa(y);if (xx==yy)return;fa[xx]=yy;
}
inline ll pow(ll x,ll y)
{ll z=1;while (y){if (y&1)z=z*x%mod;x=x*x%mod,y>>=1;}return z;
}
int main()
{//freopen("T2.in","r",stdin);T=read();while (T--){n=read(),m=read(),tot=cnt=0;fo(i,1,m*2)fa[i]=i;memset(bz,1,sizeof(bz));memset(turn,0,sizeof(turn));fo(i,1,m){ll l=read(),r=read()+1;if (bz[l])bz[l]=0,f[++cnt]=l,turn[l]=cnt;if (bz[r])bz[r]=0,f[++cnt]=r,turn[r]=cnt;merge(turn[l],turn[r]);}memset(bz,1,sizeof(bz));fo(i,1,cnt)if (bz[getfa(i)])bz[getfa(i)]=0,++tot;printf("%lld\n",pow(2,cnt-tot));}return 0;
}

【JZOJ4807】破解相关推荐

  1. 实验三-密码破解技术

    学   号 201421430010   中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验三 密码破解技术   ...

  2. Python搭建Keras CNN模型破解网站验证码

    在本项目中,将会用Keras来搭建一个稍微复杂的CNN模型来破解以上的验证码.验证码如下: 利用Keras可以快速方便地搭建CNN模型,本项目搭建的CNN模型如下: 将数据集分为训练集和测试集,占比为 ...

  3. vs 插件小番茄 visual assist x破解版 破解教程下载

    visual assist x是一款非常好用的Microsoft Visual Studio插件,它可以完全集成到您的Microsoft开发环境中,升级了您的IDE,在不改变编程习惯的同时就可以感受到 ...

  4. 安装完DevExpress14.2.5,如何破解它呢?

    DevExpress是一个界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.DevExpress开发的控件有很强的实力,不仅功能丰富,应用简单,而且界面华丽,更可方便订制,方便开发人员开 ...

  5. 如何破解压缩文件密码-省时省力的方法

    压缩文件破解工具下载地址:http://www.cnblogs.com/spring_wang/archive/2013/06/14/3135163.html 应该很多人都碰到过RAR加密.解密的问题 ...

  6. 破解出cmos密码(转载)

    ----CMOS (Award)密码简介与破解0--3法---- 计算机启动时,由存放在主板ROM中的bios将cmos数据调入内存中,以实现控制系统. 其中,Award主板上的一小块RAM用于存放C ...

  7. Jrebel 热部署插件的使用和破解

    生成GUIDS 的网站:https://www.guidgen.com/ Jrebel 介绍和破解说明:https://www.cnblogs.com/wang1024/p/7211194.html ...

  8. 破解CentOS的root密码(救援模式无密码)

    开机后,在倒数读秒的时候按任意键.跳转画面后,再按E键,进入如下界面: 此时把光标定位到第二行,再按E键(意为:在启动顺序里编辑这条命令),如下图,此时输入"空格+single" ...

  9. 入门系列之使用fail2ban防御SSH服务器的暴力破解攻击

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由SQL GM 发表于云+社区专栏 介绍 对于SSH服务的常见的攻击就是暴力破解攻击--远程攻击者通过不同的密码来无限次地进行登录尝试. ...

最新文章

  1. 【Android基础】序列化 Serializable vs Parcelable
  2. 快速获取青年大学习完成截图
  3. 有一只经过训练的蜜蜂……
  4. python做前端mongodb_Python爬虫之mongodb和python交互
  5. Comet4J推技术在SSHE三大框架中应用-linux下亲测可用
  6. 《统计学习方法》读书笔记——K近邻法(原理+代码实现)
  7. (进阶)LeetCode(206)——反转链表(JavaScript)
  8. 关于 Java 的强制类型转换
  9. 嘉兴市人才网即时招聘栏目Ajax动态翻页爬虫练习
  10. 洛谷入门题 深基2 例5~例8
  11. 生命细胞游戏的C++实现
  12. 杭州电子科技大学ACM-1094
  13. nginx的带宽限制和并发控制
  14. java适合音频格式_我应该为java使用什么音频格式?
  15. 志愿人生——带给你每一次温暖
  16. 华为手机充当电脑的无线U盘 - 华为无线连接电脑 - 华为分享
  17. 为什么c语言加法错误,分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)...
  18. ARM与DSP的区别
  19. C. Neko does Maths
  20. 中兴 ZTE T9 七寸平板手机ROOT方法 教程分享

热门文章

  1. LeetCode力扣刷题数据库(178):分数排名
  2. C++ float转换int,四舍五入
  3. 应用软件运行提示缺少*.dll文件的解决方法
  4. Android实现烟雾监控应用,基于Android的室内监控系统的研究与实现
  5. 电子计算机在哪里换电子,主板bios电池在哪里怎么更换
  6. RecyclerView.ItemAnimator终极解读(三)--继承DefaultItemAnimator实现自定义动画
  7. 最后一口气sans计算机谱子,最后一口气sans审判曲
  8. 外科医生最喜欢给什么人做手术
  9. COSONFT,全面赋能助力全球Web3“航海家”开辟“新航道”
  10. [COCI2017-2018#5] Olivander