首页 > 其他分享 >CF1932 Codeforces Round 927 (Div. 3)

CF1932 Codeforces Round 927 (Div. 3)

时间:2024-02-26 19:46:02浏览次数:14  
标签:1234 CF1932 端点 ans 区间 Div 12345 dp 927

E.Final Countdown

我愿称之为今年最傻逼的一次,思路很快想出来了,但是实现一直搞不对

观察发现答案是n的所有前i位数相加(如12345,那么ans=12345+1234+123+12+1)

要证明的话就是按照题目的Note那样算,(以12345为例,ans=(12345-1234-123-12-1)+21234+2123+212+21)

然后傻逼的事情就来了,这个n的位数是比较大的,我就想用高精度,然后梭哈,然后T..

把12345+1234+123+12+1用竖式列出来就很容易发现怎么做了.从后往前按每一位算就好了.

最终在还有六分钟结束的时候想出来,应该按每一位算,结果nm写按位算的时候写了bug.应该是jw = (ans+jw)/10,当时写的jw = ans/10.我怎么这么傻逼.

F.Feed Cats

比赛时这题完全没思路,赛后看b站解法是dp

当前状态和之前的状态容易转移.

记dp[i]是在位置i处放猫粮能喂养猫的最大数量.那么dp[i] = max(dp[j]) + w[i].其中 j < i 且需要满足条件:
j需要小于 所有那些包含点i的区间的左端点 (这样才能保证我们选点i时不会与以前的冲突)

那么如何得到包含点i的区间的最左端点?

我们可以直接从左向右遍历,当进入到一个区间的左端点时把左端点加入,当离开区间右端点时把左端点删除.
由于n比较小(1e6),所以我们可以直接记录m个区间在1~n这些点上的起始点和结束点,in[i]表示点i处的左端点们(是一个vector),out[i]表示以点i处的为右端点的区间的左端点(也是一个vector)

然后从左到右遍历点,把点i处若有左端点则加入,到了右端点就把那个左端点移除.

标签:1234,CF1932,端点,ans,区间,Div,12345,dp,927
From: https://www.cnblogs.com/oijueshi/p/18020638

相关文章

  • 2024 蓝桥杯模拟赛3(div1+div2)
    P8834[传智杯#3决赛]序列\(O(N^2)\)枚举defread():returnmap(int,input().split())n,k=read()a=list(read())res=0foriinrange(n):forjinrange(i):ifa[i]*a[j]<=k:res+=1print(res)P8780[蓝桥杯2022省......
  • 2024 蓝桥杯模拟赛3(div1+div2)
    题目A.暴力枚举#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=2e5+10;#defineinf0x3f3f3f3fvoidsolve(){intn,k;cin>>n>>k;vector<int>a(n+1);for(inti=1;i<=n;i++)cin>>a[i];......
  • Educational Codeforces Round 162 (Rated for Div. 2)
    目录写在前面ABCDE写在最后写在前面比赛地址:https://codeforces.com/contest/1923。为唐氏儿的寒假带来了一个构式的结局,飞舞一个。天使骚骚不太行啊妈的,推了三条线了感觉剧情太白开水了,咖啡馆也是这个熊样子、、、A签到。显然最优的策略是不断地选择最右侧的1进行操作,每......
  • Codeforces Round 791 (Div. 2)
     C-RooksDefenders线段树模板,维护:1)v:个数,2)sum:v的个数是否大于0.//#include"bits/stdc++.h"#include"iostream"usingnamespacestd;constintN=2e5;structNode{intl,r,v,sum;}tr1[N*4],tr2[N*4];intn,q;voidbuild(Nodetr[],i......
  • Part3: Dive into DDPM
    背景整个系列有相对完整的公式推导,若正文中有涉及到的省略部分,皆额外整理在Part4,并会在正文中会指明具体位置。在Part2基于\(\text{VariationalInference}\),找到原目标函数\(-\ln{p_\theta(x_0)}\)的上界\(L\),定义如下:\[\begin{aligned}L:=&\mathbb{E}_q\left[-\log\frac......
  • Codeforces Round 926 (Div. 2)
    A.升序排列再求和#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e5+10;#defineinf0x3f3f3f3fvoidsolve(){intn;cin>>n;vector<int>a(n+1);for(inti=1;i<=n;i++)cin>>a[i];sort(a.b......
  • Educational Codeforces Round 162 (Rated for Div. 2)
    EducationalCodeforcesRound162(RatedforDiv.2)A-MovingChips解题思路:模拟一下,不难发现是\(1\)之间\(0\)的个数。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusin......
  • Educational Codeforces Round 162 (Rated for Div. 2)
    不会F的场。A答案是最左的\(1\)和最右的\(1\)之间的\(0\)的个数。Code#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;intmain(){ ios::sync_with_stdio(false); cin.tie(0); intt; cin>>t; while(t--){ intn; cin>>n......
  • Educational Codeforces Round 162 [Rated for Div. 2]
    第二次,三道题,剩下的回学校再补,总结:还是需要多练习A:让数列里所有的1都挨在一起,可以看出,相邻1之间有多少个0就需要操作几次,特判:当只有一个1或者原本全是1就输出0;voidsolve(){cin>>n;inttop1=0,top2=0,cnt=0;memset(a,0,sizeof(a));memset(b,0,siz......
  • CF1932F Feed Cats
    现在能写了。考虑dp做法。在读入数据之后,我们下意识地对每条线段\((l_i,r_i)\)进行排序。随后经过尝试,我们可以排除以猫的编号为阶段进行dp的方案。因此我们选择以位置为阶段进行dp。设\(dp(i,0/1)\)表示位置\(i\)是否投喂能获得的最大价值。有转移方程(注意\(dp(......