随笔分类 -  Codeforces

摘要:E. Look Back 因为每次都是2,可以推出x<=y2^(n),转化成 x/y<=2^(n),求n直接取对数即可 注意: 1.答案很大要开LL 2.不要直接乘,会爆LL,直接利用原式即可,如果后面的大,就减去大多少的对数 3.记得向上取整 点击查看代码 #include<bits/stdc++ 阅读全文
posted @ 2023-10-23 17:20 不o凡 阅读(160) 评论(0) 推荐(0)
摘要:B. Friendly Arrays 依据异或特性,如果n为偶数,单调递减:与b[i]|越多越小 反之递增 点击查看代码 #include<bits/stdc++.h> using namespace std; const int N=2e5 + 10; #define LL long long i 阅读全文
posted @ 2023-10-22 17:43 不o凡 阅读(24) 评论(0) 推荐(0)
摘要:C. Colorful Table 设p1为最左边的a[p1]>=i,p2为最右边的a[p2]>=i,则i的面积大小为行的p1-p2,列的p1-p2,大小为2*(p2-p1+1) 但是如果暴力的去求每个点的左右端点,肯定会超时,有没有办法优化呢? 1.我们想到,大的数一定包含小的数:如果大的数算出来 阅读全文
posted @ 2023-10-22 16:03 不o凡 阅读(24) 评论(0) 推荐(0)
摘要:B. Chips on the Board 题意:保证在n*n的棋盘上对于每一个点的列或者行都有一个筹码,也可以两个都有,问最小筹码:对于每一个筹码计算:a[i]+b[i]; 要使每个点都满足,最少的筹码的个数应该为n 1.对于行来看,如果每一行都有一个筹码,那么列就可以随便填:直接全选择最小的列 阅读全文
posted @ 2023-10-20 16:05 不o凡 阅读(37) 评论(0) 推荐(0)
摘要:E. Cardboard for Pictures 如果没有过可能是爆LL,在循环判断即可 二分枚举宽度大小,比较两者面积 点击查看代码 #include<bits/stdc++.h> using namespace std; const int N = 2e5+10,mod=1e11; #defi 阅读全文
posted @ 2023-10-17 17:06 不o凡 阅读(34) 评论(0) 推荐(0)
摘要:D. Divide and Equalize 思路: 1.某个数除以x,某个数再乘以x,可发现数组总的乘积没有变化 2.也就是说,要使数组中的每一个元素相同,它们总的质因子应该满足:某个质因子的数量%n==0 赛后才发现,痛失上大分 E. Block Sequence 简单的dp dp[i],表示删 阅读全文
posted @ 2023-10-13 20:46 不o凡 阅读(94) 评论(0) 推荐(0)
摘要:A. Sum of Three 思路1: 1.把数拆成1,2,n-3 2.如果(n-3)%3==0,那么拆成1,4,n-5,可证明n-3如果可被3整除,那么再左移两位一定除不尽 思路2: 1.如果n是奇数,那么可取一个数为2,其他两数为相邻数,如果两数其中一位被整除,那么两者往外走 2.如果n为偶, 阅读全文
posted @ 2023-10-10 19:39 不o凡 阅读(24) 评论(0) 推荐(0)
摘要:D. Effects of Anti Pimples 思路: 1.设f[i]=max(a[i],a[i*2],...),选i时的最大值 2.f进行从大到小排序 3.我们如果选了f[i],要保证选法的最大值是f[i]的方法因该为2^(n-i),因为选后面的一定保证最大值小于f[i] 规律: 1.我们发 阅读全文
posted @ 2023-10-09 18:21 不o凡 阅读(42) 评论(0) 推荐(0)
摘要:C. Joyboard 找规律我们可以发现: 为了方便对a[n+1]取值为x 1.如果x=0,只有0,k=1 2.如果1<=x<=n,在i<=x,a[i]=0;在i>x ,a[i]=x,k=2 3.如果x>n,需要分类: 3.1 如果x%n==0,i<=n,a[i]=0,a[n+1]=x,k=2 3 阅读全文
posted @ 2023-10-09 16:41 不o凡 阅读(21) 评论(0) 推荐(0)
摘要:G. Vlad and the Mountains 题意:给你每个点的高度,从a到b需要消耗h[b]-h[a]的体力值(所以说下坡时体力值可以增加),询问一开始你有e的体力值,问是否可以从u->v点 分析: 1.a->b最终消耗的体力值一定为h[b]-h[a],如果一开始的体力值都达不到肯定无法过 阅读全文
posted @ 2023-10-07 14:54 不o凡 阅读(14) 评论(0) 推荐(0)
摘要:F. Lisa and the Martians 问题求y =(a[i] ^ x)& (a[j] ^ x)最大,可知x可自由选择,那么我们就考虑y怎么取最大值 1.根据&,可知a[i]a[j]1时,二进制该位置为1,若x可使得俩位置为1,那么就转换成最多的a[i]==a[j]的位置,也就是a[i]^ 阅读全文
posted @ 2023-10-06 22:49 不o凡 阅读(28) 评论(0) 推荐(0)
摘要:D. Prefix Permutation Sums 吐槽:读题不仔细,还以为原数组的取值是任意的,最后看题解的时候才发现取值在[1,n],当时因为看不懂直接跳过了 题意:给你一个缺了一个的前缀和数组,让你判断是否存在原数组,取值[1,n],每个数只存在一次 可以分类讨论 1 缺少最后一个前缀和 2 阅读全文
posted @ 2023-10-06 16:41 不o凡 阅读(45) 评论(0) 推荐(0)
摘要:E. Nastya and Potions 思路:直接对比制造这份药剂和直接买那个更好 判断特殊: 1.如果已经拥有就不用再买了 2.如果只能买,就直接买 方法: 1.dfs,因为要制造3,可能先要制造1,这样我们就dfs把条件从叶子节点全都往上传就行 优化: 1.如果之前已经知道了制造的价格,那么 阅读全文
posted @ 2023-10-06 14:56 不o凡 阅读(22) 评论(0) 推荐(0)
摘要:G. Counting Graphs 题意:添加几条线段,使得图仍保持原先的最小生成树 通过画图我们发现,要添加u->v的线段,线段必须大于u->v的路径内的最大值,不然会破坏原先的最小生成树。 那么该怎么维护路径内的最大值呢? 方法: 1.我们对边的大小进行排序,这样当前边一定大于等于之前的边,只 阅读全文
posted @ 2023-10-04 10:57 不o凡 阅读(24) 评论(0) 推荐(0)
摘要:F. Sum and Product 吐槽:太疯狂了,想使用unordered_map快一些结果超时了十几次!,反而用普通的map快速AC,查了发现unordered_map依赖于散列表,如果哈希函数映射的关键码出现的冲突过多,则最坏时间复杂度可以达到是O(n)。真的会有人卡umap(哭) 此题就是 阅读全文
posted @ 2023-10-03 20:10 不o凡 阅读(20) 评论(0) 推荐(0)
摘要:E. Power of Points 题意很简单:从左到右取点,输出该点到每个点的距离之和 思路: 1.对一个有序的序列进行计算,我们发现从左往右,左边点数的距离会增加,右边点数的距离会减小 2.因此我们只需暴力的计算第一个点到所有点的距离之和,接下来的点只需一步就可计算出来 2.1 ans+=左边 阅读全文
posted @ 2023-10-03 15:28 不o凡 阅读(17) 评论(0) 推荐(0)
摘要:D. Strong Vertices 条件转移一下即可 由a[u]−a[v]≥b[u]−b[v],可得a[u]-b[u]>=a[v]-b[v]。 设c[i]=a[i]-b[i],由题意得只要c[i]>=cj,点i就有指向j的路。 因此题目就转化成:求c数组中最大元素的个数及其位置。 点击查看代码 # 阅读全文
posted @ 2023-10-03 14:25 不o凡 阅读(27) 评论(0) 推荐(0)
摘要:C. Assembly via Minimums 找规律 首先根据题意,B组数据的顺序是完全没有关系的,因为可以随意打乱,所以a组的值一定在b组里找,这不是废话。 其次我们观察数据可知,最小值出现的次数是n-1,比较好理解的方法是:分别把最小值放在开头和结尾,因为要取最小值所以在B组出现的次数一定是 阅读全文
posted @ 2023-10-02 21:32 不o凡 阅读(40) 评论(0) 推荐(0)
摘要:G. wxhtzdy ORO Tree 前提知识:lca求最近公共祖先(倍增) 因为或运算越多值就越大,好像跟上一个相反,所以满足单调不降 要点1:利用数组来对每个点到其祖先节点的或和进行计算(倍增) 要点2:分别对左右两边进行分析到lca点,这样确保无误 要点3:因为满足单调不降,所以遇到大于的节 阅读全文
posted @ 2023-09-28 20:51 不o凡 阅读(60) 评论(0) 推荐(0)
摘要:F. Vasilije Loves Number Theory 前提知识:d(n)表示数字n的正约数个数,gcd(a,b)表示a,b两者的最大公约数 要点:问是否存在a,使得d(a * n)=n,gcd(n,a)=1,意思是n与a互质, 则可得,d(a * n)=d(a)*d(n)=n 则问题转化成 阅读全文
posted @ 2023-09-28 15:32 不o凡 阅读(45) 评论(0) 推荐(0)