上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 33 下一页
摘要: 传送门 #思路: 有个很重要的转化: 将某个数不变,其他数乘以某个素数 等价于 将某个数除以素数,其他数不变 可以看出两者的作用是相同的。 所以题意就转化成了:给出一个序列,每次选择一个数除以某个素数,问多少次能够将序列里的所有数变成一样的。 将所有的数转化成他们的gcd就好了。 对每个数进行质因子 阅读全文
posted @ 2021-05-30 20:57 OvO1 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 原题链接 #思路: 参考题解的思路: **首先,**每个整数都可以写成$ab^{3}$的形式;由于问题中求的是立方,将数唯一分解之后,大于$3$的幂次是没有贡献的,所以对质因子的幂次$%3$即可。 **其次,**不能共存的数是一一对应的,假设这两个数为$x,y$,质因子分解后,对应的幂次为$x(0, 阅读全文
posted @ 2021-05-30 20:30 OvO1 阅读(212) 评论(0) 推荐(0) 编辑
摘要: #2021年河南省赛——I.七便士(思维+并查集) 原题链接 #思路: 可以看出,如果未填充的部分是一条链的话,可以把剩下的都添进去。比如,第一次填倒数第二个,然后移动到倒数第一个,以此类推。 用并查集判的。 #代码: #define PI acos(-1) const int maxn=1e5+1 阅读全文
posted @ 2021-05-30 17:50 OvO1 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 传送门 #思路: 可以发现$n$很小,考虑状压$dp$ $dp[i][j]$表示只从前$i$个中选,使得集合$j$中的箱子都被打开花费的最小代价。 初始化: 初始化为正无穷并且$dp[0][0]=0$ 转移: 不选第$i$个,从$dp[i-1][j]$转移过来 选第$i$个,转移到$dp[i][j| 阅读全文
posted @ 2021-05-29 11:29 OvO1 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 问题 E: Disjoint Set of Common Divisors 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Given are positive integers A and B. Let us choose some number of positive common 阅读全文
posted @ 2021-05-29 10:40 OvO1 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 传送门 #思路 首先,将对应的位置变成相同的字母的代价是固定的,可以预处理出来。 接着,根据p所在的位置分类讨论,如果p在左半边,一定是将左半边变成跟右半边一样的代价是最小的,因为这样省去了移动指针的代价。 处理两个指针l,r,表示该部分中需要处理的左端点跟右端点,根据p的位置分类讨论就可以了。 # 阅读全文
posted @ 2021-05-28 11:31 OvO1 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 传送门 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<ll, ll>PLL; typedef pair<int, int> 阅读全文
posted @ 2021-05-27 20:28 OvO1 阅读(39) 评论(0) 推荐(0) 编辑
摘要: #题意: 求生成树最长边与最短边的最小差值 #思路: #代码: const int maxn=1e4+100; struct node{ int u,v,w; }edge[maxn]; int root[maxn],n,m; bool cmp(node a,node b){ return a.w<b 阅读全文
posted @ 2021-05-23 21:32 OvO1 阅读(42) 评论(0) 推荐(0) 编辑
摘要: #题意: n个城市,告诉每个城市的坐标,还有q个联通块,现在要把这n个城市连起来,可以购买联通块(每个有一定的费用),或者新建一条边(费用为点之间的距离的平方),问最小费用是多少。 #思路: 首先可以想到朴素的做法,二进制枚举每个连通块选还是不选,判断该状态下图是否已经联通,如果未联通的话再从朴素的 阅读全文
posted @ 2021-05-23 21:25 OvO1 阅读(51) 评论(0) 推荐(0) 编辑
摘要: #思路: 1.$f[i]%n$具有周期性,找循环节即可 2.数据范围很大,要用ull #代码: ll ksm_u(ull a, ull b, ll p) { ll res = 1; a%=p; while(b) { if(b & 1)res = res * a % p; a = a * a % p; 阅读全文
posted @ 2021-05-23 19:33 OvO1 阅读(57) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 33 下一页