首页 > 其他分享 >2024.7.15 近期练习

2024.7.15 近期练习

时间:2024-07-17 19:29:47浏览次数:15  
标签:le 15 2024.7 sum 练习 times 颜色 我们 dp

P3488 [POI2009] LYZ-Ice Skates

我们对于鞋码为 \(x\) 的人,贪心地,显然先把鞋小的给他穿。
所以就有了一个暴力的检验方法:从左往右扫,并对应修改。但是这样太慢。
这是一个二分图匹配问题,考虑 Hall 定理。
对于任意 \(1\le l\le r\le n\),当 \(sum(a_l\sim a_r)\le(r-l+1+d)k\) 时合法。
即 \(\sum_{i=l}^r (a_i-k)\le dk\) 时合法,我们只需要线段树维护最大子段和。

AGC001E

我们能用的信息是 \(A_i,B_i\) 很小。我们还要考虑的是组合数的性质。
令 \(s_i=a_i+b_i\),那么我们对于 \(i,j\) 来说,就是 \(s_i+s_j\) 里面取出 \(a_i+a_j\) 个。
枚举 \(i,j\) 分别取了多少,\(C_{s_i+s_j}^{a_i+a_j}=\sum_{k}C_{s_i}^{a_i-k}C_{s_j}^{a_j-k}\).
总和是 \(\sum_{i=1}^n\sum_{j=1}^n\sum_kC_{s_i}^{a_i+k}C_{s_j}^{a_j-k}\),令 \(F(x)=\sum_{i=1}^n \sum_k C_{s_i}^{a_i+k}\),故 \(Ans=\sum_{k}F(-k)F(k)\).
对于每个 \(a_i\) 我们来算贡献。贡献是 \(x^{-d}\times (1+x)^{s_i}\) 形式的,\(d\) 是一个偏移量。
\(s\) 相同的合并同类项,\(F=\sum_{i=0}^m Q_i(x) (1+x)^i\),\(Q_i(x)\) 为 \(s=i\) 的 \(\sum x^{-d}\).

观察题解我们发现了另一种做法,\(C_{s_i+s_j}^{a_i+a_i}\) 就是 \((0,0)\) 走到 \((a_i+a_j,b_i+b_j)\) 的方案数。
但是只有 \(O(1)\) 个起点和 \(O(n^2)\) 个终点,这是不划算的,不如弄 \(O(n)\) 个起点和 \(O(n)\) 个终点。
具体地,分离变量,就是所有 \((-a_i,-b_i)\) 走到 \((a_j,b_j)\) 的方案数,考虑 dp。

AGC002F

转化限制变成任意前缀白球的个数不小于其他球颜色的种数。
设 \(dp_{i,j}\) 表示填到第 \(i\) 个位置,可以填 \(j\) 种颜色。这样是很麻烦的,因为不确定某个颜色有没有填完。
那么我们要一种一种颜色填。我们不妨按颜色第一个出现的位置排序,按 \(1\sim n\) 标号,答案再乘上 \(n!\).
我们现在假设加入一种颜色,就要把 011111.... 插入,因为前面是合法的,所以这个也是随便插入的。
我们从 \(n\) 填到 \(1\),因为颜色顺序被钦定,第一个 1 要插到序列最前,那么 \(0\) 也要插到前面去。
所以设 \(dp_{i,j}\) 表示填了 \((n-i+1)\sim n\) 的颜色,当前最前面有 \(j\) 个 \(0\)。
\(dp_{i,j+1}=\sum_{k\ge j} dp_{i-1,k}\times C_{m\times(i-1)-j+1+(m-2)-1}^{m-2}\).

CF1615F

