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
了解了种类并查集,同时还知道了一个小技巧,这道题就比较容易了. 其实这是我碰到的第一道种类并查集,实在不会,只好看着别人的代码写.最后半懂不懂的写完了.然后又和别人的代码进行比较,还是不懂,但还是交了 ...
随机推荐
- bzoj 1801: [Ahoi2009]chess 中国象棋【dp】
注意到一行只能放012个炮,我们只需要知道列的状态,不用状压行 所以设f[i][j][k]表示前i行有j列有1个炮,有k列有2个炮的方案数 然后分情况讨论转移就行了 #include<cstdi ...
- bzoj 4596: [Shoi2016]黑暗前的幻想乡【容斥原理+矩阵树定理】
真是简单粗暴 把矩阵树定理的运算当成黑箱好了反正我不会 这样我们就可以在O(n^3)的时间内算出一个无向图的生成树个数了 然后题目要求每个工程队选一条路,这里可以考虑容斥原理:全选的方案数-不选工程队 ...
- P3174 [HAOI2009]毛毛虫(树形dp)
P3174 [HAOI2009]毛毛虫 题目描述 对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大.例如下图左边的树(图 1 )抽出一部分就变成了右边 ...
- linux守护进程的编写
linux监控一个进程进行 代码如下: #!/bin/sh cd /home/autoprocess/ auto=`pgrep -f autoProcessNew.php | wc -l` if [ ...
- 【js】JavaScript parser实现浅析
最近笔者的团队迁移了webpack2,在迁移过程中,笔者发现webpack2中有相当多的兼容代码,虽然外界有很多声音一直在质疑作者为什么要破坏性更新,其实大家也都知道webpack1那种过于“灵活”的 ...
- scla-基础-函数-元组(0)
//元组 class Demo2 extends TestCase { def test_create_^^(){ val yuana = (1,true,1.2,"c",&quo ...
- MVC之模型绑定
1.前言 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方 ...
- opencv3.3+vs2015调用笔记本摄像头成功
先上代码 成功图片如下: #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp&g ...
- PMBOK项目管理九大知识领域和五大流程 --美国IT项目管理硕士笔记(二)
PMBOK 项目管理 九大知识领域和五大流程 PMI Project Management Institute.PMI 是世界上最大的非盈利机构,是项目管理领域的领导者.PMI制定项目管理行业标准 ...
- Web性能测试术语
并发用户: 并发一般分为2种情况.一种是严格意义上的并发,即所有的用户在同一时刻做同一件事情或者操作,这种操作一般指做同一类型的业务.比如在信用卡审批业 务中,一定数目的用户在同一时刻对已经完成的审批 ...