问题描述

  • 给你两个数n,k,问可以构造多少n个最大位数为k数按位与为0并且这n个数加起来最大的合法序列,答案对1e9 + 7取模。

思路分析

  • 首先我们考虑这n个数按位与以后为0这个条件:我们可以知道,如果按位与为0的话,就代表着这n个数在每一位至少有一个数在这一位为0。
  • 其次考虑和最大,那么我们就可以这样想,既然每一位都会至少有一个数在这一位上为0,那么肯定是刚好一一对应最好,不然这些数加起来不会是最大。
  • 因此,我们对于每一位,都可以找到n个数来取0,所以答案就是n^k。

代码如下

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod = 1000000007;
ll qpow(ll a, ll b, ll p)
{
ll ans = 1;
while (b)
{
if (b & 1)
ans = ans * a % mod;
a = a * a % mod;
b >>= 1;
}
return ans % mod;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--)
{
ll n, k;
cin >> n >> k;
ll ans = qpow(n, k, mod) % mod;
cout << ans << endl;
}
return 0;
}

最新文章

  1. cocos2d-js 学习笔记 --安装调试(1)
  2. 用 windows GDI 实现软光栅化渲染器--gdi3d(开源)
  3. express-1 从Node开始
  4. Maven的安装、配置及使用入门
  5. AppInventor学习笔记(三)&mdash;&mdash;油漆桶应用学习
  6. Swift学习链接
  7. float闭合(清除浮动)和CSS HACK
  8. IOS中如何判断APP是否安装后首次运行或升级后首次运行
  9. Fast Report Data Filter
  10. 【转】.Net中通过反射技术的应用----插件程序的开发入门
  11. C++的this指针
  12. 实战parse_ini_file()及扩展函数解析ini文件完整版
  13. puppeteer 填充基础表单
  14. Confluence 6 H2 数据库连接与合并整合
  15. GUI:GUI的方式创建/训练/仿真/预测神经网络—Jason niu
  16. jira发送邮件报错
  17. 输入框状态禁止enter键提交表单
  18. LocalStorage和sessionStorage之间的区别
  19. ie8浏览器 图片本身问题导致 无法显示图片--- 诡异现象的排查分享
  20. ArcGIS Server管理工具之批量发布动态地图服务工具.md

热门文章

  1. HTB Hack The Box -- Oopsiec
  2. DH算法图解+数学证明
  3. Linux内核中的Workqueue机制分析
  4. ABP 极简入门教程(一)
  5. 处理器核、Core、处理器、CPU区别&amp;&amp;指令集架构与微架构的区别&amp;&amp;32位与64位指令集架构说明
  6. 【转载】小心 int 乘法溢出!
  7. Java集合:HashMap
  8. Java中int和short的转化
  9. 如何点击穿透Electron不规则窗体的透明区域
  10. PHP中的日期相关函数(一)