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

CF1815D

诈骗。

核心:万能的性质:异或是不进位加法

考虑 \(m>2\),对于和 \(n\) 同奇偶的 \(x\) 我们直接构造 \(\left\{x, \cfrac{n-x}{2}, \cfrac{n-x}{2}, 0, \cdots \right\}\),对于不同奇偶我们发现这么多东西加起来,进位一定从第二位开始进,所以所有的进位都是偶数。因此不可能同奇偶。

对于 \(m = 1\),只能等于 \(n\)

对于 \(m = 2\),我们考虑数位 DP 构造,从低位到高位,\(f_{i,0/1}\) 表示当前到了第 \(i\) 位,这一位有没有进位,异或之和,\(g_{i,0/1}\) 表示异或的个数。

直接转移即可。

Mint f[65][2], g[65][2], pw[65];void work() {cin >> n >> m;if (m > 2) {__int128 p = n;cout << (int)(((p + (p & 1)) * (p / 2 + 1) / 2) % MOD) << endl;} else if (m == 1) {cout << n % MOD << endl;} else {memset(f, 0, sizeof f);if (ck(n, 0)) {f[0][0] = 1;g[0][0] = 1;f[0][1] = 0;g[0][1] = 0;} else {f[0][0] = 0;g[0][0] = 1;f[0][1] = 0;g[0][1] = 1;}rep (i, 1, 60) {if (ck(n, i)) {f[i][0] = (pw[i] * g[i - 1][0] + f[i - 1][0]) + f[i - 1][1];f[i][1] = f[i - 1][1];g[i][0] = g[i - 1][1] + g[i - 1][0];g[i][1] = g[i - 1][1];} else {f[i][0] = f[i - 1][0];f[i][1] = f[i - 1][0] + f[i - 1][1] + pw[i] * g[i - 1][1];g[i][0] = g[i - 1][0];g[i][1] = g[i - 1][0] + g[i - 1][1];}}cout << f[60][0] << endl;}
}
http://www.jsqmd.com/news/31527/

相关文章:

  • 南京大学/NJU 人工智能/AI 计算机系统基础/ICS 编程作业/PA 记录
  • 直播带货话术不会写?这个AI指令帮你搞定
  • Java数组——数组的使用
  • NOIP2025加训
  • 20232427 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • Windows 系统下通过 VMware 17 安装 macOS 的教程
  • 【Redis】实操:cluster集群部署
  • 2025.11.4 - A
  • 移动通信基站
  • kaggle提交 名字不是submission.csv的提交方法
  • 实用指南:【Nest】登录鉴权
  • 程序员修炼之道:从小工到专家-2
  • 设计模式--外观模式:简化繁琐环境的统一接口
  • 从零实现3D Gaussian Splatting:完整渲染流程的PyTorch代码详解
  • NOIP2025模拟1
  • 文生视频时代,RustFS如何成为AI资产库的最佳底座?
  • HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
  • NOIP2025 游记
  • 用 CodeBuddy CLI + Prompt,从零到可运行:前后端混合管理强大的系统的高效实战
  • P16.土堆说卷积(可选看)
  • 25.11.4联考题解
  • d11.4t4 answer
  • 详细介绍:当AI化身数据炼金术士:初级Python开发者如何将创意炼成黄金代码?—— 老码农的炼金术指南
  • 【学习笔记】kafka权威指南——第3章 kafka生产者—向kafka写入资料
  • P15.神经网路的基本骨架——nn.Module的使用
  • function
  • AGC052做题记录
  • 软工团队第一次作业
  • Windows11-GPT
  • 1. markdown转word 第一步: markdown转html