
数论
x
SYaoJun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1922. 统计好数字的数目
分析题目1922. 统计好数字的数目思路快速幂,注意处理溢出,模板题代码class Solution {public: using LL = long long; const static int MOD = 1e9+7; LL qmi(LL a, LL b){ LL res = 1; while(b){ if(b&1) res = (res * a) % MOD;原创 2021-10-23 00:18:29 · 215 阅读 · 0 评论 -
拼多多笔试题【数三角形】
牛客网题目链接向量三角形只需要判断是否共线就行了三个点只要不共线,就能组成三角形#include <iostream>using namespace std;int main(){ int n, cnt = 0; scanf("%d", &n); int x[n], y[n]; for(int i = 0; i < n; i++){ scanf("%d %d", &x[i], &y[i]); } // 三角形只需要判断是否共线就行了原创 2021-06-03 10:15:06 · 179 阅读 · 0 评论 -
1113 矩阵快速幂
题目链接解题思路类似于数的快速幂,利用2的幂次,把AnA^nAn转换为A21+22+23+...+2kA^{2^1+2^2+2^3+...+2^k}A21+22+23+...+2k主要分为两个方法,首先实现两个矩阵相乘,然后实现矩阵的快速幂计算。注意矩阵相乘时的下标,还有初始化结果矩阵为单位矩阵。#include <algorithm>#include <array>#include <cmath>#include <deque>#inclu原创 2020-09-06 17:28:06 · 233 阅读 · 0 评论 -
1232. 缀点成线
题目难度:简单类型:数学题意:判断一系列点是否在同一直线上。类似于直线上最多的点数leetcode149。这道题的思路是首先确定两个点的斜率,然后判断后面的点构成的斜率是否和最开始的斜率相同。class Solution {public: bool checkStraightLine(vector<vector<int>>& coor) { ...原创 2020-04-10 09:27:42 · 153 阅读 · 0 评论 -
218. 天际线问题
题目:218. The Skyline Problem难度:困难类型:扫描线 大根堆 平衡二叉树星级:五星推荐class Solution {public: vector<vector<int>> getSkyline(vector<vector<int>>& buildings) { //注意重叠 建筑的左...原创 2020-03-30 13:31:17 · 237 阅读 · 0 评论 -
149. 直线上最多的点数
题目:149. Max Points on a Line类型:数学 斜率 最大公约数难度:困难星级:五星推荐题意:找到一条直线上最多的点,注意点有可能有重叠,斜率可能为0和无穷大。推荐:花花酱视频讲解class Solution {public: int maxPoints(vector<vector<int>>& points) { ...原创 2020-03-30 11:54:14 · 187 阅读 · 0 评论 -
末尾0的个数
题目类型:数学规律公司:滴滴题意:找到n!n!n!后有多少个0,实际是计算可以被5除多少次,因为10=2*5,1个零就有1个5。#include <bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; int res = 0; while(n){ res += n/5; n /=...原创 2020-03-27 14:30:01 · 219 阅读 · 0 评论 -
整数反转
题目公司:迅雷类型:数学规律题意:把一个32位的有符号整数反转。注意虽然输入保证是32位的,但是反转过后就可能溢出,所以直接用longlong存。这道题是leetcode上的原题。#include <bits/stdc++.h>using namespace std;const int N = 1e5+5;int a[N];int main(){ long long ...原创 2020-03-27 14:02:16 · 184 阅读 · 0 评论 -
1033. 移动石子直到连续
题目类型:数学规律难度:简单题意:先排序,由于只能移动两边的石头,所以可以找一下规律。class Solution {public: vector<int> numMovesStones(int a, int b, int c) { int x = min(min(a,b), c); int z = max(max(a,b), c);...原创 2020-03-27 09:20:21 · 163 阅读 · 0 评论 -
求表达式
公司:哔哩哔哩类型:数学题目思路:暴力枚举计算n!n!n!的方式,即除5统计。#include <bits/stdc++.h>using namespace std;//const int N = 1e5+5;//int arr[N];int main(){ int n; int res = 0; scanf("%d", &n); for(int i =...原创 2020-03-26 21:37:25 · 240 阅读 · 0 评论 -
60. 第k个排列
数学规律难度:中等推荐视频:米开版本1【数学规律】class Solution {public: string getPermutation(int n, int k) { //2020.2.28 评论题解 数学规律 string temp = "123456789"; string res; vector<i...原创 2020-02-28 14:21:38 · 108 阅读 · 0 评论 -
754. 到达终点数字
数学规律难度:中等推荐学习视频:花花酱class Solution {public: int reachNumber(int target) { // t = k*(k+1)/2 => k = sqrt(2*t) 2020.2.27 数学规律 //优先找到平方根附近的数 然后计算目标值与实际值的差值d 如果d是偶数 //说明...原创 2020-02-27 23:22:01 · 173 阅读 · 0 评论 -
2. 分式化简
最大公约数注意:输出之间的分子分母不用交换class Solution {public: int gcd(int a, int b){ if(b == 0) return a; return gcd(b, a%b); } vector<int> fraction(vector<int>& cont) {...原创 2019-12-19 11:45:44 · 219 阅读 · 0 评论 -
1152 Google Recruitment (20 分)
版本1截取N位长的数字,判断是否为素数。主要不用直接用cout输出substr,因为有可能会去掉首部的前导零。#include <cstdio>#include <cmath>#include <iostream>#include <string>using namespace std;bool isprime(int n){ if...原创 2019-12-02 20:17:01 · 147 阅读 · 0 评论 -
包含一
牛客网题目链接这道题和统计1的个数很像,但是有区别,在另一个题中11是算作两个1,而这里只算1个1。#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <cstring>...原创 2019-10-24 22:33:12 · 158 阅读 · 0 评论 -
1019 数字黑洞 (20 分)
查看原题目请点我解题思路:主要是将数字每位拆分后放在数组上,然后对数组进行升序和降序排列,再将数组中的数字计算出来,最后判断是6174或者0不再循环。还有一些细节方面的问题,如果写代码的时候注意到,就可以直接得满分,而不用纠结某个测试点一直过去,其实有时候就是习惯问题,比如声明变量时顺便赋值为0,还有数组每次计算完后要置0等等。#include&lt;cstdio&gt;#include...原创 2018-03-15 18:39:37 · 362 阅读 · 0 评论 -
869. 试除法求约数
#include <iostream>#include <cmath>#include <vector>using namespace std;int main(){ int n, x; cin>>n; while(n--) { vector<int> v; cin>&...原创 2019-09-11 20:08:30 · 246 阅读 · 0 评论 -
找出单独出现的数字
#include <bits/stdc++.h>using namespace std;int main(){ int a; int ans = 0; while(cin>>a){ ans^=a; } cout<<ans<<endl; return 0;}原创 2019-09-04 16:41:56 · 248 阅读 · 0 评论 -
1003 阶乘后面0的数量
题目链接#include <iostream>#include <vector>using namespace std;int cal(int n, int p){ int ans = 0; while(n){ ans += n/p; n /= p; } return ans;}int main(){ int n; cin>>n;...原创 2019-09-04 15:06:30 · 102 阅读 · 0 评论 -
867. 分解质因数
题目链接注意1.试除到根号n,并且包括根号n2.如果n不等于1,说明存在一个大于根号n的质数#include <iostream>#include <cmath>using namespace std;int main(){ int n, x; cin>>n; for(int i = 0;i < n; i++){ ...原创 2019-09-04 07:54:12 · 410 阅读 · 0 评论 -
801. 二进制中1的个数
题目链接#include<iostream>using namespace std;int main(){ int n, x; cin>>n; for(int i = 0;i < n; i++){ cin>>x; int res = 0; while(x){ ...原创 2019-09-03 19:44:59 · 165 阅读 · 0 评论 -
1009 数字1的数量
51nod题目链接传说中的数位DP#include <iostream>#include <vector>#include <algorithm> #include <cmath>#include <cstring>using namespace std;int main(){ string str; cin>...原创 2019-09-02 14:39:58 · 183 阅读 · 0 评论 -
AcWing 90. 64位整数乘法
#include<iostream>using namespace std;typedef unsigned long long ULL;int main(){ ULL a, b, p; cin >> a >> b >> p; ULL res = 0; while(b){ if(b&am...原创 2019-09-02 07:10:49 · 111 阅读 · 0 评论 -
1037 在霍格沃茨找零钱 (20 分)
#include <string>#include <vector>#include <set>#include <unordered_map>#include <iostream>#include <algorithm> #include <cstdio> using namespace std;...原创 2019-09-01 07:22:41 · 127 阅读 · 0 评论 -
1026 程序运行时间 (15 分)
注意:\color{red}注意:注意:四舍五入可以通过对浮点数加0.5再取整而获得#include <string>#include <cstdio>#include <iostream>#include <set>#include <algorithm> using namespace std;int main(){...原创 2019-08-31 13:34:41 · 156 阅读 · 0 评论 -
1022 D进制的A+B (20 分)
从题目中可以看出,a+b不会超出int的范围,所以先将a+b计算出来后,进行进制转换。#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){ int a, b, d; cin >> a >> b >&...原创 2019-08-30 17:11:32 · 164 阅读 · 0 评论 -
1011 A+B 和 C (15 分)
明显题目在考查对整数溢出的处理。但是由于还有long long存在,所以可以投机一波技巧版#include <iostream>#include <string>#include <vector>#include <cctype>#include <algorithm>using namespace std;int ma...原创 2019-08-30 16:59:41 · 195 阅读 · 0 评论 -
1010 一元多项式求导 (25 分)
题目链接:https://www.patest.cn/contests/pat-b-practise/1010 解题思路:这道题很简单,但是有个坑,就是当没有任何非零项时,要输出0 0#include int main(){ int x,y; int tag =0; while(scanf("%d%d",&x,&y)!=EOF){ if(y!=0){原创 2018-02-05 00:44:42 · 268 阅读 · 2 评论 -
1013 数素数 (20 分)
这道题是很明显的素数筛选模板题需要注意的地方1.第一个素数是2,依次类推。2.每十个输出一次换行,注意最后一个数据后面要特判,不能加多余的空格。#include <iostream>#include <string>#include <vector>#include <cctype>#include <algorithm>...原创 2019-08-30 16:47:06 · 159 阅读 · 0 评论 -
1091 N-自守数 (15 分)
这里有个小技巧直接通过判断数值是几位数,来确定模的值。注意数据的范围是小于10的所以直接循环一遍就ok了#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <unordered...原创 2019-08-30 16:03:13 · 163 阅读 · 0 评论 -
阶乘尾零
阶乘后面0的数量跟5有关直接除class Factor {public: int getFactorSuffixZero(int n) { int res = 0; while(n){ res += n/5; n /= 5; } return res; }};...原创 2019-09-13 09:27:33 · 170 阅读 · 0 评论 -
2的个数
class Count2 {public: int countNumberOf2s(int n) { string str = to_string(n); int res = 0; for(int i = 0; i < str.size(); i++){ int l = 0, r = 0, p = 1; ...原创 2019-09-19 19:30:20 · 168 阅读 · 0 评论 -
1014因子个数
https://www.nowcoder.com/pat/2/problem/264 吐槽:必须要先计算好,然后直接输出,不然会超时。 主要是两个函数,一个素数表,一个因子个数#include#define N 100005int p[N]={0};int prime[N];int k=0;int f[N];void prime_table(){ for(int i=2原创 2018-01-26 16:56:25 · 492 阅读 · 0 评论 -
7-4 性感素数 (20 分)
最开始就理解错题意了每次都要判断比该数大6或者小6的情况。最开始我想着既然原数不是sexy prime则肯定在大于6的情况中找,但是我忽略了n到n+6这之间的数,与它小6的数构成sexy primes#include <iostream>#include <vector>#include <string>#include <cmath>...原创 2019-10-04 22:17:49 · 332 阅读 · 0 评论 -
7-1 Sexy Primes (20 分)
最开始就理解错题意了每次都要判断比该数大6或者小6的情况。最开始我想着既然原数不是sexy prime则肯定在大于6的情况中找,但是我忽略了n到n+6这之间的数,与它小6的数构成sexy primes#include <iostream>#include <vector>#include <string>#include <cmath>...原创 2019-10-04 10:34:51 · 517 阅读 · 0 评论 -
中位数【北京大学】
注意要排序#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#include <cstdio>#include <cctype>...原创 2019-10-02 09:24:20 · 153 阅读 · 0 评论 -
球的半径和体积【清华大学】
注意这里的PI可以直接上网查数值也可以用库函数中的arccos(-1)#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#include <cst...原创 2019-10-02 09:03:28 · 194 阅读 · 0 评论 -
递推数列【清华大学】
类似于斐波那契数列的扩展唯一需要注意的地方是在计算的过程中取模#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>using namespace std;...原创 2019-10-02 09:02:46 · 243 阅读 · 0 评论 -
今年的第几天?【清华大学】★
注意1.闰年是356天,所以2月份是多一天2.注意判断天数超过每个月份的最大值#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>using names...原创 2019-10-02 09:02:15 · 109 阅读 · 0 评论 -
N阶楼梯上楼问题【华中科技大学】
斐波那契数列在long long范围内最大可达103#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#include <cstdio>#i...原创 2019-10-02 21:59:20 · 256 阅读 · 0 评论