随笔分类 - 数论
摘要:题目传送门 看数据范围,N<=20! 你没看错,搜索都能过。 O(N^2)的做法,就是先求出有几对点之间的距离为圆周长的一半。 然后求C(N,2)即可。 code:
阅读全文
摘要:题目传送门 其实打表找一找规律可以得出: 证明则是设q/p为一条直线的斜率。 p=q时则是求直线上的整点的横纵坐标和,p≠q时则是求直线上下整点的和。 code:
阅读全文
摘要:题目传送门 设x[i]表示i+1向i传的糖果数,x[n]表示1向n传的糖果数,a'=(a[1]+...a[N])/N a[1]+x[1]−x[n]=a' a[2]+x[2]−x[1]=a' a[3]+x[3]−x[2]=a' ⋯⋯ a[n−1]+x[n−1]−x[n−2]=a' a[n]+x[n]−
阅读全文
摘要:题目传送门 找规律。 画一个像这样的图: 不同颜色为不同层,因为函数图像可对称,所以只考虑K<=N/2的情况。 最小为min(K,N-K+1)*2。 N=1时特殊考虑,答案为1。 code:
阅读全文
摘要:题目传送门 Map水过(或set也行)。 code:
阅读全文
摘要:一、欧几里得算法(辗转相除法) 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|) int gcd(in
阅读全文
摘要:A. Search for Pretty Integers: 题目传送门 题目大意:给定N和M个数,从前一个数列和后一个数列中各取一个数,求最小值,相同算一位数。 一道水题,读入A、B数组后枚举i、j判断最小值即可,注意相同时只需要一位。 B. Maximum of Maximums of Mini
阅读全文