hdu3461
题意描述:有一个类似滚轮式的密码锁放在一排共n个,有m种操作每次操作一个区间,且此次操作后的所有密码相同,问最多能形成多少种密码
解决:将区间分为可变部分和不可变部分,没当有可变部分时候总区间数要减去一。因为在可变 区间内第一个滚轮一定是固定的(可以转)
并查集合并区间后做下快速幂就好了 1 //组合数学+快速幂+并查集
2 //统一区间内的组合数指数在原先基础上要减去1
3 //证明可以枚举开始的字母因为是循环的所以第一个字母唯一
4 //注意边界重叠的情况,初始化要从0开始
5
6 #include<cstring>
7 #include<cstdio>
8 #include<algorithm>
9 typedef long long ll;
using namespace std;
const int MAX = +;
const int MOD = ;
int pa[MAX];
void make(int n)
{
for(int i=;i<=n;i++) pa[i]=i;
}
int find(int x)
{
return pa[x]==x? x: pa[x]=find(pa[x]);
}
int Union(int a,int b)
{
int fx=find(a);
int fy=find(b);
if(fx==fy) return ;
else
{
pa[fx]=fy;
return ;
}
}
ll qmod(ll a,ll n)
{
ll res=;
while(n>)
{
if(n&) res=res*a%MOD;
a=a*a%MOD;
n>>=;
}
return res;
}
int main()
{
int n,m,l,r;
while(scanf("%d %d",&n,&m)>)
{
make(n); int cnt=;
for(int i=;i<m;i++)
{
scanf("%d %d",&l,&r);
if(Union(l-,r)) cnt++;
}
ll ans=qmod(,(ll)(n-cnt));
printf("%I64d\n",ans%MOD);
}
return ;
}
hdu3461的更多相关文章
- Code Lock[HDU3461]
Code LockTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Subm ...
- 【uva12232/hdu3461】带权并查集维护异或值
题意: 对于n个数a[0]~a[n-1],但你不知道它们的值,通过逐步提供给你的信息,你的任务是根据这些信息回答问题: I P V :告诉你a[P] = V I P Q V:告诉你a[P] XOR a ...
- hdu3461 Code Lock
Problem Description A lock you use has a code system to be opened instead of a key. The lock contain ...
- hdu 3038 How Many Answers Are Wrong(种类并查集)2009 Multi-University Training Contest 13
了解了种类并查集,同时还知道了一个小技巧,这道题就比较容易了. 其实这是我碰到的第一道种类并查集,实在不会,只好看着别人的代码写.最后半懂不懂的写完了.然后又和别人的代码进行比较,还是不懂,但还是交了 ...
随机推荐
- bzoj21012101: [Usaco2010 Dec]Treasure Chest 藏宝箱(滚动数组优化dp)
2101: [Usaco2010 Dec]Treasure Chest 藏宝箱 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 592 Solved: ...
- HTML 5.1 -- 14项新增功能及如何使用
最近太忙了 过完年来 连续的加班让我筋疲力尽,今天终于把东西交了,抽空来点干货吧! 1. 响应式图像 W3C 引入了一些功能特性,无需使用 CSS 就可以实现响应式图像.它们是 … srcset 图像 ...
- 乐搏讲自动化测试-Python发展背景(1)
相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...
- [笔试面试题] 3-C++关键字篇
C/C++关键字篇 语言是编程的基础,掌握基本的语言知识是编程的前提条件.关键字是组成语言的最基本单位,对关键字的理解,有助于编写高质量的代码. 1 static(静态)变量有什么作用? 在函数体 ...
- select多选
1.css <style> .divBox{ width:400px; margin:100px auto; } .divBox span{ vertical-align:top; dis ...
- 学习笔记 第五章 使用CSS美化网页文本
第五章 使用CSS美化网页文本 学习重点 定义字体类型.大小.颜色等字体样式: 设计文本样式,如对齐.行高.间距等: 能够灵活设计美观.实用的网页正文版式. 5.1 字体样式 5.1.1 定义字体 ...
- Angular JS (2)
通过Angular JS的官方教学文档,了解 routeProvider 的用法, angular.module('aaa').config(['$locationProvider','$routeP ...
- pyrthon 简单爬虫实现
简单爬虫的通用步骤 BY ZKEEER 2017-09-03 2 COMMENTS 本文首发:ZKeeer’s Blog——简单爬虫的通用步骤代码基于 python3.5多图预警,长文预警 知识点 ...
- margin与padding如何进行区分
margin与padding如何进行区分,这是很多学html人的困扰,其实说白了padding 就是内容与边框的空隙.而margin则是模块与模块的空隙.[3]
- IntelliJ IDEA 2017安装和破解方法
一,安装 这里是windows下的安装,另外还有mac和linux下的版本,可自行解决 下载并安装IDEA官网:https://www.jetbrains.com/idea/ 或者百度网盘2017版本 ...