【JZOJ4807】破解
Description
历经千辛万苦,ddddddpppppp 终于找到了IBN5100。 dp 事先了解到SERN 共有T 个密码,每个密码是一个长度为N 的01 串,他要利用IBN5100 的特殊功能破解SERN 的密码。 初始时,IBN5100 中的串每个位置都是0。 这台特殊的IBN5100 还提供了M 个区间[Li,Ri],每次操作是从给定区间中选 择其中一个区间[Li,Ri],将当前01 串[Li,Ri]的位置上的数字全部取反。 dp 可以执行上述操作任意次。为了破解出密码,dp 想知道这个01 串最多有多 少种可能。
由于答案可能很大,所以你只需要告诉 dp 模(10^9+7)后的答案即可。
注意:每次破解都是独立的。
Input
第一行,一个整数T 表示一共T 组数据。
每组数据第一行,两个整数N,M,分别表示密码串长度和区间个数。
接下来M 行,第i 行两个整数Li,Ri 表示一个区间[Li,Ri]。
Output
每组数据一行,一个整数表示所有的可能,答案对(10^9+7)取模。
Sample Input
2
3 3
1 1
2 2
3 3
5 2
1 2
4 5
Sample Output
8
4
Hint
【样例解释】
第一组数据:每个位置都可以单个修改,所以所有长度为3 的01 串都有可能,即2^3=8 种可能。
第二组数据的四种可能如下:
1.不操作:00000
2.选择区间[1,2]:11000
3.选择区间[4,5]:00011
4.先选择区间[1,2]再选择[4,5]:11011
【数据范围】
对于30%的数据,N,M ≤ 10
对于60%的数据,N ≤ 10000000 , M ≤ 20
对于100%的数据,N ≤ 10000000 , M ≤ 100000 ,1 ≤ Li ≤ Ri ≤ N , T≤ 10
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<cstring>
#define ll long long
#define mod 1000000007;
const int MAXN=;
using namespace std;
int fa[MAXN],l[MAXN],r[MAXN],v[MAXN];
int n,m,t;
int num=; int find(int x){
if(fa[x]!=x) fa[x]=find(fa[x]);
return fa[x];
} void cl(){
memset(fa,,sizeof(fa));
memset(l,,sizeof(l));
memset(r,,sizeof(r));
memset(v,,sizeof(v));
} int main(){
scanf("%d",&t);
while(t--){
cl();
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++){
scanf("%d%d",&l[i],&r[i]);r[i]++;
}
for(int i=;i<=n+;i++) fa[i]=i;
ll ans=;
for(int i=;i<=m;i++){
int x=find(l[i]),y=find(r[i]);
if(x==y) continue;
ans*=;ans%=mod;
fa[x]=y;
}
printf("%lld\n",ans);
}
}
【JZOJ4807】破解的更多相关文章
- Kali对wifi的破解记录
好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...
- 对抗密码破解 —— Web 前端慢 Hash
(更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. ...
- Syscan360会议胸牌破解揭秘
Syscan360会议胸牌破解揭秘 背景 有幸参加今年11月份的上海Syscan360安全会议,会议期间有一个亮点就是360的独角兽团队设计了一款电子badge(胸牌)供参加人员进行破解尝试,类似于美 ...
- “不给力啊,老湿!”:RSA加密与破解
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 加密和解密是自古就有技术了.经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫 ...
- C# 破解 Reflector8.5
一.分析 破解.net .dll,可以使用reflector,但官方提供的reflector是需要购买的,因此,破解reflector势在必行. 二.破解Reflector具体步骤 下面为详细的破解步 ...
- CorelDRAW X8 如何破解激活(附国际版安装包+激活工具) 2016-12-15
之前有位搞平面的好友“小瘦”说CDR X8无法破解,只能用X7.呃……呃……呃……好像是的 其实CDR8难激活主要在于一个点“没有离线激活了,只可以在线激活”,逆天不是专供逆向的,当然没能力去破解,这 ...
- 破解SQLServer for Linux预览版的3.5GB内存限制 (UBUNTU篇)
在上一篇中我提到了如何破解RHEL上SQLServer的内存大小限制,但是Ubuntu上还有一道检查 这篇我将会讲解如何在3.5GB以下内存的Ubuntu中安装和运行SQLServer for Lin ...
- 破解SQLServer for Linux预览版的3.5GB内存限制 (RHEL篇)
微软发布了SQLServer for Linux,但是安装竟然需要3.5GB内存,这让大部分云主机用户都没办法尝试这个新东西 这篇我将讲解如何破解这个内存限制 要看关键的可以直接跳到第6步,只需要替换 ...
- 微信小程序IDE(微信web开发者工具)安装、破解手册
1.IDE下载 微信web开发者工具,本人是用的windows 10 x64系统,用到以下两个版本的IDE安装工具与一个破解工具包: wechat_web_devtools_0.7.0_x64.exe ...
随机推荐
- 【Offer】[19] 【字符串匹配】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式. 模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含 ...
- 分析spring4和spring5日志中的不同
日志在工作中起到关键作用,我们经常使用它来打印关键信息,方便分析,或者是输出错误信息,用于bug排查,spring中同样使用了日志进行信息的输出,但是spring4和spring5之间的日志又有些不同 ...
- (1)jsoncpp库的使用
本节主要介绍 json是什么以及jsoncpp库的使用. (1)JSON是什么 json 是一种轻量级的文本数据交换格式: json 独立于语言.平台,使用java script语法来描述对象 ...
- 我真的不想再用 JPA 了
在开发者的圈子里,没当说到一种技术好或者不好,都会引发激烈或者不激烈的争论,直到一个开发者出来说 PHP 是世界上最好的语言,大家伙儿才会纷纷退去继续写代码. 今天说 JPA 的问题不是想引发什么讨论 ...
- Oracle创建自增主键表
1.创建表 /*第一步:创建表格*/ create table t_user( id int primary key, --主键,自增长 username varchar(), password va ...
- JSP获取网络IP地址
import javax.servlet.http.HttpServletRequest; public class RemoteAddress { public static String getR ...
- Charles 下载
本文参考:Charles 下载 Charles 下载 当前最新的版本是v4.2.8:官网下载页面:https://www.charlesproxy.com/latest-release/downloa ...
- charles 开始/暂停模拟慢网速
本文参考:charles 开始/暂停模拟慢网速 1.2. stop/start throttling 和 2.2 throttling settings 暂时开始慢网速,这个说实话,我自己是不常用的, ...
- Tomcat启动时设置Jdk版本
1. Window版本Tomcat 到bin下的setclasspath.bat文件,在文件的开始处添加如下代码: set JAVA_HOME=D:\Program Files\Java\jdk1.8 ...
- Java13新特性
Java 13 的官方开发目标包含改进垃圾收集.应用程序的类数据共享和文本块 Java 开发工具包(JDK)13,标准 Java 的下一个版本,现在可作为候选版本使用,所有新功能都已锁定.JDK 13 ...