zoukankan
html css js c++ java
HDU3461 Code Lock 并查集应用
/* 这题程序不难,关键想法比较难,以下内容来自别人的空间 如果没有区间存在,答案是26^n,每增加一个区间,n-1(因为这个区间可以变成26种状态~). 但是要注意的是,比如已经有(1,10)和(1,3)在了,此时再增加(4,10)就没有作用了 使用并查集对于[l,r]我们将l,r+1两个点并起,如果新线段的两个点是同一个集合,就不用减了 */ #include <iostream> #include "UFS.h" #include <cmath> using namespace std; int mod = 1000000007; int exp(int a, int n); UFS ufs; int main() { int n,m, ans; while(cin>>n>>m) { ans = n; ufs.clear(); while(m--) { int a,b; cin>>a>>b; if(ufs.Find(a) != ufs.Find(b+1)) { ufs.Union(a, b+1); ans--; } } cout<<exp(26, ans)<<endl; } return 0; } //非递归求幂 int exp(int a, int n) { __int64 temp1 = 1, temp2 = a; while(n) { if(n & 1) temp1 =( temp1 * temp2 ) % mod; n>>=1; temp2 =( temp2 * temp2 ) % mod; } return temp1; }
查看全文
相关阅读:
数据结构的基本概念
react 组件生命周期
设计模式
MySQL processlist/kill
大数据新手之路四:联合使用Flume和Kafka
大数据新手之路三:安装Kafka
大数据新手之路二:安装Flume
大数据新手之路一:安装JDK
tmux常用快捷键
(转)Linux下设置和查看环境变量
原文地址:https://www.cnblogs.com/windmissing/p/2559863.html
最新文章
关于自动构建代码与版本号的问题
es6 Promise使用过程中定义多个reject,reject会被执行多次么?
自嗨锅的加热原理
Nodejs自有阿里云如何对接微信的imgSecCheck
Nodejs日常需要的操作和对应的参考地址
Nightingale——修改报警中的报警策略报警详情域名
PHP——将网络图片转为Base64
Nightingale——夜莺监控系统部署企业微信机器人告警系【四】
Nightingale——夜莺监控系统部署邮件告警系统【三】
Nightingale——部署客户端采集其他服务器状态信息
热门文章
GoLand——windows下如何编译Linux二进制文件
SpringBoot——日志【六】
PhpStorm——连接数据库报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
WAMP——配置HTTPS证书
修改host
CSS — BEM 命名规范
设置多个className
react的3种组件
typescript简介
算法的基本概念
Copyright © 2011-2022 走看看