2019 蓝桥杯省赛 A 组模拟赛(一) D. 结果填空:修建公路 (二进制)
题目:
蒜头国有 n 座城市,编号分别为 0,1,2,3,…,n−1。编号为 x 和 y的两座城市之间如果要修高速公路,必须花费 x∣y 个金币,其中|
表示二进制按位或。
吝啬的国王想要花最少的价格修建高速公路,使得所有城市可以通过若干条高速公路互相达到。现在请你求出 n=2019时,一共有多少不同的方案,能让所有城市连通并且造价最低。方案数可能很大,你只需输出对 10^9+7取模的结果。
分析:
若 x<y,则 x|y>=y,即两座城市之间修路的话,最少的花费就是城市编号最高的编号数。
每座城市最少花费可以连接的城市数目是 2^(二进制中的1的个数)-1个。比如:编号二进制位 1001,它所能连接的最少花费的城市是1000,0001,0000。
并且可以知道不会重复连接,因为每座城市最少花费连接的城市是其编号二进制的子集(即比起编号小)的城市。
所以总共的方案数就是每座城市可能连接的最少花费的城市数相乘。
代码:
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const int mmod=1e9+7;
ll powmod(ll x,ll n,ll m){
ll res=1;
while(n){
if(n&1){
res= (x*res)%m;
}
x = (x*x)%m;
n>>=1;
}
return res;
}
int num1(int n){//求n的二进制中1的个数
int cnt=0;
while(n){
n=n&(n-1);
cnt++;
}
return cnt;
}
int main(){
int n=2019;
ll num[2050];
num[0]=2018;
ll res=1;
for(int i=1;i<2019;i++){
//num[i] = powmod(2,num1(i),mmod)-1;
num[i]=(1<<(num1(i)))-1;
res = (res*num[i])%mmod;
}
printf("%d\n",res);
return 0;
}
2019 蓝桥杯省赛 A 组模拟赛(一) D. 结果填空:修建公路 (二进制)相关推荐
- 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会
2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...
- 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)
比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...
- 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门
题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...
- 52-2018 蓝桥杯省赛 B 组模拟赛(一)java
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...
- 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节
python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...
- 2015年第六届蓝桥杯C/C++B组省赛题目解析
1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...
- 计蒜客2019蓝桥杯省赛B组模拟赛(一)题目及解析
蓝桥杯历年真题题目及题解目录汇总 A. 结果填空:钟表 题库链接 分值: 5 一天蒜头君 22:28:45 开始睡觉,06:24:26 醒来之后,蒜头君在想,今天我睡了多久? 请你告诉蒜头君睡了& ...
- 【模拟赛】2019 蓝桥杯省赛 A 组模拟赛(一)
A(填) 阶乘位数 蒜头君对阶乘产生了兴趣,他列出了前 10 个正整数的阶乘以及对应位数的表: 对于蒜头君来说,再往后就很难计算了.他试图寻找阶乘位数的规律,但是失败了.现在请你帮他计算出第一个正整数 ...
最新文章
- 为什么我在gpu上训练模型但是gpu利用率为0且运行速度还是很慢?
- KindEditor ASP.NET 上传/浏览服务器 附源码
- CodeBlocks: 生成的exe文件自定义一个图标
- WatchOS系统开发大全(6)-WKInterfaceLabel
- git 忽略文件 .gitignore 以及规则
- ajax请求flask以后得到的响应查看
- 用 SAP ABAP 编写的俄罗斯游戏
- 数据可视化【十】绘制地图
- 利用new Object创建对象
- Day4 单用户模式、救援模式、克隆虚拟机、linux机器相互登录
- 搭建samba映射网络驱动器
- 《layui宇宙版教程》:分页组件laypage
- halcon 缺陷检测 表面凸点检测
- 关于XAMPP Apache 启动失败的问题
- docker部署mysql出错:mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 13 - Permission denied)
- Windows批处理学习(一)——MS-DOS命令
- 互联网公司那些价值观-阿里巴巴
- HarmonyOS使用ArkUI绘制圣诞树
- html怎么把图片做成抖动效果,css简单实现图片logo抖动摇晃效果
- 每个程序员都该知道的五大定律