CF1152F2 Neko Rules the Catniverse (Large Version) 题解

news/2025/10/26 21:38:03/文章来源:https://www.cnblogs.com/Rock-N-Roll/p/19167445

\(\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.mzph.cn/news/947075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Audacity:开源音频编辑器的完整指南

Audacity是一款功能强大的开源音频编辑器和录音软件,支持多轨编辑、多种音频格式导入导出、实时效果处理等专业功能,适用于Windows、macOS和Linux等操作系统。Audacity:开源音频编辑器的完整指南 项目概述 Audacity…

【CI130x】音频传输的数据结构——FreeRTOS的消息队列

一句话概括 xQueueCreate 是 FreeRTOS 实时操作系统中用于动态创建消息队列的函数。它负责分配内存并返回一个可以用于发送和接收数据的队列句柄。详细解释 1. 什么是消息队列? 在深入函数本身之前,理解“队列”的概…

123456789

看到题目条件找一下性质然后将其转化掉。 任何东西都只是方向,不一定是正解。 如果感觉他答案不大并要求输出类似最小步数的时候可以猜一下答案上界。 可以从最特殊的东西入手。 可以适当找一下必要条件或充分条件。 …

#20232408 2025-2026-1 《网络系统与攻防技术》实验三实验报告 - 20232408

北京电子科技学院(BESTI) 实 验 报 告课程名称: 网络与系统攻防技术实验序号: 实验三实验名称: 免杀原理与实践学 号: 20232408姓 名: 李易骋指导老师: 王志强必修/选修: 必修实验日期: 20…

C_结构体学习_1

这里记录一下怎么为结构体成员变量实现内存连续且为动态 #include <iostream> #include <conio.h> #include <stdlib.h> #include <string.h> #include <stdio.h> using namespace std;…

嵌入式音频开发很好的博主

1。 https://xintiaobao.blog.csdn.net/ CSDN 博主:心跳包2。 https://segmentfault.com/u/junyidedalianmao/articles 21ic 博主:启英AI平台

人工智能之编程基础 Python 入门:第一章 Python 的简介和安装

人工智能之编程基础 Python 入门:第一章 Python 的简介和安装人工智能之编程基础 Python 入门 第一章 Python 的简介和安装前言 当前人工智能逐渐成为主流趋势,而python作为主流算法语言之一,也一跃登顶最受欢迎的语…

P5405 [CTS2019] 氪金手游 题解

P5405 [CTS2019] 氪金手游 题解 首先需要发现的是题目给出的条件等价于是限制所有卡形成了一棵树,但树边的方向是不确定的。从其它地方不好入手,不妨先考虑这棵树边全都从父亲指向儿子的情形,换句话说就是根节点要比…

杂记选做 #1

bakas trick 其实就是不带删的尺取。 维护 \(l,mid,r\),开始时从 \(r\) 开始向左扩展 \(l\),记 \(mid=r\),维护 \(p_i\)(\(l\le i\le mid\))是 \([i,mid]\) 的元素的总权值。每次 \(l\) 向右走时如果没超过 \(mid…

20232319 2025-2026-1 《网络与系统攻防技术》实验三实验报告

1.实验内容 1.1实验实践内容 (1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧。 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加壳工具 使用C + shellcode编程 (2)通过…

数据采集与融合技术实践第一次作业

作业1 ## 代码以及相关图片点击查看代码 import requests from bs4 import BeautifulSoup#原本想把第一个页面设为base_url,之后以此为根据跳转其他页面的(获取排名31之后的学校信息),可惜未能做到 base_url = htt…

2025.10.26 闲话-单位根反演

2025.10.26 闲话-单位根反演起因正在和 zxk 探讨 k 叉 bostan-mori。 jijidawang:直接单位根反演。所以就来学习单位根反演了。 Part.1 主体 首先引入这样一个问题: 求: \[\sum_{i=0}^{\lfloor\frac{n}{2}\rfloor}{…

题解:B4205 [常州市赛 2021] 特殊字符

题解:B4205 [常州市赛 2021] 特殊字符 前言 题目传送门 思路分析 因为数据范围较大,所以直接暴力构建字符串不仅仅会超时,还会爆空间,所以我们考虑模拟、跳过构建字符串,直接给出答案 我们对于每个特殊字符,从左…

郭念海 - coder

郭念海(1891年-1931年),男,湖北省麻城市乘马岗人。 生前为乡农协会员,于1928年参加革命活动,1931年在肃反中被杀害,1987年10月1日给予平反昭雪。 恐惧源于无知,代码改变世界

软考五

软考五Posted on 2025-10-26 21:10 心默默言 阅读(0) 评论(0) 收藏 举报1. 计算机网络的分类

ECC 学习笔记

0. 前置知识 给定集合 \(S\) 和运算 \(\circ\),若 \(\circ\) 对 \(S\) 封闭,且有单位元(\(a \circ e = a\))、逆元(\(a \circ a^{-1} = e\))、结合律、交换律,则称 \(S\) 对 \(\circ\) 构成 Abelian 群。一个大…

[TOOL] Node.js: JavaScript运行环境安装

[TOOL] Node.js: JavaScript运行环境安装$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");官方文档:https://nodejs.org/en/docs/ Grok生成(2025年10月26日…

转化漏斗(随笔)

背景介绍 该项目是一个用于广告平台投流的WEB项目,用户路径相对清晰,对于转化漏斗来说是一个很好的入门实战项目。备注:本文中的数据已经经过修改和混淆 数据分析目标 核心指标:新增ROI>1 数据指标拆解 用户的行为…