首页 > 其他分享 >Codeforces Round 695 (Div. 2)

Codeforces Round 695 (Div. 2)

时间:2023-09-28 18:03:45浏览次数:56  
标签:695 contest codeforces Codeforces https Div com 1467 dp

练习笔记:

A:https://codeforces.com/contest/1467/problem/A

一开始以为是 987654321.....

交了两发WA。慢慢想想就是如果说我是第二个号码放8就是98901234....

交了就是AC

 

B: https://codeforces.com/contest/1467/problem/B

B啊, 暴力打出来

对于每个i,他在可能是a[i-1]-1,a[i-1],a[i-1]+1,a[i+1]-1,a[i+1],a[i+1]+1

每个都试试就是可以了(但是我WA 4发,草!)

 

C:https://codeforces.com/contest/1467/problem/C

这题有点奇怪啊

两种情况:

1:全拿同一个包(牺牲整个包)

2:牺牲两个包的最小值

看出来就是可以过了

 

D:https://codeforces.com/contest/1467/problem/D
啊这题怎么感觉比C简单(????可能C的情况怪怪的)

dp[i][j] 表示当前在位置 i, 还能走 j 步时总方案数。

基础状态: dp[i][k]=1 i->[1,n]

转移状态:dp[i][x]=dp[i+1][x+1]+dp[i-1][x+1]

起初我以为每个走过就是dp[i][0] 但其实不是的

那么我们要算走过多少次。

让a[i]=走过 i 多少次

a[i]=sum(dp[i][j]*dp[i][k-j]) 其实就是分成两个路途就是j长和k-j长。乘起来加上即可

然后就简单啦: 让ans=sum(a[i]*h[i])

修改时就是减掉再加回。

 

E: https://codeforces.com/contest/1467/problem/E

啊啊啊啊图论题!!!

就考虑到达一个节点u, 如果说我接下来往下走时看到另一个v拥有a[u]的节点的话呢我就需要标记(子树v和子树u外不行包括u,v自身)

如果说我现在发现子树并不满足全部颜色a[u]的节点都在里面, 意思就是我需要标记整个u的子树

那么如果说我们老实一个一个标记的话,复杂度O(n^2)

但是我们可以使用时间戳来差分具体方法可以前往洛谷或者https://codeforces.com/contest/1467/submission/225621920

 

啊ABC好难xd!!!

 

标签:695,contest,codeforces,Codeforces,https,Div,com,1467,dp
From: https://www.cnblogs.com/yonglicp/p/17736269.html

相关文章

  • 加训日记 Day5——codeforces round 899 再战div2
    Day5,9.25,codeforcesround899div2  ·事实证明自己的思维和手速都还不够快,晚上还晚来了一点  ·B题属实是,上来就想着并查集(菜鸡是这样的)然后发现不会写捏  ·思考了很久(看数据量)感觉是枚举暴力,但是又想不到怎么去枚举  ·一题遗憾离场  ·顺理成章的-26......
  • 加训日记 Day6——来场div3上上分(为什么连着三天比赛啊喂,人要熬死了)
    Day6,9.26cfround900div3  ·前三题手速题,尝试用模板和库函数结果出了点岔子,罚时略高  ·感觉还有很大提升空间,觉得这种题应该要求自己10分钟内全过掉(开翻译的情况下)  ·D过的人数没有E多就很难绷  ·写了发D结果TLEon10,心态爆炸直接下播  ·美美+46......
  • Problem - 616C - Codeforces
    Problem-616C-CodeforcesC.TheLabyrinth如果是直接对\(*\)去跑dfs或者bfs的话无疑是会超时的既然如此,那我们可以去对\(.\)跑搜索,将各个连通的\(.\)块标号并计算出连通块内的点的数量,然后去遍历\(*\)的时候只需要上下左右跑一下计算即可啊,在\(bfs\)或\(dfs\)的时......
  • CF957 Codeforces Round 472 (rated, Div. 2, based on VK Cup 2018 Round 2)
    CF957ATritonicIridescence如果原序列中有两个相同的字符,显然不合法。如果开头或者结尾为?,或者有两个连续的?,或者一个?两边的字符不同显然合法。否则一定不合法。#include<iostream>#include<cstdio>usingnamespacestd;constintN=105;intn;chars[N];intma......
  • CF992 Codeforces Round 489 (Div. 2)
    CF992ANastyaandanArray答案为非零数的个数。#include<iostream>#include<cstdio>#include<map>usingnamespacestd;constintN=100005;intn;inta[N];map<int,int>cnt;intmain(){ scanf("%d",&n); for(inti=1;i<=n;i+......
  • CF1008 Codeforces Round 497 (Div. 2)
    CF1008ARomaji直接模拟。#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;constintN=105;intn;chars[N];intmain(){ scanf("%s",s+1); n=strlen(s+1); for(inti=1;i<=n;i++) if(s[i]!='a......
  • CF996 Codeforces Round 492 (Div. 2) [Thanks, uDebug!]
    CF996AHittheLottery直接贪心尽可能的分配到\(k_5\),剩下的依次分配给\(k_4,k_3,k_2,k_1\)。#include<iostream>#include<cstdio>usingnamespacestd;intn;intk[6];intmain(){ scanf("%d",&n); k[5]=n/100,n%=100; k[4]=n/20,n%=20; k[3]=n/1......
  • CF1011 Codeforces Round 499 (Div. 2)
    CF1011AStages每次记下上一个选的位置,贪心能填就填。#include<iostream>#include<cstdio>usingnamespacestd;constintN=55;intn,k;chars[N];intcnt[27];intmain(){ scanf("%d%d",&n,&k); scanf("%s",s+1); for(inti=1;i<=n......
  • CF1020 Codeforces Round 503 (by SIS, Div. 2)
    CF1020ANewBuildingforSIS分类讨论\(a,b\)两个端点的几种情况就好了,特判\(t_a=t_b\)的情况。#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>usingnamespacestd;intn,h,a,b,k;voidsolve(){ intta,fa,tb,fb; scanf(&qu......
  • CF1036 Educational Codeforces Round 50 (Rated for Div. 2)
    CF1036AFunctionHeight答案为\(\lceil\frac{k}{n}\rceil\)。#include<iostream>#include<cstdio>usingnamespacestd;longlongn,k;intmain(){ scanf("%lld%lld",&n,&k); printf("%lld",(k+n-1)/n); return0;}......