传送门 题目大意给你次询问,每次给你一个。 然后让你输出,这个数中的因子有多少个并没有在这个数的前个数的因子中出现过。思路标记前面出现的因子,代表这个是在第个数出现的,这样就可以将复杂度降下来~。代码int n,x[maxn],y[maxn];int a[maxn][300];map<int,int>mp;int b[maxn];int main(){ scanf("%d",
传送门题目大意问字典序第kkk大的1−n1-n1−n的排列中的只由444和777组成的数且位置上也是由444和777构成的数的个数。思路代码
传送门题目大意给你nnn个数,去掉尽量少的数使得剩下数的gcdgcdgcd比原来的大,无解输出−1-1−1。思路代码
传送门 题目大意给你一个质数和一个序列。 计算。对和式通分后得到,其中,,现在,要求你求出和的最大公因子,答案对取余。思路我们知道 若是存在个,那么可以合并成一个,我们可以一直合并,去最小的就是答案。代码const int maxn = 1e6+7;const ll mod = 1e9+7;const ll INF=5e18+7;const int inf=1e9+7;const ll m
传送门 题目大意给定两个整数 。计算满足条件 且 的整数的个数。思路令,那么 那么答案就是。代码ll euler(ll n){ ll res=n; for(ll i=2;i*i<=n;i++){ if(n%i==0){//i一定是素数 res=res/i*(i-1);//根据公式求得 while(n%i==0) n/=i; } } if(n&g
传送门题目大意思路找质因子的贡献,即n!n!n!有多少个质因子.代码ll x,n;ll ans=1;vector<ll>v; void init(ll tmp){ for(ll i=2;i*i
传送门 题目大意有个数,从中挑选一个最大的子集,使得集合中任意两个不同的数,都存在或。思路挑选的子集排序后,$a_i_应该是前面数的倍数。 那么题意就简化为:要想最终的序列排序后满足每个数是它前面所有的数的倍数最少删掉多少数。表示以为最终序列的最大数时,最终序列有多少数。 我们枚举的因数,记,取,这就是最终序列中除了外的数的数量,那么。代码const int maxn = 1e6+7;co
传送门题目大意有一个长度为nnn的数列aaa,它可以生成一个n2n^2n2的数表,数表的第iii行第jjj列存放的数字是g
传送门题目大意给两个整数u,v,(u,v≤1018)u,v,(u,v\leq 10^{18})u,v,(u,v≤1018),求出长度最短的数组,使得数组内元素按位异或为uuu,元素之和为vvv。如果有解,输出两行,第一行输出一个数nnn,第二行输出nnn个数,表示数组里的元素。如果有多个答案,输出任意一组。如果无解,输出−1-1−1。思路代码...
传送门题目大意给你a,b(1≤b≤a≤5∗106)a,b(1\leq b\leq a\leq 5*10^6)a,b(1≤b≤a≤5∗106)表示a!/b!a!/b!a!/b!表示的
题库链接:https://codeforces.com/contest/1413A. Finding Sasuke 题意:给你一个序列a(长度为n,且n为偶数),让你构造一个序列b,使得 思路:暴力寻找,每两个为一组 代码:int main(){ int t; cin>>t; while(t--){ int n; cin>>n; int a[
传送门题目大意找出a,ba,ba,b的最大公因子,然后给几个查询,每次查询包含l,rl,rl,r两个数字,查询在l,rl,rl,r之间的a,ba,ba,
传送门题目大意现在给定一个正整数序列a,a+1,a+2,...b,(a≤b)a,a+1,a+2,...b,(a\leq b)a,a+1,a+2,...b,(a≤b),请找出一个最小值lll,使其
传送门 题意问到内有多少个数满足思路发现当为倍数的时候,再连续个数字,是那个式子满足相等的。说明循环周期是一个 我们可以使用前缀和处理出中符合条件的数,对于和,只需要计算 最终答案即代码ll gcd(ll a,ll b){ return !b?a:gcd(b,a%b);}ll a,b,q,l,r,lc;ll s[maxn];void init(){ for(int i=1;i<=
传送门题目大意n个数 m个操作‘+’代表打开对撞机‘-’ 代表关闭对撞机前提保证打开的对撞机两两互质打开:可以激活 输出“Success”已经激活了 输出“Already o
传送门题目大意
传送门题目大意给出n对数,问是否存在一个数,使得没对数都能找出至少一个数的因子包含该数。思路找到第一对数所有的质因子,暴力查找
传送门 题目大意给定长度为(为偶数)的数列的偶数项,求出数列的奇数项,使得对于任意为平方数,若无解输出,否则先输出一行,再输出,若有多解输出任意一组解。数组奇数项不超过,偶数项不超过。思路一边计算一边维护前缀和 差分序列中的一项,必定要满足有,即,那么现在已知 把因式分解,使为的一对因子。 设其中一个因子为,另一个为,不妨设为一对之中大的那个因子,那么令联立两式可解得,。那么存在的充分必要
传送门 题目大意给你一个长度为的序列,找到最大的子序列,使得子序列内任意两个数的和为素数思路因为,所以可以输出个数。 答案最后分为四种情况: 全是个,另一个数+是素数 两个数和是素数 一个数代码int n;int a[maxn];bool vis[maxn];//标记非素数,0是素数int primer[maxn/10];//存素数int cnt=0;//记录素数个数,void find_
传送门题目大意给你两个数n,k,问n mod i(1<=i<=k)是不是都不相同思路暴力打表找规律发现n%i
传送门 题目大意假设我们有一对数字。我们可以在一步中从给定的对中得到一个新的对或。 让最初的一对数字是。你的任务是找到数字,也就是说,将转换成至少一个数字等于的一对所需的最少步数。思路 反向遍历,当KaTeX parse error: Expected 'EOF', got '&' at position 5: a==1&̲&b==1时,此时的步数就是从走到的步数,
传送门题目大意π(n)为不大于n的素数的个数rub(n)为不大于n的回文的个数输入一个变量A,找
传送门题目大意给你一个长度为n的序列,求出∏1≤i<j≤n∣ai−aj∣ mod m给你一个长度为n的序列,求出\prod_{1
传送门题目大意由n个正整数组成的数组a,执行下面操作三次后使得数组a元素全部变成0选取一段区间
传送门题目大意给你一个无限长的数轴还有一个大小为n的整数数组a0,a1...an−1a_0,a_1...a_{n-1}a0,a1.
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号