paper 653f task cf

Codeforces Round 906 Div. 1 (CF1889)

貌似现在发周六的 CF 题解已经失去了时效性,不过问题不大。 A. Qingshan Loves Strings 2 Description 定义一个长度为 \(k\) 的 \(01\) 串 \(s\) 是好的,当且仅当 \(\forall i\in [1,k],s_i\neq s_{k-i+1}\ ......
Codeforces Round 1889 906 Div

CF1707 题解

CF1707 题解 A 考场上 1h 才出思路...弱智了。 我们将参加大于当前智商的行为叫做 “摆烂”。我们考虑如果现在摆一次,将来某一次不摆,那么现在不摆,将来那次开摆,中间过程的智商会加1。更优。所以一定一摆就摆到底。而且一定会摆到最后一个。 所以我们二分从什么时候开摆,看是否能摆到最后,中间 ......
题解 1707 CF

对于百度前端技术学院的task0003-个人任务管理系统开发的一个记录

第一眼看到它列出的需求和实现要求,就觉得头晕,毕竟真的有点乱,好在自己时刻记得偶像的那一句话,“编程,最重要的是解决问题的能力。” 那我现在遇到需求杂乱的话,是不是要把这些要求分类出来?html、css、JS按这个分类出来后,再继续拿草稿图来画最基础的结构(这个是最重要的,不然一开始就乱写,到时候处 ......
前端 管理系统 任务 学院 系统

CF1879C Make it Alternating

传送门 设\(f_{i,0}\)表示将\([1,i]\)位变成以\(0\)结尾的字符串的最小步数。 \(f_{i,1}\)表示将\([1,i]\)位变成以\(1\)结尾的字符串的最小步数。 \(f_{i,2}\)表示将\([1,i]\)位变成空字符串的最小步数。 转移的时候分类讨论一下第\(i\)位 ......
Alternating 1879C 1879 Make CF

CF

CF1612 CF1029 CF1672 CF1875 ......
CF

CF1884B Haunted House 题解

CF1884B Haunted House 题解 借鉴了当前 另一篇题解,加了更多的说明。 简化题意 给定一个长度为 \(n\) 的二进制串 \(S\),求 \(f(1),f(2),\cdots,f(n)\)。 其中,\(f(i)\) 定义为,每次交换相邻的两个二进制位,将 \(S\) 的后 \(i ......
题解 Haunted 1884B House 1884

CF1889B

题面 给一个 \(n\) 个点的图,每个点 \(i\) 有点权 \(a_i\),初始图上没有边,你可以进行如下操作若干次: 若 \(S_i+S_j\ge i\times j\times c\),添加一条边 \((i, j)\)。其中 \(S_i\) 表示 \(i\) 所在连通块的点权和,\(c\) ......
1889B 1889 CF

CF1891F A Growing Tree

给定一棵以 \(1\) 为根的有根树,支持以下两种操作共 \(q\) 次: 加入一个点; 子树内点权加。 \(q \le 5 \times 10^5\)。 最傻逼的一集,怎么会有这么简单的 d2f。 不难发现每个点存在的时间区间构成时间轴上的一段后缀,于是我们可以将所有操作离线下来,先把完整的树建出 ......
Growing 1891F 1891 Tree CF

CF1891F A Growing Tree

CF1891F A Growing Tree 更好的阅读体验 有点诈骗。好多人都写的 LCT,但是这题其实连树剖都不需要。提供一个简单的单 \(\log\) 小常数做法。 动态加点是假的,可以离线下来得到最后树的结构,记一下 dfn 序。 一个操作对一个点有可能贡献当且仅当操作在加点之后进行。 所以 ......
Growing 1891F 1891 Tree CF

[CF551E] GukiZ and GukiZiana

CF551E 卧槽,lzh最爱的分块!卧槽,lzh最爱的分块!卧槽,lzh最爱的分块!卧槽,lzh最爱的分块! 维护懒标,散块重构。 unordered_map<long long,int> 会 TLE unordered_map<long long,bool> 会 AC #include<cstd ......
GukiZiana GukiZ 551E 551 and

[CF566E] Restoring Map

Restoring Map 星空蚁来了秒了。 人与人的智力是有差距的。 刷再多的CF智力不行就是不行。 OI这种需要智力的游戏不适合我。 我还是更适合对智力要求低一点的。 比如和妹子贴贴。 但是也没有妹子。 life is hard. 这类树的构造似乎可以从边缘情况想起,比如 CF1844G 但是这 ......
Restoring 566E 566 Map CF

[CF566E]Restoring Map

题目描述 Archaeologists found some information about an ancient land of Treeland. We know for sure that the Treeland consisted of $ n $ cities connected b ......
Restoring 566E 566 Map CF

[CF403E]Two Rooted Trees

Two Rooted Trees 题面翻译 题目描述 你有两棵有根树,每棵树都有 \(n\) 个结点。不妨将这两棵树上的点都用 \(1\) 到 \(n\) 之间的整数编号。每棵树的根结点都是 \(1\)。第一棵树上的边都是蓝色,第二课树上的边都是红色。我们也称第一棵树是蓝色的,第二棵树是红色的。 对 ......
Rooted Trees 403E 403 Two

CF1889D

题意 给定\(n\)个栈,栈的大小分别为\(k_i\),每个栈内元素\(\in[1,n]\),记从第\(i\)个栈开始的答案为\(ans_i\),流程:若栈\(i\)为空,答案为\(i\);否则弹出栈顶元素\(x\),并前往栈\(x\),继续刚才的操作。 \(n\le 10^5,\sum k_i\l ......
1889D 1889 CF

CF1842H

传送门 description 见洛谷翻译 solution 考虑分析一下不等式 \(x_i+x_j\leq 1\)。 如果 \(x_i,x_j\leq 0.5\),一定成立; 如果 \(x_i,x_j>0.5\),一定不成立; 如果 \(x_i,x_j\) 中一个 \(>0.5\),一个 \(\l ......
1842H 1842 CF

C++多线程——async、packages_task、promise

异步编程 async 、future 基本概念和使用: 异步执行函数:std::async 可以异步执行一个函数,这意味着函数将在后台线程中执行,而当前线程可以继续执行其他任务。 返回值获取:你可以获得函数的返回值,或者得到一个 std::future 对象,它允许你在将来的某个时刻获取函数的结果。 ......
线程 packages_task packages promise async

CF1800-1900

CF1490G Old Floppy Drive 首先判断是否可以在第一圈就符合题意,记录前缀和 \(sum\) 和 \(mx\) 数组,其中 \(mx_{i}\) 为 \(sum\) 从起点到 i 的最大值,即 \(mx_{i}=\max(mx_{i-1},sum_{i})\)。 显然如果在第一圈 ......
1800 1900 CF

cf353D. Queue(整体考虑转移)

D. Queue f[i]表示第i个F需要多少时间才能让所有的M都移到她后面,那么我们考虑转移,分为两种情况。 第i个F和第i-1个F挨着,那么显然f[i]=f[i-1]+1 假如中间隔着一些M, 可以分为两种情况,假如i可以在i-1完成之前追上它,那么就是f[i-1]+1,否则就说明 i一直在进行 ......
整体 Queue 353 cf

cf41D. Pawn(将余数设计到dp状态中)

D. Pawn 感觉这种dp套路似乎非常常见,我们可以设 f[i][j][x]表示走到(i,j),当前的值为f[i][j][x]*k+x ,也就是我们将余数x作为放在状态中。 #include<cstdio> #include<algorithm> #include<cstring> #includ ......
余数 状态 Pawn cf 41

CF1854C

传送门 description 给定正整数 \(n,m\) 和集合 \(S\),满足 \(S\) 中元素互不相同且都是小于等于 \(m\) 的正整数。每次进行如下操作 从集合 \(S\) 中随机选取一个数记作 \(x\) 从 \(S\) 中删去 \(x\) 如果 \(x+1\leq m\) 且 \( ......
1854C 1854 CF

CF1889D. Game of Stacks

啊啊啊每次补完题都感觉这题我场上应该是能想出来的啊! 考虑简化问题:若每个栈内只有一个元素,how。 此时我们发现所有栈之间构成了一个内向基环树。且环是没有用的,因为我们在环上走一圈之后仍然会回到原点。所以不妨把所有环边删除,此时每棵树的答案即为树根。 而对于原问题,同理,我们可以考虑不断找环,每找 ......
Stacks 1889 Game CF of

CF1889C2. Doremy's Drying Plan (Hard Version)

容易想到 dp:设 \(dp_{i,p}\) 表示前 \(i\) 天,强制第 \(i\) 天 dry,并且一共消除了 \(p\) 个区间的答案。 转移时可以考虑枚举前面的决策 \(j\),此时有转移方程: \[dp_{i,p}=\max(dp_{j,p-w})+1 \]其中 \(w\) 为满足 \( ......
Version Doremy Drying 1889 Plan

CF1889A. Qingshan Loves Strings 2

不妨考虑什么时候会无解! 显然当原序列 \(0,1\) 数量不同,或者序列总长为奇数时会无解! 否则我们设 \(l=1,r=n\)!开始回文配对! 如果配上了就直接删掉!并把左右端点向内移动! 如果两者都是 \(0\),就在末尾加上 \(01\)!都是 \(1\) 就加最前面! 以在末尾加入举例!此 ......
Qingshan Strings Loves 1889 CF

CF1889B. Doremy's Connecting Plan

一开始不会先跳 C 了!差点满盘皆输! 设 \(i<j\),则 \(i,j\) 合并可以看作 \(a_i\leftarrow a_i+a_j\) 后删掉 \(j\)!此时和初始局面本质相同!所以不妨先只看初始局面! 不等式右侧和下标有关!显然若右侧 \(i,j\) 中只要有一个是 \(1\),就会让 ......
Connecting Doremy 1889 Plan CF

『做题记录』[CF1601F]Two Sorts

[CF1601F]Two Sorts link:https://codeforces.com/problemset/problem/1601/F Description 有一个数列 \(\{a_1, a_2, \ldots, a_n\}\) 是一个 \(1 \sim n\) 的排列,且所有的数都按照 ......
1601F Sorts 1601 Two CF

CF1592F Alice and Recoloring

CF1592F1 Alice and Recoloring 1 CF1592F2 Alice and Recoloring 2 Part1 很容易发现,其实二和三操作是没有用的. 对于二操作,可以用一操作进行类似于求二维前缀和的方式实现,需要进行一操作至多 \(2\) 次,花费为 \(1+1=2\) ......
Recoloring 1592F Alice 1592 and

#链表#CF706E Working routine

题目 给出一个 \(n*m\) 的矩阵,每次交换两个等大的矩阵,输出 \(q\) 次操作后的矩阵 分析 维护向右和向下的指针,考虑最后输出只需要从每行的头指针向右跳, 那么修改实际上是将矩阵左边一列、上面一行、最后一行和最后一列向右下指针交换 时间复杂度 \(O((n+m)Q)\) 代码 #incl ......
Working routine 706 CF

[CF283E] Cow Tennis Tournamsan

CF283E 答案即为 \(\binom{n}{3}\) 减去不合法环数。 一个三元环中最多1个点出度为2,所以出度为 x 的点会造成 \(\binom{x}{2}\) 个不合法的环。 \(\Omicron(nm)\) 的做法就是枚举 i,判断 i 与 n 个点连边是否反向(0,1表示)。 然后可以 ......
Tournamsan Tennis 283E 283 Cow

CF1890D Doremy's Connecting Plan

Problem - 1890D - Codeforces 这个式子左边是加法,右边是乘法,很不好算 但其实是降智题,不过同时也是我不擅长的找性质 因为式子左边是加法而不是乘法,因此像类似于并查集那样求出当前每个联通块内 \(\sum a_i\) 等价于固定一个点从这个点的联通块向外扩展。 \(i\) ......
Connecting Doremy 1890D 1890 Plan

「CF715E」Complete the Permutations

\(\text{「CF715E」Complete the Permutations}\) \(\text{Link}\) \(\text{Describe}\) 给定长为 \(n\) 的且部分确定的置换 \(p,q\)。定义 \(p,q\) 距离为通过交换 \(p\) 任意两项变为 \(q\) 的最 ......
Permutations Complete 715E 715 the