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

NOIP 模拟赛 9 比赛总结

分数:\(100 + 50 + 0 + 0 = 150\)

神秘计数赛,使我的 rating \(+8\)

T1

这道题很糖,但架不住我更糖。

如果暴力枚举所有子矩形,时间复杂度是 \(O(n^4)\) 的,肯定会 T 飞。

首先,与其直接计算有多少个五彩斑斓的子矩阵,不如去求有多少个“黯淡无光”的子矩阵 —— 也就是四个顶点颜色都相同的子矩阵,然后用总子矩阵数减去黯淡无光的子矩阵数,得到最终答案。

考虑如下情况:

\[\begin{matrix} &1 &1 &\cdots &1 &\cdots &1\\ &&&\vdots&&&\\ &1 &1 &\cdots &1 &\cdots &1\\ \end{matrix} \]

(省略号代指无关数字)

\(1\) 列的两个 \(1\) 可以和第 \(1, 2, 3, 4\) 列的两个 \(1\) 组成黯淡无光的子矩阵;第 \(2\) 列的也可以和第 \(2, 3, 4\) 列的组成……以此类推,假如钦定两行,它们有 \(n\) 列中上下两行的颜色相同,就会产生 \(1 + 2 + \cdots + n = \frac{(1 + n)n}{2}\) 个黯淡无光子矩阵。

综上,我们可以在图中遍历两行,然后对这两行的元素从左到右扫描,如果碰到两行颜色相同,就计算答案(既可以边扫描边计算,也可以扫描一行后再根据公式计算,以下代码用的是前者)。扫描完一行不要忘记清空计数器。

总时间复杂度 \(O(n^3)\)

#include <bits/stdc++.h>
#define int long long
const int N = 410;
int n, m, a[N][N], ans, cnt[N * N];signed main() {freopen("colorful.in", "r", stdin);freopen("colorful.out", "w", stdout);std::ios::sync_with_stdio(false); std::cin.tie(0);std::cin >> n >> m;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {std::cin >> a[i][j];ans += i * j;}}for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) {for (int k = 1; k <= m; k++) {if (a[i][k] == a[j][k]) {cnt[a[i][k]]++;ans -= cnt[a[i][k]];}}for (int k = 1; k <= m; k++) {if (a[i][k] == a[j][k]) {cnt[a[i][k]] = 0;}}}}std::cout << ans << '\n';return 0;
}

T2

致敬传奇比 T1 简单的 T2。

首先很容易看出输入数据中的 \(x\) 是没有任何用的,因为相同城市的拥堵时段没有重叠的部分。

另外,如果这道题的数据范围为 \(0 \le S \le T \le 10^6\),就变成彻头彻尾的唐题了,只需要简单地差分一下即可。因此,本题的关键就在于离散化。离散之后按照正常方法进行差分,最后统计答案时,要乘方上每个离散化后的时间段所代表的天数。

当然,如果这么说,这道题看起来还是不难。但我觉得本题难在一些细节,它们使我在场上抓狂:

  1. 不要只将拥堵时段的首尾加入离散数组,也要将 \(S\)\(T\) 加入。
  2. \(r\) 加入离散数组时要 \(+1\)。不要问我怎么知道的,自己画画图就懂了。
  3. 进行差分时不要像往常一样 diff[infos[i].r+1]++,而要 diff[infos[i].r]++。也可以通过画图理解。

总时间复杂度 \(m \log m\)

