摘要: 并查集的优势在于合并与查询快速(路径压缩后) 在union操作中,如果不按照根结点合并的原则很容易漏点造成合并的集合只有部分进行合并而剩下一部分并当作另一个部分。 比如我一开始处理有相同爱好的人群,使用了: for(int j = 0; j < hobby[i].size()-1;j++){//从1 阅读全文
posted @ 2020-08-26 23:50 是水泵呢 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 题意:回文字,对输入数值进行判断,若不是回文,则反转相加继续。 分析:数值1010,再迭代相加100次,大概达到1040级;long long型也不足以表示,需要使用字符型处理。使用字符串的转化为大数数组处理。 注意:大数运算是唯一long long也无法处理的数据大小,结果输出处需要迭代输出 #i 阅读全文
posted @ 2020-08-26 19:00 是水泵呢 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 这一道大数乘法问题,要注意输入是按照字符串进行读入并且为了满足大小位关系采用逆序转换 要注意数组的意义以及循环结构和判断结构的边界 代码如下: #include<cstdio> #include<string.h> using namespace std; const int N = 30; str 阅读全文
posted @ 2020-08-26 12:07 是水泵呢 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 思路分析:如果输入n为素数,那么因数只可能为自己,因为题目说了不包括1。故第一行输出1,第二行输出n。 如果一个数为合数,则该数的因数的最大上限为sqrt(n)。 使用一个二重循环,外层循环枚举i从2到sqrt(n)表示枚举第一个因数。内层循环枚举j从i到sqrt(n)表示所有连续的因数 temp为 阅读全文
posted @ 2020-08-26 00:02 是水泵呢 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 这是一道哈希散列的二次方探查法的问题,其中也用到了素数的判定问题,要注意的是:1不是素数 哈希散列中的二次方探查法主要流程如下: 如果hashTable里面key % size的下标对应的hashTable为false,说明这个下标没有被使用过,直接输出。(这些size必须满足题目给的条件,即是一个 阅读全文
posted @ 2020-08-25 23:03 是水泵呢 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 这是一道素数判断问题,虽然思路很明确,要注意的是文中的D代表的是素数的进制,但是素数的判断要在十进制的范围内来做。 一点经验:如果说一道题目已经拿到了大部分的分数,说明代码整体是正确的,只是一些输入的特殊情况没有考虑在内,此时应该重新读题,发现并考虑如何处理这些特殊输出 例如bool isprime 阅读全文
posted @ 2020-08-25 12:55 是水泵呢 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 其实就是一个简单的分数四则运算的题目,但是出现了几点我自己难以预料的错误,要引以为戒 必须要用long long 型否则,进行乘法运算容易越界 //\ 我是打算简单的表示除法运算的但是如果后面紧跟一个函数,容易造成程序编译出错,这个排错用了很久 在输出部分,分数的假分数表示,要注意第二个分母必须取正 阅读全文
posted @ 2020-08-25 03:07 是水泵呢 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 这是一道关于gcd的题目,还是需要仔细感受一下gcd中间代码的简洁与巧妙 要注意算法的优化,使得移动次数减少了gcd(n,m)倍 代码如下 #include<cstdio> //最大公约数 int gcd(int a,int b){ if(b==0) return a; else return gc 阅读全文
posted @ 2020-08-25 00:36 是水泵呢 阅读(56) 评论(0) 推荐(0) 编辑
摘要: Question The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 阅读全文
posted @ 2020-08-24 23:56 是水泵呢 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 这题最后两个测试总是跑不通,最后发现是加法和乘法运算中数值较大,double和int的精度都不够,得使用long double和long int才行。 #include<cstdio> using namespace std; const int N = 100010; long int dp[N] 阅读全文
posted @ 2020-08-24 19:49 是水泵呢 阅读(63) 评论(0) 推荐(0) 编辑