首页 > 其他分享 >CF刷题计划?(upd:11.15)

CF刷题计划?(upd:11.15)

时间:2022-11-15 22:34:25浏览次数:58  
标签:pre gcd upd 11.15 CF cdots 退栈 刷题

CF刷题计划?

CF1285F

太nb了这个题

暴力一点的做法是二分后直接莫反,但是不够快

考虑枚举一个\(\gcd\),令其为\(d\)

然后从大到小枚举数,然后把\(\gcd(\frac{x}{d},\frac{y}{d})=1\)的点对找出来

因为要求最大化,所以如果当前有一组点\(x<z<y\),且\(\gcd(\frac{x}{d},\frac{y}{d})=1\)

那么\(z\)一定可以删去,\(y\)同理

也就是说,这是一个从小到大退栈的过程,而每个数的入栈退栈次数都恰好为\(1\)

为了保证复杂度,需要莫反算出有多少个与当前数互质的数

当然我们可以做得更快

即两个数\(x,y\)一定存在\(a|x,b|y,lcm(a,b)=lcm(x,y),\gcd(a,b)=1\)

于是可以\(O(A\log A)\)

CF1548E

连通块的信息量太大,考虑将一个连通块中\(a_i+b_j\)最小的位置标记

相同则按\((i,j)\)关键字排序

记\(pre_i\)表示最大的\(k\)满足\(a_k<a_i\),记\(suf_i\)表示最小的\(k\)满足\(a_i\le a_k\),列同理

首先如果\((i,j)\)被标记,则其不能走到\(pre_i,suf_i\)

但还不够

我们希望\((i,j)\)能走到\(pre_i\)等价于其能走到\((pre_i,j)\)

可以发现,如果从\((i,j)\)出发到达了\((pre_i,k)\),不妨假设\(k<j\)

那么由于\(a_{pre_i,pre_i+1\cdots i-1}\ge a_i\),同时这些位置加上对应的\(b\)小于等于\(x\)

则\(a_{pre_i}+b_{k,k+1\cdots j}\le x\),结论得证

然后可以数据结构维护一下

CF1637H

将数看成平面上的点\((i,p_i)\)

然后有一个结论:

对于\(\forall i<j,p_i>p_j\),若\(i\)被选,\(j\)被选一定不会更劣

证明:

对于原序列中\(j-i\)最小的\(p_i\)被选\(p_j\)未被选的一对点

我们可以考察第一象限中被其划分出的9个区域的贡献

跳过有限步会发现

只有\(i<k<j\),\(p_k>p_i\)且\(k\)被选 或 \(p_k<p_j\)且\(k\)未被选 的点可能会使调整后逆序对数增多

但是我们钦定的是\(j-i\)最小的一对点,所以上述情况不存在,结论得证

于是贪心选一选就做完了

标签:pre,gcd,upd,11.15,CF,cdots,退栈,刷题
From: https://www.cnblogs.com/AmanoKumiko/p/16894273.html

相关文章

  • 【2022.11.15】luffy项目部署(9)
    内容概要1redis字符串操作2redishash操作3redis列表操作4redis管道5redis其他操作6django中集成redis7celery介绍内容详细#装了图形化客户......
  • CF631E Product Sum
    前言不知道为什么题解里的李超线段树都要分两种情况讨论,我觉得的大可不必,其实一遍就好了。分析设\(ans_i\)为\(i\)移动到其他位置时获得的最大取值,\(sum_i\)为\(......
  • 闲话 22.11.15
    闲话幸亏昨天写了两道题要不然今天没题可写了(明天学考?话说怎么那么多bitmask题啊杂题CF487ECyberland有\(n\)座城市,编号从\(1\)到\(n\),有\(m\)条双向道......
  • CF1083C Max Mex
    题意给定一棵树,点权为\(0\simn-1\)的排列。每次交换两个点的点权或者询问整棵树上所有路径中,路径上点权的\(\operatorname{mex}\)最大值。Solution比较神奇的转化......
  • CF1598F RBS 题解
    题意给\(n\)个串,求将这\(n\)个串以任意顺序接起来的最大的是合法括号序列的前缀数。分析\(n\)很小,考虑状压dp。有一个很典的转化是将(看成\(+1\),将)看成\(-......
  • 11.15
    今日内容1.软件开发架构2.网络编程简介3.OSI七层协议简介4.物理连接层5.数据链路层6.网络层7.传输层8.网络相关专业名词1.软件开发架构1.C/S架构Client:客户端......
  • CF 1743 题解
    比赛链接:https://codeforces.com/contest/1743题解:AB水题//bySkyRainWind#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include......
  • 【题解】CF1748D ConstructOR
    前言这道题十分诈骗,比赛的时候以为是根据二进制除法原理,解同余方程,然后考试时候就没做出来QAQ。这篇题解是构造解法,至于官方题解是啥我也不知道,看这官方题解的性质十分诡......
  • chrome.tabs.onUpdated.addListener(。。
     functionhandleUpdated(tabId,changeInfo,tabInfo){console.log(`Updatedtab:${tabId}`);console.log("Changedattributes:",changeInfo);console.l......
  • CF1743F Intersection and Union 题解
    更好体验线段的贡献不好统计,考虑统计每一个点在不同情况中的被覆盖次数,那么每个点的被覆盖次数总和即为答案。设\(f_{i,j,0/1}\)表示\(i\)点在扫描到线段\(j\)时是......