首页 > 其他分享 >2024.4 做题记录

2024.4 做题记录

时间:2024-04-04 22:14:14浏览次数:10  
标签:10 后手 2024.4 记录 公差 短路 先手 等差数列

299. CF1534E Lost Array

难崩。

题意转化为每次翻转 \(m\) 个 \(01\) 序列的元素,要把全 \(0\) 翻成全 \(1\)。

不想分讨。考虑直接最短路求最小步数,转移就枚举选多少个原本已经有的数。

交互就记录方案就行了。

300. P9537 [YsOI2023] CF1764B

很棒的题。

考察终态,可以发现最后输的人拥有的数的数量大概率是比赢家的数量少的。唯一的例外是等差数列,因为一个长为 \(n\) 的等差数列只能组成 \(n - 1\) 个不同的差值。

考虑若一开始先手就是一个公差为 \(d\) 的 \(n + 1\) 项等差数列,后手是一个公差为 \(d\) 的 \(n\) 项等差数列,那么先手无法操作,直接寄了。

否则当先手 \(n + 1\) 项后手 \(n\) 项时,最后先手输的状态一定是 \(d \sim (n + 1)d\) 的等差数列,后手是 \(d \sim nd\) 的等差数列。要达成这个状态,充要条件是先手拿了某个 \(td\) 和 \((t + 1)d\),同时后手拿的数 \(\le td\)。

先手和后手初始都是 \(n\) 项时把上面的结论反过来即可。

考虑计数。可以先把先手比后手数多的情况全部加上,然后再减去等差数列的情况,再加上先手和后手的数的数量相同的方案数。

计数先手是一个公差为 \(d\) 的 \(n + 1\) 项等差数列,后手是一个公差为 \(d\) 的 \(n\) 项等差数列,可以枚举公差和末项,bitset 每次与上自己左移 \(d\) 位即可。

对于另外一种,枚举 \(d\) 和 \(td\),设 \(\le td\) 的数的数量为 \(c\),枚举后手的数的数量,那么这个对答案的贡献为:

\[\sum\limits_{i = 0}^c \binom{c}{i} \binom{c - 1}{i - 1} \]

容易用范德蒙德卷积化简成 \(\binom{2c - 1}{c - 1}\)。

先手和后手都是 \(n\) 项是一样的。

那么总时间复杂度为 \(O(\frac{V^2 \ln V}{\omega} + V \log V)\),瓶颈在求第一种情况。

301. CF1056G Take Metro

逆天。

不知道为什么可以发现循环节长度很小。然后直接暴力即可,遇到循环节就直接跳过。

对于一个特定的 \(t \bmod n\) 考虑就不用哈希表。

实际上循环节可以证明是 \(O(\sqrt{n})\) 的?

302. 2024.4.2 模拟赛 T1 度假(vacation)

没见过是真不会做。。。

显然答案的边要满足:它是全部最短路的交集,且不是全部最短路 \(+1\) 的交集。

考虑拆点,求出到每个点距离为奇数和偶数的最短路。

那么求交集就可以求最短路方案,模一些大质数即可。

303. 2024.4.2 模拟赛 T2 距离(dist)

考虑把整个网格“离散化”,缩成 \(O(n^2)\) 个小矩形,每个矩形要么全是空白,要么只有一个障碍。

在新的网格上跑 \(O(n^4)\) 的 BFS,就可以知道任意两个矩形的距离比曼哈顿距离大多少。

求出大多少,加上之后就相当于算两个矩形的两个点的曼哈顿距离。也可以快速算。

304. CF1942F Farmer John's Favorite Function

考虑一些复杂度带根号的做法。

考虑分块,对于一个块,我们需要处理出一个数经过这个块会变成哪个数。以下假设块长 \(\ge 10\)(最后一个块块长可能 \(< 10\),暴力处理即可)。

观察这个递推式 \(f_i = \left\lfloor\sqrt{f_{i - 1} + a_i}\right\rfloor\),发现对于一开始传进去 \(0\) 和传进去 \(10^{18}\),经过足够多(\(\ge 10\) 个,应该能更少)的数,最后得到的 \(f_i\) 最多相差 \(1\)。证明显然,因为有一个根号,每次会让 \(\Delta\) 开根,进行 \(\log \log V\) 次 \(\Delta\) 就会变成 \(1\)。