由于我们的操作是把 00 变 11,11 变 00,假设我们把奇数位全部取反,那么操作就变成了交换 01。
假设 \(s,t\) 已经确定,那么 1 的相对位置也是确定了的,贡献是 \(\sum |pos(s)_i-pos(t)_i|\)。
设 \(f_{i,j}\) 表示考虑了 \([1,i]\),当前 s 中 \(1\) 比 \(t\) 多 \(j\) 个的方案数,\(g_{i,j}\) 记录答案之和。
\(f_{i,j}\) 枚举下一位转移,然后 \(g_{i,j}\) 的话加上 \(f_{i,j}\times |j|\) 作为贡献,因为将有 \(j\) 个 \(1\) 经过 \((i,i+1)\) 的间隙。

CF906C

数据范围考虑状压,假设我们已知集合 \(s\) 是一个团,集合 \(t\) 也是一个团,我们如何合并这两个集合?
当集合 \(s\) 中有一个点, 可以连到 \(t\) 中的点时,可以合并这两个集合。
我们还注意到一点,就是点的操作先后顺序是不重要的。
设计 \(dp_s\) 表示当前 \(s\) 集合的点是一个团的最小代价,\(dp_{s\cup e_i}=dp_s+1\),\(e_i\) 表示 \(i\) 连接的点,\(i\in s\).

ARC171D

这个限制也就是对于有限制的 \((l,r)\) 来说,\(h_r\neq h_{l-1}\times B^{r-l}\),也就是 \(\frac{h_r}{B^r}\neq \frac{h_l}{B^l}\)。
我们现在要做的就是给 \(n\) 个 \(\frac{h_i}{B^i}\) 赋颜色,使得有限制的 \((l,r)\) 互不相同,而且颜色数不超过 \(p\).
我们考虑状压 dp,设 \(dp_s\) 表示集合 \(s\) 染色最少花多少个颜色,考虑一个一个颜色填,
即若 \(t\) 集合满足里面的点两两独立,\(dp_s=dp_{s-t}+1\)。

P4359 [CQOI2016] 伪光滑数

求解第 k 大问题考虑 A*,我们现在要做的就是如何枚举遍历所有情况,且不重复,不遗漏。
我们发现最大的伪光滑数是所有质因数都相同,我们现在要设计一种方案来遍历所有数。
设当前数的最大质因数幂次大于 \(1\),那么我们把这个质因数换掉小一点的质数,可以得到一个新的数。
而且我们这样做是可以不重不漏,答案就是第 \(k\) 个弹出队列的数(不会重复入队)。
具体地,我们先把所有 \(p^k\) 的数入队,这些数是独立的,然后从这些数出发,拓展新的数。
相当于我们钦定一个数是由其“最小的质因数换成最大的质因数后的这个数”拓展而来。

P4211 [LNOI2014] LCA

虽然这个题有经典分块解法,但是今天学习了新做法。
我们先差分询问,然后我们从 \(1\sim n\) 加入点,扫描线,用数据结构维护所有点当前的答案。
我们要求的是 lca 的深度,也就是到根节点的公共路径长度,所以我们可以转化为这样:
把 \(x\) 加入时,将根到 \(x\) 的路径的点全部 \(+1\),查询 \(z\) 时只需要查询根到 \(z\) 的路径和即可,树剖。

MX0717C

在所有长度为 \(k\),值域为 \([0,m]\) 的序列 \(A\) 中,求所有 \(A_i \otimes A_j(i<j)\) 加起来的值为 \(n\) 的序列个数。
\(k\le 18,m\le 10^{12},n\le10^{15}\)。

我们先考虑拆位,设第 \(i\) 位上 \(A\) 中有 \(c_i\) 个 \(1\),那么 \(n=\sum 2^i\times c_i(n-c_i)\)。
注意到 \(c_i(n-c_i)\le 81\),且只有 \(9\) 种取值。
一个 \(2^i\) 能影响到的位置是有限的,那么拼成 \(n\) 的方案是少的,所以我们可以减少状态的个数。
从高往低填,设 \(f(i,m,k)\) 表示当前填到第 \(i\) 位,当前 \(n\) 还剩 \(m\),有 \(k\) 个 \(A_i\) 是有最高位限制。
转移枚举 \(c_i\),数位 dp 即可。

