当前位置: 首页 > news >正文

牛客刷题-Day24

牛客刷题-Day24

今日刷题:\(1046-1050\)

1048 习题-储物点的距离

27a12717-5c4a-4d8c-9849-1351827dbfd1

解题思路

对于 \(i\in[l,r]\),将 \(i\) 处的物品运输到 \(x\) 处,代价为 \(b_i*|pos_i-pos_x|\),即物品数量与距离的乘积,然后累加。
计算时,分类讨论 \(x\) 在区间 \([l,r]\) 的位置,以便于去除绝对值符号。
此外,从 \(i\)\(x\) 处的代价,也等价于 \(i\)\(1\)\(x\)\(1\)代价的差值,因此预处理出前 \(i\) 处物品运输到 \(1\) 的代价之和。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 200010, MOD = 1000000007;
typedef long long LL;int n, m;
LL a[N], b[N], cost_to_1[N]; // 距离前缀和、物品前缀和、到位置 1 代价前缀和int main() {scanf("%d%d", &n, &m);for (int i = 2; i <= n; i++) {scanf("%lld", &a[i]);a[i] = (a[i] + a[i - 1]) % MOD;}for (int i = 1; i <= n; i++) {scanf("%lld", &b[i]);cost_to_1[i] = (cost_to_1[i - 1] + b[i] * a[i] % MOD) % MOD;b[i] = (b[i] + b[i - 1]) % MOD;}LL ans = 0;while (m--) {int x, l, r;scanf("%d%d%d", &x, &l, &r);if (x <= l) {LL c = (cost_to_1[r] - cost_to_1[l - 1] + MOD) % MOD;LL d = ((b[r] - b[l - 1] + MOD) % MOD) * a[x] % MOD;ans = (c - d + MOD) % MOD;} else if (x >= r) {LL c = (cost_to_1[r] - cost_to_1[l - 1] + MOD) % MOD;LL d = ((b[r] - b[l - 1] + MOD) % MOD) * a[x] % MOD;ans = (d - c + MOD) % MOD;} else {LL c = (cost_to_1[x] - cost_to_1[l - 1] + MOD) % MOD;LL d = ((b[x] - b[l - 1] + MOD) % MOD) * a[x] % MOD;LL e = (cost_to_1[r] - cost_to_1[x] + MOD) % MOD;LL f = ((b[r] - b[x] + MOD) % MOD) * a[x] % MOD;ans = ((d - c + MOD) % MOD + (e - f + MOD) % MOD) % MOD;}printf("%lld\n", ans);}return 0;
}

1049 习题-货物种类

32eac813-8824-4e92-b303-594b7dd25bd1

解题思路

按照货物编码和区间进行排序。
对于同一个货物编码,将其重叠区间进行合并,以防止重复计算。
区间计算用差分和前缀和处理。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 100010;int n, m;
struct Node {int l, r, d;
} a[N];
int s[N];bool cmp(Node a, Node b) {if (a.d == b.d) {if (a.l == b.l)return a.r < b.r;return a.l < b.l;}return a.d < b.d;
}int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= m; i++)scanf("%d%d%d", &a[i].l, &a[i].r, &a[i].d);sort(a + 1, a + m + 1, cmp);int st = a[1].l, ed = a[1].r;for (int i = 2; i <= m; i++) {if (ed >= a[i].l && a[i].d == a[i - 1].d) {ed = max(ed, a[i].r);} else {s[st]++, s[ed + 1]--;st = a[i].l, ed = a[i].r;}}s[st]++, s[ed + 1]--;int mx = 0, res = 0;for (int i = 1; i <= n; i++) {s[i] += s[i - 1];if (s[i] > mx) {mx = s[i], res = i;}}printf("%d\n", res);return 0;
}

1050 习题-糖糖别胡说,我真的不是签到题目

2aebfc72-7248-4159-994d-b605ec5f7b18

解题思路

一只糖糖存活下来,只需要看其右侧有无和它不同组且能力值大于它的糖糖,如果存在,则该糖糖无法存活。基于此,考虑从右往左遍历解决问题,需要两个额外变量来记录到当前位置时两个组的能力值的最大值
发功的过程使用差分数据来模拟,最后的能力值就是初始值加上变化值。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 50010;int T;
int n, m;
int a[N], b[N], d[N];int main() {scanf("%d", &T);while (T--) {memset(d, 0, sizeof d);scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++)scanf("%d%d", &a[i], &b[i]);for (int i = 0; i < m; i++) {int c;scanf("%d", &c);d[c]++;}int delta = 0, res = n, mx0 = 0, mx1 = 0;for (int i = n; i; i--) {delta += d[i];if (a[i]) {res -= (b[i] + delta) < mx0;mx1 = max(b[i] + delta, mx1);} else {res -= (b[i] + delta) < mx1;mx0 = max(b[i] + delta, mx0);}}printf("%d\n", res);}return 0;
}
http://www.jsqmd.com/news/52980/

相关文章:

  • 2025年螺丝装袋机供货商权威推荐榜单:螺丝包装机/电子配件包装机/五金自动包装机源头厂家精选
  • 09.入门篇-环境变量
  • 实测有效!有抗衰效果的口服产品,30+内调抗衰宝藏清单
  • 2025 美国货代公司排行榜:权威测评与中美专线优选指南
  • 经典ACM板元与非协调元的Matlab实现
  • 留学中介排名TOP10:2025申请季终极指南
  • 2025年黑龙江无人机航拍培训学校权威推荐榜单:无人机驾驶员‌/无人机维修培训‌/无人机培训资质学校精选
  • HT-LFCG-630+ 国产 Pin-to-Pin 替代 Mini-Circuits
  • MATLAB 实现 t-SNE 快速降维
  • 2025年双工作台数控铆接机源头厂家权威推荐榜单:单轴数控铆接机/转盘数控铆接机/四轴数控铆接机源头厂家精选
  • 成都恒利泰HT-LFCG-900+ , Pin-to-Pin 替代Mini-Circuits
  • Mac使用【访达】的【显示】设置显示完整路径。
  • 2025高性能隔热条品牌权威推荐榜:麓特丹领跑行业技术革新
  • 2025年V型螺旋输送机订制厂家权威推荐榜单:V型螺旋输送机/U型螺旋输送机/Z型斗式提升机源头厂家精选
  • 不是单点突破,而是立体重构:湖南天硕打造的国产高可靠存储生态
  • MATLAB实现SAR图像滤波
  • 2025上海申请留学哪个机构好
  • 2025上海留学中介机构排名前十名
  • 湖南滑雪去哪里?七星岭国际滑雪场:2小时直达,南方人专属冰雪秘境
  • “iptables-legacy” 和 “iptables-nft”
  • MySQL的查询操作语法要点
  • 微信小程序用户通过地址选择当前位置信息
  • 10-WKT数据格式处理
  • 【读书学习记录】【设计模式】依赖倒置原则
  • 2025年高端央国企工作服订制厂权威推荐榜单:高端工衣订制/高端工装订制/高端夏季工作服源头厂家精选
  • 2025年下半年消防检测/房屋结构/承载力/房屋鉴定公司前五推荐
  • navicat 17 安装破解教程【2025 最新版激活补丁 + 详细安装步骤​】
  • 杭州左工防潮:专为别墅打造的结构性防水防潮系统解决方案
  • MATLAB实现多分布拉丁超立方采样实用程序
  • 2025年AI排名搜索优化GEO公司推荐:惠州惠算GEO科技优势多