首页 > 其他分享 >Codeforces Round 898 (Div. 4)

Codeforces Round 898 (Div. 4)

时间:2023-09-26 19:46:24浏览次数:45  
标签:898 max Codeforces 就是 答案 Div cycle dp 指针

这是我的vp,不是正真的contest.

 

A: 不想多说,读者应该可以做到的!!!

 

B: 让g=product(移除掉0的a):

如果有多过1个0答案肯定是0。

如果只是有1个0答案就是g。

没有0,答案就是max(g/a[i]*(a[i]+1)) 任何 i。

 

C: 没有仔细想那个profit的formula. 手打表,sum就可以了。

 

D:就是双指针, 如果两个指针的插值大过k:

那把左指针移去右指针那里然后答案加1

 

E: 小小二分,竟敢班门弄斧!!!!

看一个值y可以不可以就是每个h[i]<y, s+=(y-h[i])

然后看s<=x

 

F: 又是双指针!!!

就是当我们两个指针的位置一样时要特判。然后。。。就没有了

 

G: 啊这题蛮好的。 注意到 AAABAA 换时:

AAABAA->AABCAA,这里就右边就是废了然后左边可以做连锁反应

所以我们的决策点就是在每个B要左还是右?然后能加的值就是多少个连续的1

那么就是dp[i][左/右], 具体的转移方式就是:

l[i]为左边有多少个连续的1,r[i]则是右边。

dp[i][0]=max(dp[i-1][1],dp[i-1][0]+l[i]) 如果上一个拿了右边,现在就拿不到了

dp[i][1]=max(dp[i-1][1],dp[i-1][0])+r[i] 上一个不管什么方向,我现在往右上一个B管不到我了

答案就是max(dp[m][0],dp[m][1]) m=在字串里有多少个B

 

H:又到了我最喜欢的图论题

n个边代表说这是一个有cycle的图。 B能赢的方式就是去到cycle里。

那么我们就需要看如果A在B去到cycle的路途中那么答案就是NO

那么现在A要堵住B不让他去到cycle里,那么唯一的方式就是A去到cycle(让A进入cycle的节点称为topA)里,然后从那里最小路径去到B到达cycle的节点(topB)

如果A->topA+topA->topB的时间<=B去到topB的时间:答案就是NO

要不然就是YES

我的代码里用了一点https://codeforces.com/contest/1872/problem/F的删除叶子的技巧, 有想看看的可以去看看xd

 

做完啦!!!挺educational的题单(?)

标签:898,max,Codeforces,就是,答案,Div,cycle,dp,指针
From: https://www.cnblogs.com/yonglicp/p/17730985.html

相关文章

  • Codeforces Round 899 (Div. 2)
    赛后四题B题直接枚举不存在的元素即可C题的trick有点像之前abc的某道题,对于奇数位置它一定可以贡献,对于偶数位置,如果它有数选了,那么它就能够贡献。\(f[i]\)表示到前i个且至少选了一个的最大答案。#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#de......
  • Codeforces Round 738 (Div. 2) B. Mocha and Red and Blue
    给一个字符串,包含字符\(B\),\(R\),\(?\)。其中\(?\)可能为\(B\)或\(R\)。规定不完美数为字符串中相同字符连续出现的次数,询问一个字符串的最少可能不完美数。观察到\(BR\)或\(RB\)需要尽可能多,于是考虑尽可能让相邻字符不同。容易证明从左往右扫和从右往左扫贡献......
  • Codeforces Round 750 (Div. 2) B. Luntik and Subsequences
    给一个数组\(a_1,a_2,\cdots,a_n\),定义\(s=\sum_{i=1}^{n}a_i\)。询问有多少个\(a\)的子序列满足\(\suma_{i_k}=s-1\)。显然要选出一个\(1\)不加入子序列,任意一个\(0\)可以加入或不加入子序列。于是\(ans=\binom{cnt1}{1}\cdot2^{cnt0}\)。vi......
  • CF1882 div.2 做题记录
    A题面扫一遍,令\(b_i\rightarrowb_{i-1}+1\),若\(b_i=a_i\),\(b_i\rightarrowb_i+1\)。点击查看代码#include<bits/stdc++.h>#defineullunsignedlonglong#definelllonglong#definepiipair<int,int>#definepdipair<double,int>#definepb......
  • Codeforces Round 899 (Div. 2)
    CodeforcesRound899(Div.2)A.IncreasingSequence解题思路:从左往右一个个看,从1开始,如果当前位相同\(+2\),否则\(+1\)。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constintN=1e6+10;constintM=2*M;constintmod=1e9+......
  • Educational Codeforces Round 155 D (CF1879_D)
    题目大意给一个长度为\(n\)的数组,求\(\Sigma_{i=1}^{n}\Sigma_{j=i}^{n}区间异或和\times(j-i+1)\)其中\(n\leq3e5,~a[i]\leq1e9\)分析首先注意到由\(l\)到\(r\)的区间异或和可以转化为\(sum_{l-1}~XOR~sum_r\)因此,对于每一个点\(x\),无论它作为上述的\(sum......
  • Educational Codeforces Round 155 (Rated for Div. 2)
    EducationalCodeforcesRound155(RatedforDiv.2)A.Rigged!解题思路:若存在\(s[i]>=s[1]\)并且\(e[i]>=e[i]\),那么答案为\(-1\).否则,答案为\(s[1]\).代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constintN=1e6+10;con......
  • 短视频app源码,自动滚动条挡住 div内容
    短视频app源码,自动滚动条挡住div内容<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf......
  • Codeforces463-E.Team Work-组合数、DP
    Codeforces463-E.TeamWork题意:求\[\sum_{i=1}^n\binom{n}{i}i^k\]其中\(1\leqn\leq10^9\),\(1\leqk\leq5000\)。题解:其实这个题\(k\)的数据范围就已经暗示了做法的复杂度——应该是要去考虑根据\(k\)去递推了。首先为了方便,\(i=0\)这一项完全可以补上,用类似生成函......
  • Educational Codeforces Round 155 (Rated for Div. 2)
    比赛链接A.Rigged!题目链接就是一个比较简单的模拟就可以解决,如何判断能不能第一只需要考虑比他力量大的耐力是不是也比他大就行,而只要比他大,他就不可能第一,否则输出他的力量作为标杆就行,这样也可以避免比他力量小的也可以举起来。#include<bits/stdc++.h>usingnamespaces......