摘要: 输入一个数n,求它最小的一个倍数(其中只含有数字1)的长度。java BigInteger 秒杀 再次感觉到java好啰嗦import java.math.*;import java.util.*;public class Main { public static void main(String[] args) { BigInteger n; Scanner cin = new Scanner(System.in); while (cin.hasNext()) { n = cin.nextBigInteger(); if (n.equals(0)) { System.o... 阅读全文
posted @ 2013-10-30 17:23 xindoo 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 对与知道并查集的人来说这题太水了,裸的并查集,如果你要给别人讲述并查集可以使用这个题当做例题,代码中我使用了路径压缩,还是有一定优化作用的。#include #include const int maxn = 500005;int n, m;int pa[maxn];void init(){ for (int i = 1; i <= n; i++) { pa[i] = i; }}int find(int x){ if (x == pa[x]) return x; return pa[x] = find(pa[x]); //路径压缩,... 阅读全文
posted @ 2013-10-30 16:41 xindoo 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 输入若干组对应关系,然后输入应该单词,输出对应的单词,如果没有对应的输出eh此题的做法非常多,很多人用了字典树,还有有用hash的,也有用了排序加二分的(感觉这种方法时间效率最差了),这里我参考了MSDN中stl,使用了map,map是基于红黑树的,查询和插入的时间复杂度都是log(n),如果你构造了一个好的哈希函数的或也可以把时间复制度降到很低。字典树应该是最快的方法了,不过结构相对来说比较复杂,代码不大容易编写(对我而言)。以下只给出我写的使用map的代码#include #include #include #include using namespace std;map m;string 阅读全文
posted @ 2013-10-30 15:59 xindoo 阅读(179) 评论(0) 推荐(0) 编辑