题解:qoj7979 棋盘

news/2025/10/10 17:26:41/文章来源:https://www.cnblogs.com/LUlululu1616/p/19133505

为数不多自己能乱搞出来的构造题。

题意:现有一个平面,在 \((1,1)\) 处有一个棋子。棋盘上有若干处被标记,\((1,1)\) 处必须被标记,记 \(f_{i,j}\) 为棋子到达 \((i,j)\) 且只能经过被标记的点的方案数。

现在要求你给出一种标记方式,同时给出 \(Q\) 次询问,每次询问从你标记的点中选若干个出来,满足这些点的 \(f\) 之和等于询问的 \(x\)

范围:标记的点数 \(X\le 960\),选出的点数 \(Y\le240\),询问次数 \(Q\le 10^4\),询问的 \(x \le 10^{100}\)

做法:

首先手玩几下,可以很容易先搓出来一个二进制的构造:

这样我们可以以 \(3\) 的代价使我的数乘 \(2\),可以做到 \(X=3\log_2{10^{100}} \approx 996\),但是这时候 \(Y = \log_{2}{10^{100}} \approx 332\)。可以过前三个 sub。

然后既然有二进制那么就有三进制等等,但是尝试之后发现 \(Y\) 都比较大压不进去,所以我们考虑其他东西,比如斐波那契数。

两个两个这样交错构造。

