当前位置: 首页 > 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.jsqmd.com/news/50503/

相关文章:

  • 2025 最新信息平台推荐!工程项目、招投标、招采、政府采购信息查询平台口碑榜,覆盖拟在建项目精准对接服务
  • 2025年无纸化会议软件批发厂家权威推荐榜单:无纸化会议室/平板无纸化会议系统/无纸化升降器源头厂家精选
  • 构建文明的算法:价值原语化、三值纠缠与五维追问——一种AI元人文的实践框架
  • 规范驱动开发:AWS Kiro如何重塑AI编程新范式
  • 2025 最新兽药厂家权威推荐榜:技术专利 + 服务能力双维度测评,优质企业全解析
  • 2025 最新活性炭源头厂家推荐榜:覆盖全品类高端产品,聚焦 85%+ 吸附率与权威测评优选煤质/军工/电极/食品级/医用级活性炭/超级电容炭公司推荐
  • 备份mysql数据库
  • kafka的ISR机制
  • 2025年11月成都律师事务所推荐榜单:主流机构列表与专业服务解析
  • 2025 最新外包公司平台口碑最新推荐榜:权威测评认证的优质服务商,助力企业高效解决用工难题杭州/金华/衢州/温州/台州/绍兴/湖州外包公司推荐
  • 【隐语Secretflow】轻量级隐私计算任务编排框架Kuscia架构解析
  • 快速了解Linux中的lsmod命令
  • 2025年专业的GEO优化实力厂家找哪家,GEO优化杭州服务商推荐TOP5,覆盖多行业需求
  • iOS 混淆应用链实战 多专业的工具组合搞定 IPA 混淆与加固(iOS混淆|IPA加固|无源码加固|App 防反编译)
  • Windows Server 2022 桌面体验版采用Deployment Center 安装TeamCenter 2506 (上)
  • 完整教程:跨厂商(华为 H3C)防火墙 IPSec 隧道部署
  • 2025 最新废气焚烧炉厂家推荐排行榜:聚焦化工医药农药行业,甄选技术创新与合规适配优质企业化工废气焚烧炉/农药废气焚烧炉/医药废气焚烧炉/RTO 废气焚烧炉公司推荐
  • 2025年行业内复购率高的真空包装袋批发厂家口碑推荐榜,真空包装袋推荐排行榜单精选综合实力TOP企业
  • kafka 的ack机制
  • 窗体关闭事件
  • AcWing 788:逆序对的数量 ← 树状数组 + 离散化(数组 + sort + STL map)
  • AI 数据分析如何保障准确性?Aloudata Agent 构建可信数据基础
  • MWD脉冲器电路关键技术与挑战
  • 2025年广东早恋教育机构权威推荐榜单:素质教育/打架/厌学源头机构精选
  • tignerVNC
  • 麒麟系统V10SP1更新到指定内核方法
  • 深入解析:英集芯 IP5326 集成Type-C协议的2.4A充放电移动电源SOC
  • 视频汇聚平台EasyCVR打造阳光药房远程可视化智慧监管体系
  • 2025厦门口碑好的留学中介有哪些
  • 2025年河北大口径胶管权威推荐榜单:河北大口径抽沙胶管/河北大口径吸沙胶管/河北喷砂吸排法兰胶管源头厂家精选