HDU 3461 Code Lock
来源:互联网 发布:腾讯ec软件 编辑:程序博客网 时间:2024/05/22 04:43
题目链接
题意:这题看得好久才看懂。。。意思是给定长度为n的锁,给定m个区间,转动m个区间的密码会同时增1,问有几种不同的锁。
分析:并查集+快速幂,合并区间,计算区间数cnt,答案就是26^(n-cnt)
#include<stdio.h>#include<algorithm>#define N 10000005#define mod 1000000007using namespace std;int par[N];int V,E;void init(int n){ for(int i=0;i<=n;i++) { par[i]=i; } return ;}int find(int x){ if(par[x]==x) return x; else return par[x]=find(par[x]);}void unite(int x,int y){ x=find(x); y=find(y); if(x==y) return ; par[x]=y; return ;} bool same(int x,int y)//判断x和y是否属于同一个集合 { return find(x)==find(y);}long long pow1(long long a,long long b){ long long base=a%mod; long long res=1; while(b) { if(b&1) res*=base; res%=mod; base=base*base%mod; b>>=1; } return res%mod;}int main(void){ int n,m; while(scanf("%d%d",&n,&m)==2) { init(n); int cnt=0; while(m--) { int l,r; scanf("%d%d",&l,&r); if(!same(l-1,r)) { unite(l-1,r); cnt++; } } printf("%lld\n",pow1(26,n-cnt)%mod); } return 0;}
0 0
- hdu 3461 Code Lock
- hdu 3461 Code Lock
- HDU 3461 Code Lock
- HDU 3461 Code Lock
- HDU-3461-Code Lock
- hdu 3461 Code Lock
- HDU 3461 Code Lock (并查集)
- hdu 3461:Code Lock(有待思考)
- hdu 3461_——Code Lock
- hdu 5.1.5 code lock
- HDU 3461 Code Lock(并查集+二分求幂)
- hdu 3461 Code Lock(并查集+二分求幂)
- HDU-3461 Code Lock 并查集 + 二分求幂
- hdu-3461-Code Lock-并查集+高次幂取模
- hdu 3461 Code Lock【并查集+快速幂】
- hdu 3461 Code Lock(并查集+快速幂)
- hdu 3461 Code Lock(并查集+快速幂)
- HDU - 3461 Code Lock (并查集和幂运算)
- 链表合并
- Iterator iterator():迭代器,集合的专用遍历方式
- Centos 7 刚安装不能上网的问题
- 有一个二维数组.----杨氏矩阵
- 在Win7中好像无法成功申请证书的解决办法。已验证
- HDU 3461 Code Lock
- POJ 3648 Wedding (Tarjan + 缩点 + 拓扑排序)
- Linux(树梅派) 主机名、密码配置
- poj 2983 差分路径+SPFA
- 171.leetcode Excel Sheet Column Number(easy)[进制转换]
- 学习资料
- Python学习笔记二:IDE环境搭建
- 存储自定义对象并遍历Student(name,age)
- Android实现多张图片合成GIF