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; }
查看全文
相关阅读:
环境变量
多重继承
参数检查(@property)
限制属性绑定(__slots__)
实例属性和类属性
2017-11-28 中文编程语言之Z语言初尝试: ZLOGO 4
2017-10-23 在各种编程语言中使用中文命名
2017-11-27 汉化了十数个编译器的前辈的心得体会
五行
阴阳
原文地址:https://www.cnblogs.com/windmissing/p/2559863.html
最新文章
设计模式资源总结---模式无处不在
Java网上学习资料
C程序的内存分配
Java RMI学习
分布式系统&并发编程论文阅读计划
互联网文化
JavaWeb开发回顾总结【不断更新中】
算法: 包含min函数的栈
算法:顺时针打印矩阵
算法:二叉树镜像
热门文章
算法:数的子结构
算法:反转链表。
算法:合并两个排序的链表
Servlet工作原理解析 《深入分析java web 技术内幕》第九章
算法:调整数组顺序,使奇数位于偶数前面;
算法:输入一个链表,输出该链表中倒数第k个结点。
关于bug的一些思考
可迭代对象(__iter__()和__next__())
打印对象(__str__()和__repr__())
实例调用(__call__())
Copyright © 2011-2022 走看看