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

知识考量码【蓝桥】

这里 

  • 最大值不一定为k
  • 每个1可以选择在n种的任意一个时刻由0变1
  • 含有x个1的数有多个 
//
// Created by yumo_
//
#include<bits/stdc++.h>

using namespace std;
#define scin std::cin
#define scout std::cout
using i64=long long;
const int INF=INT_MAX/2;
const i64 INFF=LLONG_MAX/2;
const i64 md=1e9+7;
const int M=1e5+7;

struct xxx {
    i64 a,b,c;
    bool operator<(const xxx &other) const {
        if (other.c==c)return other.a<a;
        else  return other.c<c;//由大到小
    }
};
int main() {

    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int T;
    // scin>>T;
    T=1;
    for (;T>0;--T) {
        auto pow=[&](i64 a,i64 b,i64 Md) {
            i64 res=1;
            while (b>0) {
                if (b&1) res=res*a%Md;
                a=a*a%Md;
                b>>=1;
            }
            return res;
        };
        i64 n,k;scin>>n>>k;
        //最大值不一定为k
        //每个1可以选择在n种的任意一个时刻由0变1
        //含有x个1的数有多个
        std::vector<std::vector<i64>> Cal(32,std::vector<i64>(32,0));
        auto Comb=[&](auto self,i64 n,i64 m) {
            if (m==0||m==n)return 1ll;
            if (Cal[n][m]!=0)return Cal[n][m];
            return Cal[n][m]=(self(self,n-1,m)+self(self,n-1,m-1))%md;
        };
        int len=0;
        std::vector<i64> cnt(32,0);
        for (int i=30;i>=0;--i) {//倒着可以两头堵
            if ((k>>i)&1) {
                //前i+1保持不变
                for (int j=0;j<=i;++j) {//二进制i位实际上是i+1个位置,100->011
                    cnt[len+j]=(cnt[len+j]+Comb(Comb,i,j))%md;
                }
                len++;
            }
        }
        cnt[len]=(cnt[len]+1)%md;//单独k
        i64 ans=1;//0
        for (int i=1;i<31;++i) {
            ans=(ans+cnt[i]*pow(n,i,md)%md)%md;
        }
        scout<<ans<<"\n";

    }

    // auto pow=[&](i64 a,i64 b,i64 Md) {
    //     i64 res=1;
    //     while (b>0) {
    //         if (b&1) res=res*a%Md;
    //         a=a*a%Md;
    //         b>>=1;
    //     }
    //     return res;
    // };
// 18 22 24
    return 0;
}

http://www.dtcms.com/a/111919.html

相关文章:

  • leetcode-代码随想录-链表-翻转链表
  • 框架PasteForm实际开发案例,换个口味显示数据,支持echarts,只需要标记几个特性即可在管理端显示(2)
  • Python办公自动化(2)对wordpdf的操作
  • 青少年编程与数学 02-015 大学数学知识点 04课题、微积分
  • 如何判断多个点组成的3维面不是平的,如果不是平的,如何拆分成多个平面
  • 二叉树 递归
  • Linux操作系统 4.Linux实用操作
  • 《新疆建筑安全员C证》考试信息
  • ttkbootstrap 实现日期选择器, 开始和结束时间
  • OrangePi5Plus开发板不能正确识别USB 3.0 设备 (绿联HUB和Camera)
  • Flutter性能优化细节
  • 分子生成的深层次层次变分自编码器 - DrugHIVE 测评
  • Jetpack Compose CompositionLocal 深入解析:局部参数透传实践
  • Linux信号处理解析:从入门到实战
  • 星途(3)
  • C/C++的条件编译
  • 【Tauri2】014——简单使用listen和emit
  • DuckDB系列教程:如何分析Parquet文件
  • Linux中的调试器gdb与冯·诺伊曼体系
  • 使用MCP方案与Claude实现虚幻引擎自动化游戏开发
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • 【LLM】使用MySQL MCP Server让大模型轻松操作本地数据库
  • JSON-lib考古现场:在2025年打开赛博古董店的奇妙冒险
  • 如何分析 jstat 统计来定位 GC?
  • Navicat17详细安装教程(附最新版本安装包和补丁)2025最详细图文教程安装手册
  • 运算放大器(五)电压比较器
  • WSL使用经验
  • 从代码学习深度学习 - GRU PyTorch版
  • 基于大模型与动态接口调用的智能系统(知识库实现)
  • 动态规划似包非包系列一>组合总和IIV