设传进去 \(0\) 得到 \(x\),传进去 \(10^{18}\) 得到 \(y\)。若 \(x = y\) 那么已经完成了。否则 \(x + 1 = y\),我们需要求出这个分界点,即求出 \(z\) 使得传进去 \(z\) 得到 \(x\),传进去 \(z + 1\) 得到 \(y\)。考虑有 \(f_i^2 \le f_{i - 1} + a_i \le (f_i + 1)^2 - 1\),所以我们用 \(x\) 倒推,倒推的同时维护 \(f_i\) 的上界即可。

修改就重构所在块,询问扫一遍所有块,维护经过一段前缀的块后的 \(f_i\) 的值即可。

时间复杂度 \(O(n + m \sqrt{n})\)。

标签:10,后手,2024.4,记录,公差,短路,先手,等差数列
From: https://www.cnblogs.com/zltzlt-blog/p/18115019

相关文章

  • 2404 杂题记录
    1.线段树维护gcd查线段树势能提到的一个例题。线段树势能里面强调线段树维护区间gcd的时间复杂度为遍历数组的复杂度+总gcd的时间复杂度,即O(n+logC),均摊到每一个操作上就是O(1+logC/n)=O(1),所以我们可以O(nlogn)解决线段树维护区间gcd。不过网上做法好......
  • 记录一次Windows11本地部署Qwen1.5-0.5B AWQ模型的经历
    直接上代码,来自魔搭的模型通义千问1.5-0.5B-Chat-AWQ·模型库(modelscope.cn)frommodelscopeimportAutoModelForCausalLM,AutoTokenizerdevice="cuda"#thedevicetoloadthemodelontomodel=AutoModelForCausalLM.from_pretrained("qwen/Qwen1.5-0.5B-C......
  • 使用VPS搭建本地可以访问的gemini(个人记录)参考github,cloudflare,nginx
    第一步:购买一台VPS服务器,可以正常ping通google和baidu,不可细说 第二步:参考这个网站的docker部分,docker到linux服务器中,不使用vercel部署(被墙)https://juejin.cn/post/7317700926826922035docker项目地址:https://github.com/babaohuang/GeminiProChat/blob/main/README_cn.......
  • [ERROR] [Entrypoint]: Unable to start server 记录一次-docker-运行mysql-报错
    环境说明linux系统版本:lsb_release-a  docker版本:docker-v 不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。  mysql版本:5.7  .1.问题复现。使用命令启动mysql服务 dockerrun--name=mysql-it\-p3306:3308\-eMYSQL......
  • 大数据实验记录
    网卡在Ubuntu系统下浏览器无法上网,终端输入ifconfig查看,只能看到lo本地回环网卡,没有找到ens33网卡解决方法sudodhclientens33sudoifconfigens33创建普通用户打开一个终端(可以使用快捷键Ctrl+Alt+T),使用如下命令创建一个用户hadoop:sudouseradd-mhadoop-s/bin/ba......
  • 2024.4 第一周做题记录
    \(2024.4.2\)CF1336DYuiandMahjongSet题意:初始有一个值域在\([1,n]\)的多重整数集\(S\),且每个元素重复次数最多为\(n\),定义\(\operatorname{triple}(S)\)表示\(S\)中相同无序三元组数量,\(\operatorname{straight}(S)\)表示\(S\)中连续整数的无序三元组数量,告诉......
  • 全局统一返数据类型封装记录
    全局统一返回值封装​在SpringBoot中,实现全局统一返回值封装是一种常见的做法,它有助于保持API的一致性,并简化前端对响应数据的处理。创建一个响应体类,包含状态码、消息、数据等字段。这个类可以作为所有控制器返回值的通用格式。​下面通过三种类型的统一返回响应体来......
  • 备忘记录-20240404.构建服务的k8s资源清单
    导读记录一次搭建服务的成果框架graphTBC(Client)-->ig(ingress)ig-->np((nginx-php\nservice))ig-->tc((tomcat\nservice))np-->ng1(nginx)np-->ng2(nginx)ng2-..->ps((php\nservice))ng1-..->psps-->p1(PHP)ps-->p2(PHP)ps......
  • 将字符串转化为回文串,并记录方案
    #include<iostream>#include<stdio.h>#include<algorithm>#include<string>#include<cmath>#include<string.h>#defineR(x)x=read()#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;inline......
  • 2023.4 做题记录
    2023.4做题记录[NOIP2018提高组]旅行看到题目中要求\(m=n\)或\(m=n-1\),此时就应当分类讨论。①当\(m=n-1\)时:此时数据为一颗树。我们贪心的想:起始点为\(1\)的时候显然最优。对于每一个节点,在它子树内按照从小到大的顺序遍历显然最优。复杂度\(O(n\logn)\),瓶颈......