![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acwing基础算法
摸鱼好手狸狸子
万恶的汇编语言…不许摆烂!
展开
-
【基础算法】快速幂(Acwing875题)
题目描述:给定n组ai,bi,pi,对于每组数据,求出ai^bi mod pi的值。输入格式第一行包含整数n。接下来n行,每行包含三个整数ai,bi,pi。输出格式对于每组数据,输出一个结果,表示ai^bi mod pi的值。每个结果占一行。数据范围1≤n≤100000,1≤ai,bi,pi≤2∗输入样例23 2 54 3 9输出样例41代码#include <iostream>using namespace std;.原创 2022-01-16 20:52:50 · 360 阅读 · 0 评论 -
【基础算法】筛法求欧拉函数(Acwing784题)
题目给定一个正整数n,求1~n中每个数的欧拉函数之和。输入格式共一行,包含一个整数n。输出格式共一行,包含一个整数,表示1~n中每个数的欧拉函数之和。数据范围1≤n≤输入样例6输出样例12代码#include <iostream>using namespace std;typedef long long ll;const int N = 1000005;int primes[N],euler[N],cnt;bool st[N];原创 2022-01-16 19:38:45 · 254 阅读 · 0 评论 -
【基础算法】欧拉函数(Acwing873题)
题目给定n个正整数ai,请你求出每个数的欧拉函数。欧拉函数的定义输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai。输出格式输出共n行,每行输出一个正整数ai的欧拉函数。数据范围1≤n≤100,1≤ai≤2∗输入样例3368输出样例224代码#include<bits/stdc++.h>using namespace std;int euler(int x){ int res=x; for(int原创 2022-01-15 18:36:41 · 273 阅读 · 0 评论 -
【基础算法】最大公约数(Acwing872题)(辗转相除法)
题目给定n对正整数ai,bi,请你求出每对数的最大公约数。输入格式第一行包含整数n。接下来n行,每行包含一个整数对ai,bi。输出格式输出共n行,每行输出一个整数对的最大公约数。数据范围1≤n≤,1≤ai,bi≤2∗输入样例23 64 6输出样例32代码#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ return b?gcd(b,a%b):a原创 2022-01-15 18:04:17 · 151 阅读 · 0 评论 -
【基础算法】约数个数&约数之和(Acwing870题&Acwing871题)
关于约数如果 N = p1^c1 * p2^c2 * ... *pk^ck约数个数: (c1 + 1) * (c2 + 1) * ... * (ck + 1)约数之和: (p1^0 + p1^1 + ... + p1^c1) * ... * (pk^0 + pk^1 + ... + pk^ck)关于取模(a + b) % p = (a%p + b%p) %p (a - b) % p = (a%p - b%p) %p (a * b) % p = (a%p * b%p) %p 8..原创 2022-01-15 17:48:35 · 178 阅读 · 0 评论 -
【基础算法】试除法求约数(Acwing869题)
题目给定n个正整数,对于每个整数,请你按照从小到大的顺序输出它的所有约数。输入格式第一行包含整数n。接下来n行,每行包含一个整数。输出格式输出共n行,其中第 i 行输出第 i 个整数的所有约数。数据范围1≤n≤100,2≤≤2∗输入样例2 68输出样例1 2 3 61 2 4 8代码#include<bits/stdc++.h>using namespace std;int main(){ int n,m; cin&.原创 2022-01-15 16:14:05 · 132 阅读 · 0 评论 -
【基础算法】筛质数(Acwing868题)
题目给定一个正整数n,请你求出1~n中质数的个数。输入格式共一行,包含整数n。输出格式共一行,包含一个整数,表示1~n中质数的个数。数据范围1≤n≤输入样例8输出样例4代码方法一:埃氏筛法#include <iostream>using namespace std;const int N = 1000005;bool st[N];int main(){ int n,res = 0; cin>>n;原创 2022-01-15 15:35:40 · 100 阅读 · 0 评论 -
【基础算法】分解质因数(Acwing867题)
题目给定n个正整数,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai。输出格式对于每个正整数,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,每个底数和指数占一行。每个正整数的质因数全部输出完毕后,输出一个空行。数据范围1≤n≤100,1≤≤2∗输入样例268输出样例2 13 12 3代码#include<bits/st..原创 2022-01-15 15:12:04 · 298 阅读 · 0 评论 -
【基础算法】试除法判断质数(Acwing866题)
给定n个正整数,判定每个数是否是质数。输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai。输出格式共n行,其中第 i 行输出第 i 个正整数是否为质数,是则输出“Yes”,否则输出“No”。数据范围1 ≤ n ≤ 100,1 ≤ ≤ −1输入样例:226输出样例:YesNo代码#include<bits/stdc++.h>using namespace std;int judge(int x){ if(..原创 2022-01-15 14:42:23 · 112 阅读 · 0 评论 -
【基础算法】高精度除法(Acwing794题)
题目给定两个非负整数A,B,请你计算 A / B的商和余数。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000 ,1≤B≤10000B 一定不为0输入样例72输出样例31代码#include<bits/stdc++.h>using namespace std;vector<int> div(vector<int>A原创 2022-01-15 12:52:10 · 170 阅读 · 0 评论 -
【基础算法】高精度乘法(Acwing793题)
题目给定两个正整数A和B;请你计算A * B的值。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共一行,包含A * B的值。数据范围1 ≤ A 的 长 度 ≤ 1000000 ,1≤B≤10000输入样例23输出样例6代码#include<bits/stdc++.h>using namespace std;vector<int>mul(vector<int>A,int b){ vecto原创 2022-01-15 12:43:33 · 127 阅读 · 0 评论 -
【基础算法】高精度减法(Acwing792题)
给定两个正整数,计算它们的差,计算结果可能为负数。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的差。数据范围1≤整数长度≤10e5输入样例3211输出样例21代码#include<bits/stdc++.h>using namespace std;const int N=1e6+10;bool cmp(vector<int>a,vector<int>b){ if(a.size()!=b.siz原创 2022-01-15 12:31:51 · 142 阅读 · 0 评论 -
【基础算法】高精度加法(Acwing791题)
题目给定两个正整数(不含前导0),计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤100000输入样例1223输出样例35代码#include<bits/stdc++.h>using namespace std;vector<int>add(vector<int>a,vector<int>b){ vector<int>c; .原创 2022-01-12 21:57:45 · 274 阅读 · 1 评论 -
【基础算法】数的三次方根(Acwing790题)
题目给定一个浮点数 n,求它的三次方根。输入格式共一行,包含一个浮点数 n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留 6 位小数。数据范围−10000≤n≤10000输入样例1000.00输出样例10.000000代码#include<bits/stdc++.h>using namespace std;int main(){ double x; cin>>x; int f=1;//用来判断原创 2022-01-12 21:08:04 · 283 阅读 · 0 评论 -
【基础算法】数的范围(Acwing789题)
题目给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 kk 的起始位置和终止位置(位置从 00 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼100001∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数原创 2022-01-12 20:48:26 · 62 阅读 · 0 评论 -
【基础算法】归并排序(Acwing787题)
原题给定你一个长度为 n 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在 1∼ 范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤100000输入样例53 1 2 4 5输出样例1 2 3 4 5代码include<bits/stdc++.h>using nam转载 2022-01-12 20:16:41 · 40 阅读 · 0 评论 -
【基础算法】快速排序(Acwing785题)
原题给定你一个长度为 n 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n 。第二行包含 n个整数(所有整数均在1~范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤100000输入格式53 1 2 4 5输出格式1 2 3 4 5代码#include<bits/stdc++.h>using ..原创 2022-01-12 18:05:33 · 60 阅读 · 0 评论