摘要: 思路: 可以用string类型变量直接存字符串,根据题目要求确定参与计算的九个数字对应下标,用一个check变量存给定字符串的最后一位转换的数字(注意check可能是X),用sum变量存计算好的结果. 将sum % 11和check比较,如果一致输出Right,不一致将字符串最后一位改为sum%11 阅读全文
posted @ 2019-07-10 00:22 域Anton 阅读(238) 评论(0) 推荐(0)
摘要: 题目: 思路: 利用一个数组记录每个数出现的次数(数组下标是出现的数,数组的值是出现数的次数). 边输入边统计,在统计的同时,用一个变量记录出现次数的最大值. 最后通过一次遍历(从最小的数开始),一旦发现出现次数与出现次数最大值相同的值,就输出数组下标. 需要分清楚数字的个数和数字的大小范围(数组大 阅读全文
posted @ 2019-07-10 00:04 域Anton 阅读(237) 评论(0) 推荐(0)
摘要: 原题链接 基础数论中很经典的一道题 题意 给出了σ(n)的计算公式,让你找出整数1~n中有多少对应σ(n)的值是偶数. 思路 观察σ(n)的公式发现,每一个乘项都是 (piei+1 - 1) / (pi - 1) 这样,类比等比数列前n项和公式: (piei+1 - 1) / (pi - 1) = 阅读全文
posted @ 2019-05-03 15:18 域Anton 阅读(156) 评论(0) 推荐(0)
摘要: 问题: 思路: 汉诺塔问题非常经典,不懂推荐去看B站正月点灯笼老师的对于汉诺塔的讲解: 「递归练习」汉诺塔,非常生动. 不过这道题单靠传统汉诺塔解法会超时,仔细思考发现,其实没有必要同时搜索hanoi(n - 1, A, C, B)和hanoi(n - 1, B, A, C). 只需调用一次hano 阅读全文
posted @ 2019-05-01 16:06 域Anton 阅读(306) 评论(0) 推荐(0)
摘要: 题目: 样例: 思路: 首先要清楚原根这一概念,其实在数论中还挺重要的. 认识原根又需要了解阶的概念 移步巨巨的博客: 阶和原根 这道题用到的就是博客里的定理2: 每一个素数p都有ϕ(p−1)个原根。事实上, 每一个数m都有ϕ(ϕ(m))个原根(如果有的话). 所以直接求ϕ(p−1)即可 代码: 1 阅读全文
posted @ 2019-04-30 22:28 域Anton 阅读(242) 评论(0) 推荐(0)
摘要: 思路: 带权并查集+向量偏移 1 #include <iostream> 2 using namespace std; 3 int n, m; 4 int pre[200005]; 5 int f[200005]; // 到根节点的距离 6 int ans = 0; 7 8 void init() 阅读全文
posted @ 2019-04-27 23:02 域Anton 阅读(255) 评论(0) 推荐(0)
摘要: 1 #include 2 #include // 头文件 3 using namespace std; 4 5 int main() 6 { 7 vector v; // 定义一个动态数组 vector v; 8 9 // 几种初始化方式: 10 vector v1(7); // v1中会含有7个元素size() == 7, 都赋... 阅读全文
posted @ 2019-04-21 13:56 域Anton 阅读(469) 评论(0) 推荐(0)
摘要: (ans & arr[j]) == ans 保证高位已有值不失效. ((ans[j] >> (i - 1)) & 1) == 1 当前位为1,cnt++, cnt >= 2 两把剑在这一位上相与为1 阅读全文
posted @ 2019-04-19 20:37 域Anton 阅读(235) 评论(0) 推荐(0)
摘要: 数据范围是18位,把每一位加起来的和最多9*18 = 162 所以只需考虑n-162 ~ n的数即可,暴力解决 阅读全文
posted @ 2019-04-19 19:34 域Anton 阅读(173) 评论(0) 推荐(0)
摘要: 任意一堆移动过后的石子都是整数x的倍数, 那么石子总数显然也应该是x的倍数, 换句话说,x必为石子数总和的一个质因子. 题目要求移动次数尽量小,那么x也应该尽量小. 所以选择石子数总和的最小质因子. 对每堆石子数进行取模运算即可知道每堆石子需要移走或增加多少石子. 然后就可以开始模拟了. 把取模后的 阅读全文
posted @ 2019-04-19 18:12 域Anton 阅读(199) 评论(0) 推荐(0)