随笔分类 -  数论

摘要:题目传送门 看数据范围,N<=20! 你没看错,搜索都能过。 O(N^2)的做法,就是先求出有几对点之间的距离为圆周长的一半。 然后求C(N,2)即可。 code: 阅读全文
posted @ 2018-02-11 15:03 Cptraser 阅读(147) 评论(0) 推荐(0)
摘要:题目传送门 其实打表找一找规律可以得出: 证明则是设q/p为一条直线的斜率。 p=q时则是求直线上的整点的横纵坐标和,p≠q时则是求直线上下整点的和。 code: 阅读全文
posted @ 2018-01-21 19:14 Cptraser 阅读(126) 评论(0) 推荐(0)
摘要:题目传送门 设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]− 阅读全文
posted @ 2018-01-09 19:24 Cptraser 阅读(124) 评论(1) 推荐(0)
摘要:题目传送门 找规律。 画一个像这样的图: 不同颜色为不同层,因为函数图像可对称,所以只考虑K<=N/2的情况。 最小为min(K,N-K+1)*2。 N=1时特殊考虑,答案为1。 code: 阅读全文
posted @ 2018-01-09 12:56 Cptraser 阅读(85) 评论(1) 推荐(0)
摘要:题目传送门 Map水过(或set也行)。 code: 阅读全文
posted @ 2018-01-07 19:58 Cptraser 阅读(149) 评论(1) 推荐(0)
摘要:一、欧几里得算法(辗转相除法) 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|) int gcd(in 阅读全文
posted @ 2017-12-21 18:14 Cptraser 阅读(433) 评论(1) 推荐(0)
摘要:A. Search for Pretty Integers: 题目传送门 题目大意:给定N和M个数,从前一个数列和后一个数列中各取一个数,求最小值,相同算一位数。 一道水题,读入A、B数组后枚举i、j判断最小值即可,注意相同时只需要一位。 B. Maximum of Maximums of Mini 阅读全文
posted @ 2017-10-16 15:44 Cptraser 阅读(203) 评论(0) 推荐(0)