标签:le,15,2024.7,sum,练习,times,颜色,我们,dp
From: https://www.cnblogs.com/Simon-Gao/p/18308144

相关文章

  • 7.16练习
    [root@localhost~]#lsblkNAME      MAJ:MINRM SIZEROTYPEMOUNTPOINTsda       8:0  129.3G 0disk └─sda1      8:1  129.3G 0part sr0       11:0  1 8.8G 0rom /mntnvme0n......
  • LIUNX中关于find以及dd的命令练习
    使⽤ls查看/etc/⽬录下所有的⽂件信息[root@web1~]#ls/etc/2.使⽤ls查看/etc/⽬录下名包含“a”字⺟的⽂件或者⽬录信息[root@web1~]#ls/etc/*a*3.使⽤ls查看/etc/⽬录下以".conf"结尾的⽂件信息[root@web1~]#ls/etc/*.conf4.使⽤ls查看/etc/⽬录中以"y"字⺟开......
  • 每日练习,不要放弃
    目录题目1.下面叙述错误的是()2.java如何返回request范围内存在的对象?3.以下代码将打印出4.下列类定义中哪些是合法的抽象类的定义?()5.以下代码段执行后的输出结果为6.以下代码运行输出的是总结题目选自牛客网1.下面叙述错误的是()A.一个类可以有多个构造方法......
  • 15分钟快速了解图新地球能做什么,解决什么问题,快速入门
    1.图新地球桌面端是什么1.1官方定义图新地球桌面端(LSV)是一款集多源数据加载、应用分析、演示汇报为一体的三维GIS软件。采用了中科图新自主研发的国产三维地图引擎,支持各类无人机航测、CAD、BIM、规划成果等多源数据的加载融合;实现了BIM+GIS技术在实际业务中的应用落地......
  • Day 15 二叉树part03
    110.平衡二叉树classSolution{publicbooleanisBalanced(TreeNoderoot){if(root==null)returntrue;returnisBalanced(root.left)&&isBalanced(root.right)&&Math.abs(hight(root.left)-hight(root.right))......
  • 洛谷P1596 [USACO10OCT] Lake Counting S 题解
    看别的神犇用的都是并查集,我还是用暴搜吧(doge下面纯暴搜#include<bits/stdc++.h>usingnamespacestd;intn,m,ans;//N行M列和答案charc[105][105];//存储农田的二维向量voiddfs(intx,inty){//暴搜 if(c[x][y+1]=='W'){ c[x][y+1]='.';//将水坑改为......
  • ES6——Set集合和Map集合练习题
    根据前一篇文章,让ai给我们出下面的练习题:Set练习题创建一个Set并添加数字1到10,然后将其转换为数组并打印。编写一个函数,接收一个数组作为参数,返回一个新的数组,新数组只包含原数组中唯一的元素(去重)。创建一个Set,添加多个元素,然后使用delete方法移除特定元素,打印剩......
  • iOS开发基础115-Socket
    在现代网络编程中,Socket(套接字)是实现网络通信的主要机制。Socket提供了端到端的双向通信接口,使得不同主机上的进程能够通过网络直接通信。在iOS开发中,经常需要使用Socket进行网络请求、实时通信(如聊天、游戏等)。以下将详细介绍Socket的概念,并列举iOS开发中常用的三方Socket框架,深......
  • 力扣刷题练习九 【234.回文链表】
    前言链表练习题【234.回文链表】。回顾链表知识,做题练习。一、【234.回文链表】题目阅读给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。示例1:输入:head=[1,2,2,1]输出:true示例2:输入:head=[1,2]输出:false......
  • 0基础学python-15:封装、继承和多态
    目录前言 一、封装(Encapsulation)私有变量: 二、继承(Inherit) 三、多态(Polymorphism)总结前言        封装、继承和多态是面向对象编程的三大基本特性,它们与面向对象编程(OOP)密切相关。  一、封装(Encapsulation)概念:封装指的是将数据(属性)和操作数据的方法......