#include <bits/stdc++.h>
#define int long long
const int N = 2e6+10, MOD = 1e9+7;
struct Info {int x, l, r;
} infos[(int)1e6+10];
int n, m, s, t;
int a[N], dayCnt[N], diff[N], ans = 1;
std::vector<int> mp;inline int qpow(int a, int b) {int res = 1;while (b) {if (b & 1) res = res * a % MOD;a = a * a % MOD;b >>= 1;}return res % MOD;
}signed main() {freopen("ex_travel3.in", "r", stdin);freopen("travel3.out", "w", stdout);std::ios::sync_with_stdio(false); std::cin.tie(0);std::cin >> n >> m >> s >> t;mp.push_back(-1);for (int i = 1; i <= m; i++) {std::cin >> infos[i].x >> infos[i].l >> infos[i].r;infos[i].l = infos[i].l - s + 1;infos[i].r = infos[i].r - s + 1;infos[i].r++;mp.push_back(infos[i].l), mp.push_back(infos[i].r);}mp.push_back(t - s + 2);mp.push_back(1);std::sort(mp.begin() + 1, mp.end());auto it = std::unique(mp.begin(), mp.end());mp.erase(it, mp.end());for (int i = 1; i < mp.size() - 1; i++) {dayCnt[i] = mp[i + 1] - mp[i];}for (int i = 1; i <= m; i++) {infos[i].l = std::lower_bound(mp.begin(), mp.end(), infos[i].l) - mp.begin();infos[i].r = std::lower_bound(mp.begin(), mp.end(), infos[i].r) - mp.begin();}int day = std::lower_bound(mp.begin(), mp.end(), t-s+2) - mp.begin();diff[1] = n;for (int i = 1; i <= m; i++) {diff[infos[i].l]--;diff[infos[i].r]++;}for (int i = 1; i <= day- 1; i++) {diff[i] += diff[i-1];if (diff[i] < 0) diff[i] = 0;}for (int i = 1; i <= day - 1; i++) {ans *= qpow(diff[i], dayCnt[i]);ans %= MOD;}std::cout << ans % MOD << '\n';return 0;
}
http://www.gsyq.cn/news/60369.html

相关文章:

  • 2025 最新信息平台推荐!工程项目、招投标、招采、政府采购信息查询平台口碑榜,覆盖拟在建项目精准对接服务
  • 规范驱动开发:AWS Kiro如何重塑AI编程新范式
  • 2025 最新兽药厂家权威推荐榜:技术专利 + 服务能力双维度测评,优质企业全解析
  • 【隐语Secretflow】轻量级隐私计算任务编排框架Kuscia架构解析
  • 2025年行业内复购率高的真空包装袋批发厂家口碑推荐榜,真空包装袋推荐排行榜单精选综合实力TOP企业
  • MWD脉冲器电路关键技术与挑战
  • tignerVNC
  • 深入解析:英集芯 IP5326 集成Type-C协议的2.4A充放电移动电源SOC
  • 视频汇聚平台EasyCVR打造阳光药房远程可视化智慧监管体系
  • 2025年北京回收二手红木家具公司权威推荐榜单:回收红木家具高价/回收阔叶黄檀家具/回收缅甸花梨家具源头公司精选
  • 2025澳大利亚研究生留学中介哪个好
  • 2025年湖北阴囊湿疹怎么治疗护理权威推荐榜单:湖北附睾结核怎么治疗/湖北脓尿怎么治疗/湖北肾盂肾炎怎么治疗综合医院特色门诊精选
  • 大象《Thinking in Projects》读书笔记3
  • PDF超级助手软件下载安装教程_免费PDF编辑工具使用指南
  • python-IPO模型
  • 2025厦门十大正规留学机构有哪些
  • windows下 自动检测网络状态,并重连至指定wifi的脚本
  • map---显示地区地图
  • 2025年武汉优质的华新水泥生产厂家推荐榜单,华新水泥有哪些鑫俊熙层层把关品质优
  • 计算机视觉:pyqt5+yoloV5目标检测平台 python实战 torch 目标识别 大数据项目 目标跟踪(建议收藏)✅ - 指南
  • 2025年北京阅卷考试软件公司权威推荐榜单:自动阅卷软件/网上阅卷的软件/答题卡扫描源头公司精选
  • 背包的第 $k$ 优解
  • 2025深圳香港留学中介机构有哪些
  • 好用的库存管理系统盘点:橙子库存通——简洁实用、功能齐全,出入库管理更省心
  • 数据库风险监测系统:打造可审查、可调整、可溯源的教育数据库安全底座
  • 详细介绍:云计算概念及虚拟化
  • 使用Logstash实现PostgreSQL到Elasticsearch的数据摄取
  • 2025年封闭母线槽优质厂家权威推荐榜单:耐火母线槽/防水母线槽/空气型母线槽源头厂家精选
  • 2025年数据分类分级产品选型排名与深度解析:可视化、自适应、一键部署成关键能力
  • 官网发布|智感未来-聚链共生-2026中国激光雷达大会暨展览会/火热招展中!!!