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