尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF1152F2 Neko Rules the Catniverse (Large Version) 题解

CF1152F2 Neko Rules the Catniverse (Large Version) 题解
📅 发布时间:2026/6/23 5:47:47

\(\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;
}

相关新闻

  • 20232319 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 数据采集与融合技术实践第一次作业
  • ECC 学习笔记

最新新闻

  • 北京高口碑黄金回收实体老店排行:五家靠谱门店全收录 - 奢侈品回收测评
  • 2026邵阳渗漏维修靠谱机构盘点 全屋防水堵漏正规企业实力排名一览 - 宅安选房屋修缮
  • 东至县黄金回收靠谱店铺实测排行:2026本地门店实测,规避隐形扣费套路及联系方式推荐 - 前途无量YY
  • HTTP接口Content-Type解析原理与生产环境避坑指南
  • 2026上海黄金回收口碑门店公示,基于同城千笔真实交易数据筛选 - 奢侈品回收测评
  • 终极Steam资源下载工具DepotDownloader:3种方法快速部署,轻松备份游戏文件

日新闻

  • Arduino-ESP32项目深度解析:解锁隐藏芯片支持与架构演进
  • 2026年 系统窗厂家/品牌推荐榜单:隔音系统窗+高端系统门窗的核心优势与选购指南 - 品牌发掘
  • NVBench:首个双语非言语发声语音合成评测基准详解与实践

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号