因为 \(f_n\)\(O(\phi^n)\) 级别的,这里 \(\phi = \frac{1+\sqrt 5}{2}\),所以我们可以做到 \(X=2\log_{\phi}10^{100} < 960\),然后因为每个数都有唯一的斐波那契分解,且相邻两个都不会同时取,所以 \(Y<480\)。按上述构造即可。

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1005;
struct Big_int {vector<int> a;Big_int() {}Big_int(int x) {while(x) {a.push_back(x % 10);x /= 10;}}Big_int(string s) {reverse(s.begin(), s.end());for (int i = 0; i < s.size(); i++)a.push_back(s[i] - '0');}void resize(int N) {a.resize(N);}void pop_back() {a.pop_back();}void push_back(int x) {a.push_back(x);}int& operator[](int x) {return a[x];}int size() {return a.size();}friend Big_int operator+(Big_int x, Big_int y) {int d = max(x.size(), y.size());x.resize(d), y.resize(d);for (int i = 0; i < d; i++)x[i] = x[i] + y[i];for (int i = 0; i < d - 1; i++)x[i + 1] += x[i] / 10, x[i] %= 10;while(x[d - 1] >= 10) {x.push_back(x[d - 1] / 10);x[d - 1] %= 10, d++;}return x;}friend Big_int operator-(Big_int x, Big_int y) {int d = max(x.size(), y.size());x.resize(d), y.resize(d);for (int i = 0; i < d; i++) {if(x[i] < y[i])x[i] += 10, x[i + 1] -= 1;x[i] -= y[i];}while(x.size() && x[x.size() - 1] == 0)x.pop_back();return x;}friend bool operator<=(Big_int x, Big_int y) {if(x.size() != y.size())return x.size() < y.size();for (int i = x.size() - 1; i >= 0; i--)if(x[i] != y[i])return x[i] < y[i];return 1;}void print() {for (int i = a.size() - 1; i >= 0; i--)cout << a[i];cout << endl;}
} f[maxn];
int k, q, x, y;
struct node {int x, y;
} ;
int id[maxn];
int vis[maxn];
int main() {cin >> k >> q >> x >> y;f[1] = 1, f[2] = 1; for (int i = 3; i <= 480; i++)f[i] = f[i - 1] + f[i - 2];vector<node> v;for (int i = 1; i <= 480; i++) {if(i % 2)v.push_back(node{i / 2 + 1, i / 2 + 1}), v.push_back(node{i / 2 + 1, i / 2 + 2}), id[i] = v.size() - 1;elsev.push_back(node{i / 2 + 1, i / 2}), v.push_back(node{i / 2 + 2, i / 2}), id[i] = v.size() - 1;}cout << v.size() << endl;for (int i = 0; i < v.size(); i++)cout << v[i].x << " " << v[i].y << endl;while(q--) {string s;cin >> s;Big_int x(s);memset(vis, 0, sizeof(vis));for (int i = 480; i >= 1; i--) {if(f[i] <= x)x = x - f[i], vis[id[i]] = 1;}x = Big_int(0);for (int i = 1; i <= 960; i++) {cout << vis[i];if(vis[i])x = x + f[(i + 1) / 2];}cout << endl;//	x.print();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934273.shtml

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

相关文章

2025 最新不锈钢管厂家推荐排行榜 权威发布:304/316L/2205 等材质焊管无缝管优质企业精选

不锈钢管作为石油、医药、航天等关键领域的 “工业血管”,其品质直接关系到工程安全与产业效率。当前市场中,产品质量两极分化问题突出,部分管材存在耐腐蚀性不足、精度偏差大等隐患,而新兴品牌的快速崛起又让选购…

(JDK,Eclipse,Tomcat版本)Java的web配备Part1 (#by 拌面

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年最新推荐微波干燥设备生产厂家排行榜,覆盖多行业高效干燥解决方案权威推荐黄粉虫/黑水虻/中药材/茶叶微波干燥设备厂家推荐

当前,微波干燥设备凭借高效、节能、环保的核心优势,已深度融入食品加工、中药材处理、化工制造、农产品加工等多个关键行业,成为企业提升生产效率、保障产品品质的重要装备。但随着市场需求激增,大量厂家涌入导致行…

2025 年高强钢板厂家最新推荐排行榜:聚焦国内优质企业,助力采购者精准选品的权威榜单合金/HG785D/Q690D/S960QL/700L高强钢板厂家推荐

当前,高强钢板在矿山、冶金、电力、汽车制造等多个关键行业的应用愈发广泛,其质量与性能直接关系到设备的运行效率、使用寿命及生产安全。随着下游行业对高强钢板的耐磨、耐蚀、高强度等性能要求不断提高,市场需求持…

(数论大杂烩)古代猪文

HZOJ 洛谷 写在前面 挺久没写过单独的题解了,然后遇到这道做法挺神奇的题,就是那种让人眼前一亮的方法,遂打算写写。 题意 给出两个数\(n, g\),求问 \[g^{\sum_{x|n}~\binom{n}{x}}~mod~P~~(P=999911659) \]的值。…

滥用ACL权限覆盖其他用户S3存储桶中的文件/视频

本文详细介绍了如何通过滥用AWS S3存储桶的ACL权限配置漏洞,实现覆盖其他用户上传的文件和视频。文章包含完整的HTTP请求示例和攻击步骤,展示了从策略生成到文件覆盖的完整攻击链。滥用ACL权限覆盖其他用户上传的文件…

2025 年最新三维扫描仪厂家权威排行榜:聚焦高精度与多场景适配,为企业与个人用户精选优质品牌推荐高精度/专业/手持激光/工业/便携式三维扫描仪厂家推荐

随着 3D 数字化技术在文博、医疗、工业、建筑等领域的深度渗透,三维扫描仪已成为实现高精度数据采集的核心设备。但当前市场中,厂家数量繁杂且产品质量差距悬殊,部分产品存在精度不足、稳定性差、适配场景有限等问题…

后端基础-输入/输出件

Innovus: 输入件:1. Gate level netlist (.v) 2. SDC (.sdc) 3.Logical libraries (.lib) 4. Technology file (.tlef/.tf) 5.Physical libraries (.lef) 6. RC Coefficient file (.qrc/.captable) 输出件:1. lef 2…

2025 年净化工程服务商最新权威推荐排行榜:医院净化工程 / 制药厂 / 化工厂 / 实验室 / 无尘车间优选净化工程设计安装施工公司

2025 年,医疗、制药、电子等领域对洁净环境的标准持续升级,净化工程成为保障安全合规与产品质量的核心环节。但市场中服务商资质参差不齐,部分企业因技术滞后无法满足个性化需求,或用劣质材料导致净化效果不达标,…

“100 W、18 GHz 一口通吃——HL-SMAMF-100-18-20 衰减器小砖块实测记”

“100 W、18 GHz 一口通吃——HL-SMAMF-100-18-20 衰减器小砖块实测记”HL-SMAMF-100-18-20 这块看起来毫不起眼的“小砖块”,却是我最近半年功率实验里最顺手的一件工具。第一次把它拿在手里,黄铜镀镍外壳加黑色氧化…

2025 年最新推荐!国内优质充电桩厂家排行榜,涵盖多场景适配产品,助用户精准选靠谱品牌智能/新能源/电动车/重卡/电动车直流充电桩厂家推荐

当前新能源汽车保有量持续攀升,充电桩作为关键配套设施,市场需求日益旺盛,但行业乱象却让用户选购困难重重。部分产品充电效率低下,难以满足快速补能需求;安全防护缺失,在恶劣环境下易引发安全事故;兼容性差,无…

实用指南:【图像算法 - 28】基于YOLO与PyQt5的多路智能目标检测系统设计与实现

实用指南:【图像算法 - 28】基于YOLO与PyQt5的多路智能目标检测系统设计与实现pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-f…

KingView 组态王 6.5下载地址与安装教程

软件介绍 KingView组态王6.5是由北京亚控科技开发的一款工业自动化监控系统软件,专为Windows 2000/NT 4.0(补丁6)/XP简体中文版用户设计。该软件以全面的网络概念为基础,采用多线程技术和COM组件,实现了高效实时的…

常用接口对比

核心概述 外设接口是MCU/处理器与外部设备(传感器、存储器、显示器等)进行通信的桥梁。根据数据传输方式,可分为串行和并行两大类。如今,串行接口因其引脚少、布线简单、成本低而成为绝对主流。常用外设接口详解与…

工具网站网址

1. TTS 简体中文 文字转语音软件 |音独 https://ondoku3.com/zh-hans/

基于传递矩阵法计算多层结构声表面波声速 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

linux执行脚本命令报错$\r:未找到命令的解决方法

linux执行脚本命令报错$\r:未找到命令的解决方法 sed -i s/\r$// test.sh

2025 电缆回收推荐榜:广州龙耀 5 星领跑,这些企业适配绿色循环需求

随着工业更新与建筑迭代加速,废旧电缆回收成为资源循环的重要环节。结合资质合规性、回收效率、环保工艺与用户口碑,2025 年华南地区优质电缆回收企业榜单出炉,广州龙耀再生资源回收有限公司以综合实力稳居 5 星推荐…

基于最小二乘法的离散数据曲面拟合MATLAB实现方法

最小二乘法曲面拟合原理 数学基础 对于离散数据点 \((x_i, y_i, z_i)\),我们要找到曲面函数 \(z = f(x,y)\) 的最佳拟合。 多项式曲面模型: \[z = \sum_{i=0}^{m}\sum_{j=0}^{n} a_{ij}x^iy^j \]其中 \(m\) 和 \(n\)…