首页 > 其他分享 >2023-3-10 #44 所有的感受都将被铭记在心 不必劳烦群星指引

2023-3-10 #44 所有的感受都将被铭记在心 不必劳烦群星指引

时间:2023-03-10 22:15:13浏览次数:54  
标签:10 44 geqslant 枚举 复杂度 2023 sum leqslant rightarrow

来补之前没考的牛客了!!

"蔚来杯"2022牛客暑期多校训练营(加赛)(EZEC Round)

258 J Jellyfish and its dream

感觉自己不太擅长这种。

差分,操作变成 \((x,1)\rightarrow(x+1,0)\),即 \((0,1)\rightarrow(1,0),(1,1)\rightarrow(0,2),(2,1)\rightarrow(0,0)\)。

注意到 \(0\) 基本没有意义,因为 \(1\) 可以使用 \((0,1)\rightarrow(1,0)\) 改变位置。(没有逆操作不重要,因为是个环)

仔细想想,发现只要 \(1\) 比 \(2\) 多就一定合法。

259 G Good red-string

有趣,但总感觉有印象,可能考过之后又忘了。

可以说明,有解的充要条件是,每个前缀 \(c_r\geqslant c_e\geqslant c_d\)。(\(c\) 是出现次数)

其可以转换成每个前缀 \(c_e\geqslant c_d\),每个后缀 \(c_e\geqslant c_r\)。

从前往后扫,如果 \(c_d>c_e\) 就找到最近的问号变成 e,从后往前也做一遍类似的,其余没有填充的问号从前往后分别填 r,e,d 即可。

这一定是最有可能合法的,检查一下就好了。

260 L Lndjy and the mex

感觉有点难啊!

枚举 \(k\) 01 规划计算 mex 不小于 \(k\) 的贡献,再枚举区间内数的构成:(\(a_i\) 是全局每个数出现次数,最后那个括号里是算插入的方案数)

\[\sum_k\sum_{[i\leqslant k]\leqslant b_i\leqslant a_i}{\sum b_i\choose b_0,\cdots,b_n}{n-\sum b_i\choose a_0-b_0,\cdots,a_n-b_n}(n-\sum b_i+1) \]

其很类似一个卷积形式,答案可以刻画成:

\[\sum_i i!(n-i)!(n-i+1)[x^i]\sum_{k\geqslant 0}g_0(x)g_1(x)\cdotsf_{n-1}(x)f_n(x) \]

这个可以分治 NTT,直接维护一下区间积与区间答案就好了,复杂度 \(O(n\log^2 n)\)。

261 B Bustling City

树上的点的答案很好算,随便长剖一下就好了。

环上的点如果枚举每个点算答案就有点难做,你可以枚举贡献来自哪个结点的人,注意到一个人走的时候与他同行的人数不减,可以算出其第一次达到要求的时刻,然后标记环上对应点,最后在环上推一边贡献就好了。

262 D Directions

很难的一步转化!

我们将所有点根据与 \(1\) 的方向关系分类,将所有在 \(1\) 西部的点根据圆心对称到另一个半圆上,那么 \(a\) 在 \(b\) 西边等价于操作后 \(a\) 在 \(b\) 左边,这样就可以记录目前选了几个在 \(1\) 西部的点,几个在 \(1\) 东部的点 dp 了。

要枚举共有多少点在 \(1\) 西部,复杂度应该是 \(O(n^3)\) 的。

263 A Alternating 2.0

差分,那么一次可以把 \(\leqslant 2\) 个 \(0\) 全部变成 \(1\),于是操作次数为 \(\lceil\frac{\sum[s_i=s_{i+1}]}{2}\rceil\)。

上取整拆成全局和、权值为奇数的子序列数量,现在分别考虑两个问题:

第一个问题枚举点对算贡献,我们有:

\[\sum_{l\leqslant i<j\leqslant r,s_i=s_j}2^{r-l+i-j} \]

这个东西随便拆开一下,化简式子就好了。(拆成 \(i<j\leqslant r\) 减去 \(i<j<l\) 和 \(i<l,l\leqslant j\leqslant r\))

第二个问题可以观察到奇偶性等于 \((len+[s_1=s_n])\bmod 2\),我们固定首尾对应位置,若首尾不相邻,那么使得权值为奇数的子序列一定恰好一半,这就很好算了。

复杂度 \(O(n+q)\)。

264 F Flame blast magician master qcjj

其实不难,但是题意太自然了,不太能联想到这个 trick。

二维提示我们使用“减半警报器 trick”(其实我也不知道叫什么名字),我们只需分开维护 \(x,y\) 轴是否 hit 到半血线,这是容易用线段树维护的。

标签:10,44,geqslant,枚举,复杂度,2023,sum,leqslant,rightarrow
From: https://www.cnblogs.com/xiaoziyao/p/17197480.html

相关文章

  • 2023年3月10号
    今天满课,今天晚上复习一下WEB最近四周的课程内容,下次要求我们进行实验并完成对应的任务。HTML标签是由尖括号包围的关键词HTML标签通常成对出现的,分别称为开始标签和结束(......
  • 2023.3.10每日总结
    web项目实现mysql增删改查并从前端页面操作 1.看下各个包下面的文件,我上一篇文章已经说过了,这里对上一章有一部分重复的2.User.java是数据库元素写的一个类,代码......
  • day10 打卡232. 用栈实现队列 225. 用队列实现栈
    day10打卡232.用栈实现队列225.用队列实现栈232.用栈实现队列232题目链接classMyQueue{//管理进的元素Stack<Integer>stackIn;//管理出的元素......
  • 20230310考试总结
    \(0h\)~\(0.5h\):大概将所有题目看了一下并且稍微想了一下T1,但没什么进展。\(0.5h\)~\(1.5h\):发现T3是求最大团的问题,直接打了随机化算法。\(1.5h\)~\(2h\)......
  • 初识C语言3/10
    循环语句:while循环:#include<stdio.h>intmain(){inti=1;while(i<=10){if(i==5)break;printf("%d\n",i);//1,2,3,4,5......
  • 每日总结-23.3.10
    <?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_w......
  • 10.优化登陆达到维持登陆和免密登陆功能
    在utils目录下增加了memoryUtils.js和storageUtils.js文件需要安装store.js —>npm installstore【版本:2.0.12】 查看local存储信息,打开开发者工具memor......
  • 每日总结 3.10
    今天学习了按键的操作。首先是按键的点击事件:packagecom.example.dongnao;importandroidx.appcompat.app.AppCompatActivity;importandroid.annotation.Suppress......
  • 每日学习总结_20230310
    今天学习了Android开发的基础知识,包括活动(Activity)、布局(Layout)、视图(View)等概念。还学习了如何创建一个简单的界面,使用XML进行布局,以及如何在Java代码中处理用户输入。明......
  • 每日总结2023/3/10
    今天学习了AS中的复选框按钮效果如下  tv_text=findViewById(R.id.tv_text);bt_fa=findViewById(R.id.bt_fa);cb_sing=findViewById(R.id......