AcWing 第 3 场周赛
比赛链接:Here
AcWing 3660. 最短时间
比较四个方向和 \((r,c)\) 的距离
void solve() {
ll n, m, r, c;
cin >> n >> m >> r >> c;
cout << max(max(r + c - 2, r + m - 1 - c), max(n + c - r - 1, n + m - r - c)) << "\n";
}
AcWing 3661. 重置数列
枚举相同值即可
void solve() {
int n, k; cin >> n >> k;
bool f[110] = {false};
vector<int>a(n + 1);
for (int i = 1; i <= n; ++i)cin >> a[i], f[a[i]] = true;
int cnt = n;
for (int i = 1; i <= 100; ++i) {
if (f[i]) {
int t = 0;
for (int j = 1; j <= n; ++j) {
if (a[j] == i)continue;
else t++, j = j + k - 1;
}
cnt = min(cnt, t);
}
}
cout << cnt << "\n";
}
AcWing 3662. 最大上升子序列和
(离散化,树状数组) \(O(nlogn)\)
众所周知,与求上升子序列相关的优化一般有两种:
- 单调栈 & 二分优化
- 线段树 | 树状数组 | 平衡树等数据结构优化
这里求的是上升子序列中所有元素的和的最大值,不太好用单调栈+二分,故想到用树状数组。
可能有些人对数据结构优化最长上升子序列不太了解,这里说一下思路。
先考虑暴力DP:设 \(f[i]\) 表示在 \(a_1∼a_i\) 中,且以 \(a_i\) 结尾的所有上升子序列中,元素和的最大值。
转移方程:
\]
将序列 \(a\) 离散化,考虑优化对 \(f_i\) 的转移。
设 \(g_x\) 表示所有 \(j < i\) 且 \(a_j = x\) 的 \(f_j\) 的最大值,那么 \(max_{0\le j<i,a_j<a_i}f[j]\) 就等于 \(max_{x <a_i}g_x\) ,注意到这项是 \(g\) 的一个前缀最大值,这恰可以用树状数组动态维护。
具体可见代码。
时间复杂度:
离散化 \(O(nlogn)\),树状数组 \(O(nlogn)\),故总复杂度为 \(O(nlogn)\)。
using ll = long long;
const int N = 1e5 + 10, mod = 1e9 + 7;
int n, a[N], diff[N], sz; // 离散化
// 树状数组
ll f[N], res;
inline void add(int x, const ll val) {for (; x <= sz; x += x & -x) f[x] = max(f[x], val);}
inline ll query(int x) {
ll res = 0;
for (; x; x &= x - 1)res = max(res, f[x]);
return res;
}
void solve() {
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> a[i], diff[i - 1] = a[i];
sort(diff, diff + n);
sz = unique(diff, diff + n) - diff;
for (int i = 1; i <= n; ++i) {
a[i] = lower_bound(diff, diff + sz, a[i]) - diff + 1;
ll t = diff[a[i] - 1] + query(a[i] - 1);
res = max(res, t), add(a[i], t);
}
cout << res << "\n";
}
AcWing 第 3 场周赛的更多相关文章
- AcWing第85场周赛
这场周赛是手速局hh 死或生 某国正在以投票的方式决定 2 名死刑犯(编号 1∼2)的生死. 共有 n 组人员(编号 1∼n)参与投票,每组 10 人. 每组成员只参与一名死刑犯的投票,其中第 i 组 ...
- AcWing 第11场周赛题解
计算abc 首先 \(0<=a<=b<=c\) 会随机给出 \(a+b,a+c,b+c,a+b+c\)的值 因为\(a,b,c\)都为正整数,所以\(a+b+c\)一定为最大值 然后 ...
- AcWing第78场周赛
今天想起来了,就补一下吧~ 第一题 商品分类 货架中摆放着 n 件商品,每件商品都有两个属性:名称和产地. 当且仅当两件商品的名称和产地都相同时,两件商品才视为同一种商品. 请你统计,货架中一共有多少 ...
- LeetCode-第 166 场周赛
LeetCode-第 166 场周赛 1281.subtract-the-product-and-sum-of-digits-of-an-integer 1282.group-the-people-g ...
- LeetCode 第 165 场周赛
LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...
- LeetCode--第180场周赛
LeetCode--第180场周赛 1380. 矩阵中的幸运数 class Solution { public: vector<int> luckyNumbers (vector<v ...
- Leetcode第 217 场周赛(思维量比较大)
Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...
- 【AcWing】第 62 场周赛 【2022.07.30】
AcWing 4500. 三个元素 题目描述 给定一个长度为 \(n\) 的数组 \(r\_1,r\_2,-,r\_n\). 请你找到其中的三个元素 \(r\_a,r\_b,r\_c\),使得 \(r ...
- Leetcode 第133场周赛解题报告
今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...
- 第二场周赛(递归递推个人Rank赛)——题解
很高兴给大家出题,本次难度低于上一场,新生的六个题都可以直接裸递归式或者裸递推式解决,对于老生的汉诺塔3,需要找出一般式,后两题分别为裸ST算法(或线段树)/线性DP. 正确的难度顺序为 种花 角谷定 ...
随机推荐
- 【结对作业】第一周 | 学习体会day02
今天我们想要实现线路的查询 发现了几个错误 1 <%-- 下拉表单的命名使用错误,导致无法接收前端数值--%> 首先我们很少使用下拉表单,之前用的也忘了,然后格式出现了错误 2 遇到typ ...
- weblogic端口号和内存怎么修改?
在WebLogic中修改端口号和内存分配是一项重要的任务,它涉及到服务器性能和应用程序的可靠性.下面我将详细介绍如何修改WebLogic的端口号和内存设置. 修改端口号 WebLogic使用多个端口来 ...
- 【案例教程】LoadRunner订票系统WebTours部署
题目: 使用LoadRunner自带的测试项目--航班订票管理系统WebTours,网站地址为:http://127.0.0.1:1080/WebTours/ (用户名为jojo,密码为bean),完 ...
- C++ Qt开发:QItemDelegate 自定义代理组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStyled ...
- NC65主键含义
最简单的办法,调用用友的类 import nc.jdbc.framework.generator.SequenceGenerator; IdGenerator idGenerator = new Se ...
- 不用手动创建数据库,直接导入sql文件,就能生成数据库和数据表
- 如何找到 niche 出海细分市场的 IDEA
先说结论就是:看榜单 Why:为什么看榜单? 大家会问为什么?原因很简单: 熟读唐诗三百首,不会作诗也会吟 不天天看榜单上相关的优秀同行,你想干啥 心法就是下苦功夫坚持,量变引起质变,排行榜天天看 竞 ...
- 秒懂ajax轮询、long poll 、websocket
ajax轮询 场景再现: 客户端:啦啦啦,有没有新信息(Request) 服务端:没有(Response) 客户端:啦啦啦,有没有新信息(Request) 服务端:没有..(Response) 客户端 ...
- openstack云基础架构
openstack搭建及基本配置 节点servera: 配置好yum后 yum -y update 更新yum仓库 安装openstack yum -y install openstack-packs ...
- Spring系列:基于注解的方式构建IOC
目录 一.搭建子模块spring6-ioc-annotation 二.添加配置类 三.使用注解定义 Bean 四.@Autowired注入 五.@Resource注入 六.全部代码 从 Java 5 ...