首页 > 其他分享 >P10033 「Cfz Round 3」Sum of Permutation

P10033 「Cfz Round 3」Sum of Permutation

时间:2023-12-31 19:11:44浏览次数:30  
标签:posn Sum leq Cfz Permutation gets Round pos1

原题链接

基础赛唯一写了的题,因为我喜欢构造!

事实上的确有点麻烦了,应该会有更好的做法。但是自我感觉这个思维很连贯,因为这就是我做题时思路的写照。

记 \(p_{pos1}=1,p_{posn}=n\)。

首先可以构造 \(a_i\gets p_i+1\) 这样一定满足第二个限制,但是当 \(p_i = n\) 时不满足第一个限制。

钦定 \(pos1<posn\),否则将整个序列翻转即可使 \(pos1<posn\)。

先假设 \(posn\not = n\)(由于钦定了 \(pos1<posn\) 所以 \(posn\not = 1\))。

于是考虑对于 \(j < posn,a_j\gets p_j+1\),对于 \(j > posn,a_j\gets p_j-1\),\(a_{posn}=n-{posn}\)。

证明一下为什么正确。当区间 \([l,r]\) 不包含 \(posn\) 即完全位于左边或者右边时,其相当于一开始那个东西,是肯定正确的。当区间 \([l,r]\) 包含 \(posn\),发现 \(\forall i<posn,\sum\limits_{j=i}^{posn-1} (a_j-p_j)\in [1,posn-1]\),在加上 \(a_{posn}-p_{posn}\) 之后范围变成 \([1-posn,-1]\),再往后加也一定是负数,不会为 \(0\) 所以不会相等。

再说 \(posn = n\),你会发现这种时候直接用上面那种 \(p_n=0\) 就寄了。但是这种特例很好处理,只需要 \(j<n,a_j\gets n,a_n=\begin{cases} n-1 & p_{n-1}\not = n-1 \\ n-2 & p_{n-1} = n-1 \end{cases}\) 即可。

然后你发现 \(n\leq 2\) 这个东西又寄了,然后你发现 \(n\leq 2\) 无解。

标签:posn,Sum,leq,Cfz,Permutation,gets,Round,pos1
From: https://www.cnblogs.com/int-R/p/17937893/P10033

相关文章

  • 【LGR-170-Div.3】洛谷基础赛 #6 & Cfz Round 3 & Caféforces #2
    这套题感觉质量很高A.Battle\[x\equivr(\bmodP)\]\[P\midx-r\]因此只有第一次操作是有效的voidsolve(){ intn,m,p; cin>>n>>m>>p; m-=m%p; if(!m)puts("Alice"); else{ n-=n%p; if(!n)puts("Bob"); else......
  • ARC167D Good Permutation 题解
    ARC167D看到排列并且有\(i\getsa_i\),就可以直接建出图来,显然是若干个不相干的环。如果不求字典序最小,就可以直接不在同一个环中的\(i,j\)直接交换就可以了,因为它要求了最小化操作数。如果求字典序最小,直接从前往后扫一遍,可以用set维护不在这个环中且\(j>i\)的最小值,如果......
  • AtCoder Regular Contest 168 E Subsegments with Large Sums
    洛谷传送门AtCoder传送门尝试二分答案,问题变为要求恰好选\(x\)段\(\ges\),最大化选的段数。发现我们不是很会算段数的\(\max\),因为要求段不重不漏地覆盖\([1,n]\)。考虑给每个\(\ges\)段\([l,r]\)一个\(r-l\)的代价,于是变成了算代价的\(\min\)。此时不再要求......
  • POLIR-Int-Generative AI in 2024: The 6 most important consumer tech trends for n
    GenerativeAIin2024:The6mostimportantconsumertechtrendsfornextyearQualcommexecutivesrevealkeytrendsinAI,consumertechnologyandmoreforthefutureDEC15,2023SnapdragonandQualcommbrandedproductsareproductsofQualcommTechnol......
  • CodeForces 1909F2 Small Permutation Problem (Hard Version)
    洛谷传送门CF传送门感觉这个题还是挺不错的。考虑F1。考察\(a_i\)差分后的意义,发现\(a_i-a_{i-1}\)就是\((\sum\limits_{j=1}^{i-1}[p_j=i])+p_i\lei\)。考虑将其转化为棋盘问题。在\((i,p_i)\)放一个车,那么\(a_i-a_{i-1}\)就是\((1,i)\sim......
  • kaggle Open Problems – Single-Cell Perturbations 1st & 2nd place solution summa
    Leaderboard:https://www.kaggle.com/competitions/open-problems-single-cell-perturbations/leaderboard2ndSolution:https://www.kaggle.com/competitions/open-problems-single-cell-perturbations/discussion/458738Code:https://github.com/Eliorkalfon/single_ce......
  • 『LeetCode』1. 两数之和 Two Sum
    『1』暴力法classSolution{//BruteForce//TimeComplexity:O(n^2)//SpaceComplexity:O(1)publicint[]twoSum(int[]nums,inttarget){for(inti=0;i<nums.length;i++){for(intj=i+1;j<nums.length......
  • 陶建辉应邀参与 TOP100Summit,“工程师文化”演讲引发热议
    在AGI时代,数字化成为组织形态的重要特征,它可以帮助组织实现上下一致的目标和信息的高频传递,从而实现战略目标的协同和敏捷进化。在这样的大背景下,开发者们面临的实际挑战是如何避免技术和业务之间的割裂。12月14-17日,由msup和微上信息技术研究院联合主办的第十二届“TOP100......
  • 1 + np.nan # nan sum([1, np.nan]) # nan
    1+np.nan#nansum([1,np.nan])#nannp.sum([1,np.nan])#nanhttps://blog.51cto.com/u_16055028/6177557PythonPandaspivot_table透视表计数numpy.sum()是NumPy库中的一个函数,用于计算数组中所有元素的总和¹²³⁴⁵。以下是该函数的基本语法:numpy.sum(a,axis=N......
  • [ARC107F] Sum of Abs
    [ARC107F]SumofAbs发现点数比较少,考虑最小割我们最大可能的答案为\(\sum|b_i|\),现在考虑减去多余答案首先点可以不选,于是拆点,之间边权为\(a_i+|b_i|\)钦定割完之后,和\(S\)连通的点最终取正数,和\(T\)连通的点最终取负数,于是如果\(b_i\ge0\),那就从源点向他连\(2b_i......