题意描述:有一个类似滚轮式的密码锁放在一排共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的更多相关文章

  1. Code Lock[HDU3461]

    Code LockTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Subm ...

  2. 【uva12232/hdu3461】带权并查集维护异或值

    题意: 对于n个数a[0]~a[n-1],但你不知道它们的值,通过逐步提供给你的信息,你的任务是根据这些信息回答问题: I P V :告诉你a[P] = V I P Q V:告诉你a[P] XOR a ...

  3. hdu3461 Code Lock

    Problem Description A lock you use has a code system to be opened instead of a key. The lock contain ...

  4. hdu 3038 How Many Answers Are Wrong(种类并查集)2009 Multi-University Training Contest 13

    了解了种类并查集,同时还知道了一个小技巧,这道题就比较容易了. 其实这是我碰到的第一道种类并查集,实在不会,只好看着别人的代码写.最后半懂不懂的写完了.然后又和别人的代码进行比较,还是不懂,但还是交了 ...

随机推荐

  1. bzoj21012101: [Usaco2010 Dec]Treasure Chest 藏宝箱(滚动数组优化dp)

    2101: [Usaco2010 Dec]Treasure Chest 藏宝箱 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 592  Solved:  ...

  2. HTML 5.1 -- 14项新增功能及如何使用

    最近太忙了 过完年来 连续的加班让我筋疲力尽,今天终于把东西交了,抽空来点干货吧! 1. 响应式图像 W3C 引入了一些功能特性,无需使用 CSS 就可以实现响应式图像.它们是 … srcset 图像 ...

  3. 乐搏讲自动化测试-Python发展背景(1)

    相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...

  4. [笔试面试题] 3-C++关键字篇

    C/C++关键字篇   语言是编程的基础,掌握基本的语言知识是编程的前提条件.关键字是组成语言的最基本单位,对关键字的理解,有助于编写高质量的代码. 1 static(静态)变量有什么作用? 在函数体 ...

  5. select多选

    1.css <style> .divBox{ width:400px; margin:100px auto; } .divBox span{ vertical-align:top; dis ...

  6. 学习笔记 第五章 使用CSS美化网页文本

    第五章   使用CSS美化网页文本 学习重点 定义字体类型.大小.颜色等字体样式: 设计文本样式,如对齐.行高.间距等: 能够灵活设计美观.实用的网页正文版式. 5.1 字体样式 5.1.1 定义字体 ...

  7. Angular JS (2)

    通过Angular JS的官方教学文档,了解 routeProvider 的用法, angular.module('aaa').config(['$locationProvider','$routeP ...

  8. pyrthon 简单爬虫实现

    简单爬虫的通用步骤 BY ZKEEER 2017-09-03 2 COMMENTS   本文首发:ZKeeer’s Blog——简单爬虫的通用步骤代码基于 python3.5多图预警,长文预警 知识点 ...

  9. margin与padding如何进行区分

    margin与padding如何进行区分,这是很多学html人的困扰,其实说白了padding 就是内容与边框的空隙.而margin则是模块与模块的空隙.[3]

  10. IntelliJ IDEA 2017安装和破解方法

    一,安装 这里是windows下的安装,另外还有mac和linux下的版本,可自行解决 下载并安装IDEA官网:https://www.jetbrains.com/idea/ 或者百度网盘2017版本 ...