codeforces
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
Gourmet choice DP+拓扑
LINK题意:给定∑i=1n∑j=1m\sum_{i=1}^{n}\sum_{j=1}^{m}∑i=1n∑j=1ma[i]<b[j],也就是所有ai和bj的关系我们是知道的,最后求最大值最小的构造方案,如果无解输出NO思路:先把相等的点用并查集维护一下,然后我们只维护<的关系,因为>反向建图就行了,然后跑拓扑DP,f[i]>=∑j=premax(f[j]+1)f[i]>=\sum_{j=pre}{max(f[j]+1)}f[i]>=∑j=premax(f[j原创 2021-10-04 21:47:09 · 167 阅读 · 0 评论 -
CF1305E Kuroni and the Score Distribution(构造)
Link题意:思路:先构造1,n直到溢出了位置,然后考虑加n,如果单纯加n,那么对于前面贡献是n2\frac{n}{2}2n,然后发现n每隔2个数对前面的贡献都会减1,感性的理解,就是,之前n和一个值能匹配x,现在x变大了,n怎么匹配也匹配不了了,那么暴力加n知道刚好能满足m就行了,然后最妙的就是如何处理剩下的数,要造成0贡献,不如隔开构造,也就是说当前的最大值是max,前面有n个数,我们可以构造1e9-n*(maxv+1),1e9-(n-1)*(maxv+1)…代码://#pragma GC原创 2021-10-01 16:48:45 · 250 阅读 · 0 评论 -
CF1305F Kuroni and the Punishment (随机化)
Link题意:思路:Jiangly都没做出来的题,原来这么操蛋,首先我们要发现一个性质,我们最多操作n次可以使得gcd>1,把ai变成偶数,所有ans<=n,然后可以有个更牛逼的性质,被操作两次及以上的数,不超过⌊n/2⌋\lfloor n/2 \rfloor⌊n/2⌋个,也就是说我们有大于⌊n/2⌋\lfloor n/2 \rfloor⌊n/2⌋个数仅仅只操作一次或者不操作,那么也就是会有大于1/2的概率gcd的质因子会出现在里面,然后只要我们多选几个数,这个概率就会惊人的高,假设选了原创 2021-10-01 16:42:13 · 213 阅读 · 0 评论 -
C. Kuroni and Impossible Calculation(鸽巢定理)
题意:求∏abs(a[i]−a[j]) mod mm<=1000n<=2e5\prod abs(a[i]-a[j])~mod~m\\m<=1000 n<=2e5∏abs(a[i]−a[j]) mod mm<=1000n<=2e5思路:完全没想到这是个**题,运用鸽巢定理,考虑n>m的时候一定会有个两个模m相同的数,那么答案一定是0。#include<bits/stdc++.h>using namespa原创 2021-09-30 10:20:43 · 203 阅读 · 0 评论 -
D. The Strongest Build二叉堆,map乱搞
Link题意:给定n个序列,要从每个序列选出一个数,价值为选出来的总和,然后有m个限制,代表m个序列不能用,求最大值 n<=10∑ ci<=2e5 m<=2e5n<=10 \sum~ci<=2e5~m<=2e5n<=10∑ ci<=2e5 m<=2e5思路:一开始想着类似于n路尺取,也就是先把所有最大值放进堆里,然后每次尺取花费最小的,然后会发现会漏掉某些情况。正解是暴力bfs,因为m<=2e5也就是原创 2021-09-21 20:36:15 · 397 阅读 · 0 评论 -
CF785D Anton and School - 2(范德蒙德行列式卷积)
题意:给定含有(和)的字符串,求带有((()))类似的子序列的方案数(左括号等于右括号)思路:很容易想到枚举每个左括号的最后一个位置,cnt代1~i-1中(的数量,cnt2代表后缀的)的数量那么显然答案就是∑i=1n[s[i]==(]∑j=0min(cnt,cnt2−1)C(cnt,cnt−j)∗C(cnt2,j+1)\sum_{i=1}^{n}[s[i]== (]\sum_{j=0}^{min(cnt,cnt2-1)} C(cnt,cnt-j)*C(cnt2,j+1)∑i=1n[s[i]==(]原创 2021-09-13 14:30:31 · 473 阅读 · 1 评论 -
Buds Re-hanging 拆树苗 合并
题意:给定一棵树,树苗定义为至少存在一个子节点并且子节点都是叶子,每次可以选择一颗树苗挂到某个节点下,求最小根节点数。思路:可以观察到挂到某个节点下,一定是挂到他的叶子结点,这样会对答案贡献减1,那么我们是不是可以把问题转化成最多的树苗数了?贡献就是树苗数-1,那我们考虑能不能从下往上尽量拆,遇到能拆的尽量拆,这样可以变成更多个树苗了。link// Problem: E. Buds Re-hanging// Contest: Codeforces - Codeforces Global Roun原创 2021-09-13 11:46:21 · 292 阅读 · 0 评论 -
旅行家问题2(TSP,奇怪的转化模型)
link题意:旅行商问题,每ai->aj的边权为max(aj-ai,ci),求从1开始走,走完所有城市并且回到1的最小花费。思路:可以证明肯定是一个环,假设不是环,也就是有个非起点会被经过至少两次,这里假设两次,ai,aj,ak,其中aj为中转点,那么max(ci,aj-ai)+max(cj,ak-aj)>=max(ci,ak-ai),肯定是不优的,那么我们考虑先把ci提出来,变成常数项,也就是所有ci加起来加上max(0,aj-ai-ci),我们可以发现如果ai比aj大,那么ai到aj原创 2021-09-12 21:56:38 · 477 阅读 · 4 评论 -
小x的数学题
题意:n<=1e18 m=1e4,求(10^n)/m下取证mod m的值思路:(10^n-m*m)/m %m =原柿子,所以我们直接将10的n次膜上m^2,在求就可以了。代码太简单不加了。原创 2021-09-10 11:51:21 · 189 阅读 · 0 评论 -
再探water Balance(贪心,单调栈)
题意:给定一个序列,你每次可以选一段区间,把这个区间的每个数浮赋值成平均值,问最小字典序。思路:最后的答案一定是不降的,那么启发我们维护区间的平均值,平均值用区间sum和长度代替,那么就是可以在弹栈的时候可以体现,当后面平均值一直小于前面块的平均值。比较的时候a/b<c/d分别把d和b乘过去,避免精度的影响。代码:// Problem: 小x的序列// Contest: 信息学奥赛比赛系统// URL: https://qduoj.com/contest/114/problem/C//原创 2021-09-10 08:11:28 · 182 阅读 · 0 评论 -
CF1136D Nastya Is Buying Lunch 贪心
link题意:给定n个人,m条边,对于一条u,v的边,如果u在v的位置的前面,那么可以交换u和v,最后问pos n 的这个人能往前换多少位置。思路:考虑从pos大的位置从前往后考虑,对于当前这个位置,如果不换肯定不是更优的,假设当前位置是x,对于x-1的数,在后面的序列,假设原来能访问后面的序列,但是不能访问x,那么不换就访问不了了。所以可以动态维护位置,维护位置的方式也很简单,对于他们的位置,交换一次更新一次。代码:// Problem: D. Nastya Is Buying Lunch/原创 2021-09-07 10:17:31 · 257 阅读 · 0 评论 -
D. Expression Evaluation Error(贪心,数学规律)
link题意:求n个数,这n个数和10进制为s,求他们11进制的最大值。思路:考虑先能不能无花费拆分,这里的无花费指的是两个数在11进制相加还是原数,例如2030,2和3都是可以拆的,拆成1030和1000,然后如果数列中还不满足的话,那么这些数都是满足100…这种形式的。由于花费要小,我们可以贪心的选择最小的数,并且拆掉一个次高位。例如1000拆成900和100,如果拆成1和999,和比前面那种拆法小,不优。代码:// Problem: D. Expression Evaluation Err原创 2021-09-06 15:01:50 · 574 阅读 · 2 评论 -
E. Road to 1600(构造,打表)
题意:构造方格1~n*n,皇后和车的走法如图,皇后和车会走当前能走的位置中没走过的值最小的来走,如果没有花费就会加1并且跳到整个图中没走过中的最小的方格来走,让你构造一个矩阵,使得车的花费比皇后少。思路:n<=2显然是无解的,n=3可以通过打表打出来,然后想想怎么拓展,我们可以通过走蛇形矩阵的方法,先蛇形递增的摆放食物诱导皇后和车同轨迹走,最后让车和皇后走到n,1或者1,n,(取决于n的奇偶性),然后皇后会跳进子问题n=3的陷阱,那么皇后就输了。代码:// Problem: E. Road.原创 2021-09-02 17:38:01 · 228 阅读 · 2 评论 -
Tree Shuffling(树形dp)
link题意:给你一棵以1为根的树,和每个点的a,b,c ,a代表操作的花费,b代表当前他的值,c代表目标值,每次你可以选一个点花费k*size两两交换他的子节点,问让所有值变成目标值的花费。思路:一开始想到可以从根到u的交换值取min,对于原始和目标值相同的点我们可以不用管,因为早晚还要进行一次交换,证明:假设有1/1 0/1 1/0,我们操作{1/1,0/1},{0/1,1/0},不如直接操作{0/1,1/0}.后来就想不到了,题解说可以设dp[u][2]代表遍历到u,0/1还没有处理的个数原创 2021-08-08 12:39:44 · 260 阅读 · 0 评论 -
Trees of Tranquillity
链接题意:思路:这题考察了dfs序的问题,第二棵树要满足在不同子树,也就是dfs序他们不能相交。第一棵树很容易想到只能是一条链上的某些节点,那么我们先按照dfs序建出第二棵树,然后贪心的用set来维护第一棵树,set是来维护该节点在第二棵树上的L,R区间,我们每次贪心的来维护,如果上面的点覆盖了当前的区间,那肯定是区间小的更优秀。代码://#pragma GCC target("avx")//#pragma GCC optimize(2)//#pragma GCC optimize(3)/原创 2021-08-08 11:48:51 · 267 阅读 · 0 评论 -
Cow and Fields(最短路思维)
题意:思路:首先说一些性质,比如我们操作a,b点,如果a,b不在1~n的最短路径上,那么对答案是没有贡献的。如果在1到n的最短路径上呢?也就是我们要求Max(dist[a]+dist2[b]+1),dist1代表从1开始bfs,dist2代表从n开始bfs最短路径,O(n^2)枚举肯定不好,我们可以按照dist[a]-dist2[a]排序一下,然后这个答案就可以O(N)枚举得到了,我们在枚举的时候记录一下最大的dist[x],当前的dist2[b]已经固定了,更新一下答案就好了,最后注意要和原本图的最原创 2021-08-07 21:29:21 · 284 阅读 · 0 评论 -
D. Diane
题意:让你构造一个长度为n的字符串,使得每一个子串都出现奇数次。思路:死活构造不出来,只知道每一个字母只能出现奇数次,有一个奇妙的性质没有挖掘到,就是相邻长度l和l+1的连续的字母两个一块构造的话就能出现奇数次,那么讨论讨论就行了,把两个字符串分开用别的字母就可以。注意1的特判。// Problem: C. Mikasa// Contest: Codeforces - Codeforces Round #735 (Div. 2)// URL: https://codeforces.com/con原创 2021-07-30 11:46:39 · 241 阅读 · 0 评论 -
E. Omkar and Forest 思维,结论
题意:思路:我们把#划分成0和1~INF,那么可以发现所有方案都是合法的,可以发现从0开始的点的值都是单调递增的。可以发现是个多源汇的最短路问题,所有不是0的点都是到最近的0点的曼哈顿距离,除了整个图都不是0的情况。特判一下,所以方案数是2^cnt-(cnt==size)。solution:#include<bits/stdc++.h>#define IL inline#define x first#define y secondtypedef long long ll;u.原创 2021-06-11 23:31:48 · 310 阅读 · 0 评论 -
Gift Set 二分 数学
题意:给定x,y个红,蓝气球,每次可以选择a个红气球,b个蓝气球,或者a个蓝气球,b个红气球,问最多能分成多少组。思路:不妨设a>b,不难发现这个题可以二分,即如果ans = x ,那么对于任意y<x都会存在方案让答案有解 假设第一种方案有k组,那么k要满足又要大于等于0并且小于等于当前组数,然后又有两个柿子生成,ak+b(mid-k)<=x && bk+a(mid-k)<=y,由此可以产生关于k的解,那么题目就转变为给你两个线段,两条线段是否相交。这里有.原创 2021-06-11 17:01:39 · 812 阅读 · 2 评论 -
cf c(map套pair)
题意:给定个string,让你从1~i每个位置,求出来d和k比值相同的段。思路:用个map来记录约分后的数量,太妙了。没想到。刚好就是a,b约分完出现的次数。// Problem: C. Diluc and Kaeya// Contest: Codeforces - Codeforces Round #724 (Div. 2)// URL: https://codeforces.com/contest/1536/problem/C// Memory Limit: 256 MB// Time.原创 2021-06-07 23:54:25 · 245 阅读 · 0 评论 -
E - New Game Plus! 堆贪心 思维
提交 1000祭题意:思路:一开始想的就是按照值的大到小排序,然后不知道负数的时候怎么处理了,看了题解原来可以用堆,由于可以清k次零,也是就是把序列分割成k+1组,我们可以发现在每一组里面值是非递增的,否则可以交换两个元素,然后可以用堆维护每个组当前的值,每次取最大,然后把最大的值赋给当前最大的值。复杂度O(NlogN)代码:// Problem: CF1415E New Game Plus!// Contest: Luogu// URL: https://www.luogu.com.cn.原创 2021-06-01 19:15:03 · 192 阅读 · 0 评论 -
D. Present按位拆分算贡献
链接求这个公式的答案 n<=400000 ,a[i]<=4e7思路:一开始就想到了按位算贡献,但是没有发掘一个性质,某一位k只受<=它的位数所影响,所以我们可以考虑按位统计,出现第k位为1有两种情况,一种情况是两数之和>=(1<<k) && <(1<<(k+1)) 还有一种是>=(1<<k)+(1<<(k+1)) ,在统计每一位的时候将a[i]%(1<<(k+1))放入数组中,将新数组排序原创 2021-05-31 10:38:21 · 242 阅读 · 0 评论 -
E. String Reversal
题意:给定一个字符串,你每次可以交换相邻位置的字母,问最少操作多少次才能达到他的反转串思路:先把反转串获得,“abcbd"的反转串"dbcba”,然后我们从反转串的最前面开始遍历,由于贪心,我们尽量把在原串中最近出现该字母的位置放到位置上,第一步模拟出来就是"dabcb",对于d后面这些位置也就是消除了影响,模拟下来每一次放到前面的贡献就是现在还在序列中并且在这个位置前并且未被操作的字母的个数,那么用个树状数组维护一下就行了,复杂度O(nlogn)。代码:// Problem: E. String原创 2021-05-30 19:37:58 · 236 阅读 · 0 评论 -
E. Jeff and Permutation
题意:市赛的题的弱化版,给定一个序列,你可以把任何数取-要么取+,问最小逆序数。思路:发现到这个题的性质,绝对值大的贡献只决定于绝对值小的,那么按照绝对值排序贪心即可,取左边贡献和右边贡献的min就行了。代码:// Problem: E. Jeff and Permutation// Contest: Codeforces - Codeforces Round #204 (Div. 1)// URL: https://codeforces.com/contest/351/problem/E/原创 2021-05-30 19:23:18 · 170 阅读 · 0 评论 -
CF1217D Coloring Edges 构造
题意:选择最少的k种颜色给有向图中染色,让图中不存在只有一个颜色的环。思路:如果没有环那么就1个颜色,否则两个颜色,构造如下:有向边 a,b a>b染成1 否则染成2。因为环中的边不可能存在单调递增的情况,总会有下降的情况。#include<bits/stdc++.h>using namespace std;//#define int long long typedef long long ll;const int INF = 1e9;const int N=5010,原创 2021-05-06 11:55:07 · 186 阅读 · 0 评论 -
D - The World Is Just a Programming Task (Easy Version)思维
题意:有一个括号序列,你可以选择两个位置i,j(i可以等于j),进行交换。使得最后的循环位置(i的数目)最大。循环位置:i(0<=i<len),将前i个字符移到最后,得到的新序列是合法的括号序列。)()()( 的循环位置有 1、3、5)((()))( 的循环位置有 1、7思路:由于n很小,我们可以先暴力枚举交换的位置i,j,然后o(n)记录答案,如何on记录答案呢,我们定义前缀值,为遇到左括号+1,遇到右括号-1,当然如果最终的前缀值不为0,显然这种情况肯定不是最佳的,这题其实是有一原创 2021-05-05 11:34:30 · 199 阅读 · 0 评论 -
Binary Literature 构造+思维
题意:给定三个长度为2n的字符串,问是否能构造出至少其中两个刚好是它子序列的字符串。思路:先想想没有字符长度的限制,那么我们可以构造长度为4n的序列,我们只需要想办法消去n的影响就可以了,三个字符串,由于鸽巢定理,肯定会有两个字符串1的数量大于n或者两个字符串0数量大于n,那么只需要先构造一个长度为n的’1’或者’0’,在字符串中间插入序列。代码:#include<bits/stdc++.h>using namespace std;string a[3];int n;vecto原创 2021-04-19 11:30:44 · 179 阅读 · 0 评论 -
F - Three Paths on a Tree
link题意:求树上三个点之间的最长距离,每条边被覆盖了只算一次贡献。思路:求树的直径,然后再找一个点到树直径上节点距离最大。代码:#include<bits/stdc++.h>using namespace std;const int N=200010;vector<int>v[N]; int n;int mxdep;int resa,resb;vector<int>seq;bool flag=0;set<int>s;void原创 2021-04-17 15:41:45 · 233 阅读 · 0 评论 -
E - Obtain a Permutation
link题意:就是求将一个矩阵,每次可以操作一列整体循环上移,或者可以改一个数变成任何数,问操作多少次可以让两个矩阵相同。思路:由于每列之间是独立的我们只需要求每一列的最小值,开一个map来记录某一列操作t次总共有多少个位置,然后枚举每一种情况,再加上不匹配的位置的贡献,求出答案即可。代码:#include<bits/stdc++.h>using namespace std;#define int long longconst int N=200010;#define x f原创 2021-04-17 15:33:29 · 210 阅读 · 0 评论 -
Subsequences (hard version)
题意:给你一个长度为n的字符串,选择不同的k个子序列的最小花费,花费为n减去子序列长度思路:dp ,dp[i][j]代表以i结尾,长度为j的不同的子序列个数,注意去重,枚举前面如果末尾的单词一样就减去前面相同长度的贡献。#include<bits/stdc++.h>using namespace std;#define int long longconst int md=1e9+7;int a[20];int Pow[20];int len[110];int dp[210][原创 2021-04-17 15:30:10 · 211 阅读 · 0 评论 -
G - Candy Box (hard version)
思路:用堆贪心,按照总数量为第一关键字,按照f为1的个数为第二关键字,大的在前面,贪心的取,每次更新堆就可以了,push进堆的时候尽量去掉为0的个数#include<bits/stdc++.h>using namespace std;//#define int long longint mp[2][200010];int a[200010];set<int>s;struct node{ int xx; node(int _X) { xx=_X; } b.原创 2021-04-17 15:28:21 · 245 阅读 · 0 评论 -
F - Topforces Strikes Back 贪心+数学+思维
link题意:给你n个数,让你挑出来至多三个互不为倍数的数。思路:总共有三种情况,第一种一个数,取最大值第二种,两个数,可以证明a[n]一定在答案之中,假设x,y为最后的解,如果x或者y不是a[n]的因数,那么可以替换另一个,答案更优,否则x+y<=a[n]/2+a[n]/3,用a[n]替换更优第三种,三个数,三个数有一种情况需要特判,a[n]/2+a[n]/3+a[n]/5,别的按照第二种情况贪心挑选就可以了。代码:#include<bits/stdc++.h>usin原创 2021-04-17 15:26:03 · 154 阅读 · 0 评论 -
D. Enchanted Artifact
link题意:本题为交互题。有一个字符串s,只由字符’a’和’b’组成。每次你可以询问一个字符串,它会返回这两个字符串的编辑距离。为一个字符串经过修改,删除或插入操作得到另一个字符串,两个字符串编辑距离的定义为最小的操作次数,若返回值为0,那么就是字符串s。让你在n + 2操作内得出字符串s(n为字符串s的长度,未知)。思路:先问一个a ,问出他的长度,特判一下全b的情况,然后如果问出来是300的话也是全b,坑点=-=,不能询问超过三百的字符串,然后依次枚举位数,看答案的变化,直到问到编辑距离为0为原创 2021-04-15 20:49:22 · 197 阅读 · 0 评论 -
D - Irreducible Anagrams 字符串构造
题意:两个字符串之间如果是同构的,给定一个s,如果他存在一个同构串使得,他俩不能分割成大于1的同构串的话输出"Yes",否则输出"No"思路:由于分割成k个,我们可以把k个合并成两个,然后考虑特殊情况,如果长度为1那么可以,如果首尾单词不同,我们交换这两个也是可以的,例如abbb,交换得到bbba,这样只能分割自己本身,还有一种情况就是,不同单词有三个以上,例如A…B…C…A ,我们可以构造成C…A…A…B,那么也只能分割成1个了。#include<bits/stdc++.h>using原创 2021-04-14 16:38:43 · 127 阅读 · 0 评论 -
G - Subset with Zero Sum
link题意:要求在数组中选一些数,使得他们的和为0,i从1到n ,i-n<=a[i]<=i-1;思路:我们把等式变形一下,可以发现i-a[i]>=1 && i-a[i]<=n,然后我们按照这个建图,从i指向i-a[i],每个点都会有出度,这不是基环树嘛,那么图中的环可以发现把环上这些点加起来就是0。复杂度O(n)代码:#include<bits/stdc++.h>using namespace std;const int N=100001原创 2021-04-14 11:52:57 · 188 阅读 · 0 评论 -
E - Divide Points
link题意:让你将点的集合划分成两个,然后两集合之间的距离没有在集合内部出现。思路:一开始以为是二分图啥的,结果是思维,考虑把点划分成4类,00,01,10,11,0代表奇点,1代表偶点,然后如果存在两个不同类的点就可以划分,把00,11放在一起,01,10放在一起,如果符合的话,如果只存在一个集合的点,那么我们就把所有点就/2,改变其奇偶性,直到出现解位置。复杂度n*log2e6(写个jvavhhh)代码:import java.math.*;import java.util.*;原创 2021-04-14 11:49:55 · 156 阅读 · 0 评论 -
D - Strange Device 思维+交互
题意:给定一个未知的数列这个数列每个数都不同,长度为n 可以询问n次,询问k个位置,每次询问可以得到k个中第m小的数的值和位置,问这个m是多少。思路:直接暴力问前k+1个位置,然后就可以发现,总共就两个数,m就是较大数出现的次数。#include<bits/stdc++.h>using namespace std;#define int long long typedef pair<int,int> pii;#define x first#define y second原创 2021-04-14 11:44:36 · 158 阅读 · 0 评论 -
Travelling Salesman Problem
link题意:从1号点开始走,每个点只走一次,从i走到j点代价是max(a[j]-a[i],c[i]),最后回到1号点,问最小的花费。n<=1e5思路:通过画图发现,由于是环,起点并不重要,答案>=c[i]的和,然后代价就转化成了max(a[j]-(a[i]+c),0)+c,然后我们可以发现,从高的点往下走是不需要代价的,从下往上走如果a[j]<=a[i]+c的话也是不需要代价的,那么我们从最低点尺取地走即可,即维护当前能走的最大的范围。如果不在范围内加上代价就可以了。代码:#原创 2021-04-13 16:09:05 · 138 阅读 · 0 评论 -
D - GCD and MST
link思路:暴力加剪枝。我们可以发现,答案肯定<=(n-1)*p,所以对于gcd大于等于p的区间我们可以不用考虑他带来的贡献,根据克鲁斯卡尔贪心的原则,我们可以按照点权来排序,从小到大枚举,然后嗯往左和右拓展,直到不能拓展或者找到在相同集合的数为止或者区间gcd不是当前数为止。为啥能在相同集合的时候break呢?假设当前左右区间是[i,j],i和j属于同一个集合,由于在相同集合,肯定会有更小的gcd连接他俩,对于左区间,能满足当前的gcd,肯定也能满足更小的_gcd,所以再往下拓展是没有必要的.原创 2021-04-13 11:23:55 · 188 阅读 · 0 评论 -
E - Vasya and Beautiful Arrays
题意:给出一个数组,每个元素最多减少k,问能够调整出的整个序列的最大的gcd是多少。思路:我们可以发现答案最大值数组中的最小值,最小值为k+1,因为任何数取%(k+1)范围都在0到k,然后我们暴力枚举这个gcd,如何快速判断区间内是否有n个数呢,开个权值数组记录某段权值内的数有多少个,然后每次暴力+上gcd,最后统计数有多少个,由于是调和级数,复杂度是o(n*log(maxv)),maxv为数组中的最大值。代码:#include<bits/stdc++.h>using namespa原创 2021-04-12 22:40:26 · 181 阅读 · 0 评论