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

牛客小白月赛118

C-绿_牛客小白月赛118

明确:一个大小为n的序列,子序列和为:

本题中,恰好只需要计算这个值,-1因为这包括了空序列

如何快速计算2^ L 呢?

想到快速幂算法:
base是基数,这里是2,exponent是轮数,

long long fast_pow(long long base, long long exponent, long long mod) {long long res = 1;base %= mod;  // 防止base过大while (exponent) {// 如果当前指数为奇数,乘以当前底数if (exponent & 1) {res = (res * base) % mod;}// 底数平方base = (base * base) % mod;// 指数右移一位exponent /= 2;  // 或 exponent >>= 1;}return res;
}

再进一步如何快速化简呢?

求2^e%(p-1) , 再%p是我们的目标

所以,来看代码
 

#include <iostream>
#include <string>
#include <vector>
using namespace std;const long long MOD = 1000000007;
const long long mod_phi = MOD - 1;  // φ(MOD) for MOD primelong long fast_pow(long long base, long long exponent, long long mod) {long long res = 1;base %= mod;while (exponent) {if (exponent & 1) {res = (res * base) % mod;}base = (base * base) % mod;exponent /= 2;}return res;
}int main() {ios_base::sync_with_stdio(false);cin.tie(nullptr);int T;cin >> T;while (T--) {long long n;cin >> n;string s;cin >> s;long long len = s.size();long long n1 = n % mod_phi;long long exponent_mod = (n1 * len) % mod_phi;long long power = fast_pow(2, exponent_mod, MOD);long long ans = (power - 1) % MOD;if (ans < 0) {ans += MOD;}cout << ans << '\n';}return 0;
}

相关文章:

  • DMC-E 系列总线控制卡----雷赛板卡介绍(六)
  • XPath 注入与修复
  • 前端面经整理【2】
  • 12V,24V降5V,12V,输出大电流15A电源解决方案的理想选择WD5030A
  • 《单光子成像》第三章 预习2025.6.13
  • 二叉树的算法
  • Python 基础语法
  • 题目类型——左右逢源
  • 41.第二阶段x64游戏实战-封包-分析周围对象ID
  • 【Steel Code】8.4 PLATE GIRDER 钢板梁
  • RT_Thread内核源码分析(五)——内存管理@小堆内存管理算法
  • 自动化基础随心记三-zabbix
  • 麒麟信安支撑2025年电力监控系统安全运维新技能推广应用示范培训班顺利举办
  • libcuckoo 介绍和使用指南
  • 高通IPA硬件加速介绍
  • 【MV】上下文感知选择算法:基于关键词映射简单实现
  • 面试官:介绍一下测试中常用的工具有哪些?
  • ACCU-100安科瑞协调控制器:精准调控光伏逆变器
  • 暴雨亮相EAC2025分享热管理液冷技术
  • Matlab的GUI编程之一
  • 网站建设模板源代码/拓客软件哪个好用
  • 凡度网络北京网站建设公司/应用商店搜索优化
  • 对单位网站建设的建议/百度新闻下载安装
  • 网站建设需要什么教材/站长工具高清吗
  • 电脑网站和手机网站怎么做相同路径/百度关键词推广
  • 长春网站建设开发维护/网络营销的收获与体会