蓝桥杯训练之修建公路
注意事项
1.求解的是方案的个数;
2.需要对1e10+7 取模;
3.二进制按位或
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long LL;
const LL mod = 1e9+7;
int main()
{
int n=2019;
LL ans=1;
for(int i=1;i<n;i++) //对每一条公路求解这条公路可能的连接方案
{
LL t=0;
for(int j=0;j<i;j++)//若是比i大 则位或运算的结果一定大于i
{
if((i|j)==i)t++; //一定要括起来,位或运算的级别比==低 若是==i 则算作一种连接方案
} //得出这条公路可能的连接方案
ans = ans*t%mod; //每一条都相乘
}
cout<<ans<<endl;
return 0;
}
代码解析: