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

CF1152F2 Neko Rules the Catniverse (Large Version) 题解

\(\text{CF1152F2 Neko Rules the Catniverse (Large Version) 题解}\)

这个题有点意思啊。

我们大胆猜想这个题的 dp 是从每个星球一个一个线性转移的。得到这个结论有两种方式:

法一:发现按照 Neko 飞行的轨迹直接 dp 是比较扯淡的,我们难以考虑无限制的走回头路的情况,无法记录前面的状态,而线性转移不需要考虑走回头路的情形。

法二:考虑 F1 和 F2 的唯一差别是 \(n\le 10^5\)\(n\le 10^9\),而回到原比赛,从 CF 的分数设置上来看 F2 只有低贱的 750 分,换句话说两个题之间没有什么不可逾越的鸿沟,大概率是一些小小优化,那傻子也能排除到只有一种情形:从 \(O(n)\) 的线性 dp 优化到 \(O(\log n)\) 的矩阵乘法优化 dp。

好了各位扯淡环节结束。要线性转移换句话说就是考虑当前这个位置插入在移动序列的哪个位置。那这个题其实就变得 naive 了:考虑到 \(i\) 位置前一个位置是哪个位置,显然只会有 \(O(m)\) 个位置,那么状压一下前 \(m\) 个位置是否走过即可,转移就考虑这个位置走还是不走,系数就是一个 \(\text{popc(S)}+1\) 的形式,\(+1\) 是要考虑 \(i\) 点做起点的情形,然后其实就做完了。

代码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 225, mod = 1e9 + 7;
void add(int &x, int y) {x = x + y >= mod ? x + y - mod : x + y;
}
int n, k, m;
struct Mar {int a[N][N];Mar() {memset(a, 0, sizeof a);}Mar operator * (const Mar &x) const {Mar res;for (int i = 0; i < N; i++)for (int k = 0; k < N; k++)if (a[i][k])for (int j = 0; j < N; j++)add(res.a[i][j], a[i][k] * x.a[k][j] % mod);return res;}
} bas;
Mar qpow(Mar x, int y) {Mar ans;for (int i = 0; i < N; i++) ans.a[i][i] = 1;while (y) {if (y & 1) ans = ans * x;x = x * x;y >>= 1;}return ans;
}
int gwt(int x, int y) {return x * (1 << m) + y;
}signed main() {ios::sync_with_stdio(0);cin.tie(0);cin >> n >> k >> m;for (int j = 0; j <= k; j++)for (int s = 0; s < (1 << m); s++) {int t = __builtin_popcount(s) + 1, p = (1 << m) - 1;if (j < k) add(bas.a[gwt(j, s)][gwt(j + 1, ((s << 1) | 1) & p)], t);add(bas.a[gwt(j, s)][gwt(j, (s << 1) & p)], 1);}Mar fir;fir.a[0][gwt(0, 0)] = 1;fir = fir * qpow(bas, n);int ans = 0;for (int s = 0; s < (1 << m); s++) add(ans, fir.a[0][gwt(k, s)]);cout << ans << '\n';return 0;
}
http://www.hskmm.com/?act=detail&tid=39636

相关文章:

  • Audacity:开源音频编辑器的完整指南
  • 123456789
  • 【CI130x】音频传输的数据结构——FreeRTOS的消息队列
  • 量子力学作业3
  • #20232408 2025-2026-1 《网络系统与攻防技术》实验三实验报告 - 20232408
  • C_结构体学习_1
  • 嵌入式音频开发很好的博主
  • 实验3 C语言函数应用编程
  • 人工智能之编程基础 Python 入门:第一章 Python 的简介和安装
  • P5405 [CTS2019] 氪金手游 题解
  • 杂记选做 #1
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025.10.26 闲话-单位根反演
  • 题解:B4205 [常州市赛 2021] 特殊字符
  • 郭念海 - coder
  • 数据采集与融合技术实践第一次作业
  • ECC 学习笔记
  • 转化漏斗(随笔)
  • Halcon算法——区域生长
  • Windows11文件夹右键-删除多余选项-加快打开速度
  • 20231326《密码系统设计》第五周预习报告
  • 2025年实木家具厂家权威推荐榜:原木/全实木/北美黑胡桃/樱桃木/榫卯工艺/高端定制/全屋整装,烘干/白胚/木蜡油保养工艺深度解析
  • 2025年摘星搜荐怎么样:全面评测摘星AI的功能与优势
  • 实验 2
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术研发实力与市场口碑深度解读
  • 【安卓】
  • 2025年TPU厂家权威推荐榜单:TPU加纤,TPU改性生产,专业定制与技术创新实力解析
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术核心实力与市场口碑深度解读
  • 【万元奖金】第二届CCF算法能力大赛开始啦!名校云集、名企汇聚,免费参赛!
  • 切空间、切丛与收缩算子