IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 2022.03.12总结 -> 正文阅读

[数据结构与算法]2022.03.12总结

阶乘

题目大意:给出 n n n b a s e base base,求 n ! n! n! b a s e base base进制下末尾连续0的个数。

soluiton:考虑到答案其实就是最大的 k k k,使得 n ! ? m o d ? b a s e k = 0 n!\bmod base^k=0 n!modbasek=0

b a s e base base分解质因数为: p 1 l 1 + p 2 l 2 + ? + p n l n p_1^{l_1}+p_2^{l_2}+\cdots+p_n^{l_n} p1l1??+p2l2??+?+pnln??

我们设 M a x n = p 1 a 1 + p 2 a 2 + ? + p n a n Maxn=p_1^{a_1}+p_2^{a_2}+\cdots+p_n^{a_n} Maxn=p1a1??+p2a2??+?+pnan??,且 M a x n Maxn Maxn n n n的因数,那么答案即为 m i n { ? a i / l i ? ∣ i ∈ [ 1 , n ] } min\{\lfloor a_i/l_i\rfloor|i\in[1,n]\} min{?ai?/li??i[1,n]}

a a a数组如何求解?
a i = ∑ n > 0 ? n / p i ? a_i=\sum_{n>0}\lfloor n/p_i\rfloor ai?=n>0??n/pi??
答案即为上述。

时间复杂度: O ( T b a s e log ? n ) O(T\sqrt{base}\log n) O(Tbase ?logn)

石油储备

题目大意:给定一棵树,每个结点都有对应的 s i s_i si?,问如何分配 s s s使得其方差最小的最小代价。

solution:最小费用最大流

考虑非平衡度最小时的情况:

s u m ? m o d ? n = 0 sum\bmod n=0 summodn=0,则答案为 ? s u m n ? \lfloor\dfrac{sum}n\rfloor ?nsum??
s u m ? m o d ? n ≠ 0 sum\bmod n\neq0 summodn?=0,则答案为 ? s u m n ? \lfloor\dfrac{sum}n\rfloor ?nsum?? ? s u m n ? + 1 \lfloor\dfrac{sum}n\rfloor+1 ?nsum??+1

建图:

1、源点往所有点连一条流量为油桶数量,费用为0的边;
2、所有点往回电连一条流量为 ? s u m n ? \lfloor\dfrac{sum}n\rfloor ?nsum??,费用为0的边;
3、对于读入的点,连一条流量为 + ∞ +\infin +,费用为读入的边;

然后跑一遍最小费用最大流。
随后把所有连向汇点的边流量加一(使得剩余流量跑完),再做一遍费用流。
两次答案之和即为答案。

小纪的作业题

题目大意:给定序列 a a a,对于每次询问 q u e r y ( l , r ) query(l,r) query(l,r),在子串 a i ∣ i ∈ [ l , r ] a_i|i\in[l,r] ai?i[l,r]中求出:对于每个不同的 x x x,如果它在子串中出现了 f ( x ) f(x) f(x)次,结果为 ∑ x f ( x ) \sum x^{f(x)} xf(x)

solution:莫队。

先将读入的数分块,暴力求出第一个区间的答案。

暴力在每个块内转移即可。

时间复杂度: O ( n n ) O(n\sqrt n) O(nn ?)

拯救莫莉斯

题目大意:给定一个 n × m n\times m n×m的矩阵,每个点可以放 0 / 1 0/1 0/1。要满足对于点 ( x , y ) (x,y) (x,y) e x , y , e x ? 1 , y , e x + 1 , y , e x , y ? 1 , e x , y + 1 e_{x,y},e_{x-1,y},e_{x+1,y},e_{x,y-1},e_{x,y+1} ex,y?,ex?1,y?,ex+1,y?,ex,y?1?,ex,y+1?,中一个为1。

solution:状压 d p dp dp

f i , j , k f_{i,j,k} fi,j,k?表示对于前 i i i行,第 i ? 1 i-1 i?1行状态为 j j j,第 i i i行状态为 k k k,并且对于任意一行 x ∣ x < i x|x<i xx<i,该行城市满足题目要求的最小代价。

辅助数组 g i , j , k g_{i,j,k} gi,j,k?表示油库数量。

f i + 1 , s , X = m i n { f i , j , k + c o s t i + 1 , X } f_{i+1,s,X}=min\{f_{i,j,k}+cost_{i+1,X}\} fi+1,s,X?=min{fi,j,k?+costi+1,X?}

答案: m a x { f n + 1 , x , 0 } max\{f_{n+1,x,0}\} max{fn+1,x,0?}

时间复杂度: O ( 2 3 m n ) O(2^{3m}n) O(23mn)

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:03:13  更:2022-03-13 22:07:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:25:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码