【3.31】

2024-04-01 08:12
文章标签 3.31

本文主要是介绍【3.31】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智乃想考一道完全背包(Easy version)

思路:虚拟物品的思路。可以把 l ∈ [ 1 , k ] , r ∈ [ k , n ] l\in[1, k], r\in[k, n] l[1,k],r[k,n] 的区间 ( l , r ) (l, r) (l,r) 看作一个虚拟物品,体积和价值为区间的体积和与价值和。这样做完全背包就是 O ( m 3 ) O(m^3) O(m3) 的。用贪心去一下重的话是 O ( n 2 ) O(n^2) O(n2) 的。

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68493724

智乃想考一道完全背包(Hard version)

思路:还是 DP 。

  1. 考虑枚举分界点进行如上题的 DP,时间复杂度 O ( n × m 3 ) O(n\times m^3) O(n×m3)
  2. 考虑枚举虚拟物品,共有 n 2 n^2 n2 个,每个物品 ( l , r ) (l, r) (l,r) 都对该区间内的所有分界点作为物品。如果我们从小到大枚举 l l l ,从大到小枚举 r r r ,可以将 ( l , r ∈ l ∼ n ) (l, r \in l\sim n) (l,rln) 内的所有物品一次统计到 ( l , r ) (l, r) (l,r) 中。 r r r 枚举完之后, k = l k=l k=l DP 完成。

智乃想考一道平衡树

三个知识点:支持 O1 反转的双端队列,整体打lazy标记,时间戳在lazy上的应用。

一、

自己写了个

struct ReversedDeque {int h, t, isrev, data[N];int _next(int i) { return i + 1 == N ? 0 : i + 1; }int _prev(int i) { return i == 0 ? N - 1 : i - 1; }int size() { return h <= t ? t - h : t - h + N; }void pop_back() { t = _prev(t); }void pop_front() { h = _next(h); }void push_back(int x) { data[t] = x; t = _next(t); }void push_front(int x) { h = _prev(h); data[h] = x; }int& front() { return data[h]; }int& back() { return data[_prev(t)]; }int& at(int i) { i = h + i; if(i >= N) i -= N; return data[i]; }void reverse() { isrev ^= 1; }void r_pop_back() { isrev ? pop_front() : pop_back(); }void r_pop_front() { isrev ? pop_back() : pop_front(); }void r_push_back(int x) { isrev ? push_front(x) : push_back(x); }void r_push_front(int x) { isrev ? push_back(x) : push_front(x); }int& r_front() { return isrev ? back() : front(); }int& r_back() { return isrev ? front() : back(); }int& r_at(int i) { return isrev ? at(size() - 1 - i) : at(i); }
};

二、

该题涉及到的lazy标记是 1. 整体乘 2. 整体加

当塞入一个数字时,队列中其他数字都有lazy A × i t e m + B A\times item + B A×item+B ,而新数字没有。此时可以逆向打lazy,即 i t e m − B A \frac {item - B} A AitemB ,这样新数字的lazy就与整体的一致了。

三、不会,省略。

S 老师的签到

知识点:分层 BFS,开两个队列。

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68515129

这篇关于【3.31】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/866663

相关文章

c++ primer 练习 3.27、3.28、3.29、3.30、3.31、3.32、3.33

3.27 (a)非法。buf_size 不是一个常量表达式 (b)合法。 (c)当 txt_size()是 constexpr 时正确;否则错误

Web3 游戏周报(3.31-4.6)

【3.31-4.6】Web3 游戏行业动态: Xai 基金会宣布与 Reboot 达成合作拟支持 Pixel Vault: BattiePlan 游戏生态迁移 加密游戏 Hytopia 在节点销售获得 800 万美元后将于本月推出测试版 新加坡 Web3 游戏初创公司 Gomble Games 完成 1,000 万融资 NFT 卡牌游戏 Parallel 公开测试版第二赛季已上线

3.31学习总结

算法 解题思路 使用dfs,对蛋糕每层可能的高度和半径进行穷举.通过观察我们可以知道第一层的圆面积是它上面所有蛋糕层的圆面积之和,所以我们只要去求每层的侧面积就行了. 因为题目要求Ri > Ri+1且Hi > Hi+1,所以我们可以求出每层的最小体积和侧面积,用两个数组分别储存起来. 然后进入dfs我们从最上层开始对每层的高度和半径进行穷举,要注意的是这道题有很多的剪枝要做不然就会

人工智能轨道交通行业周刊-第76期(2024.3.18-3.31)

本期关键词:铁科智合、信号机、列车供电方式、Voice Engine、3D数字人 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道世界铁路那些事铁路技术创新智慧交通RTAI智慧城轨网轨道交通智能装备NE轨道交通铁路供电上海铁道兰州铁路中国地

3.31前端日报——JavaScript手写代码无敌秘籍

给 「前端开发博客」 加星标,每天打卡学习 长按二维码即可识别“进入网页”查看哟~ 1、「中高级前端面试」JavaScript手写代码无敌秘籍 操作符做了这些事: 它创建了一个全新的对象。 它会被执行 ] (也就是 __proto__ )链接。 它使 this 指向新创建的对象。。 通过 new 创建的每个对象将最终被 ] 链接到这个函数的 prototype 对象上。 如果函数没有返...