逆序对

逆序对

https://ac.nowcoder.com/acm/problem/14731

题意:求所有长度为n的01串中满足如下条件的二元组个数:
设第i位和第j位分别位ai和aj(i<j),则ai=1,aj=0。
答案对1e9+7取模。

思路:从n个位置中选二个位置,左边一个为1,右边一个为0,其余位置随便(2的(n-2)次方),则每一种情况都有一个二元组,由于一次只计算了选中的二个位置,所以无重复。

代码:
#include<bits/stdc++.h>

using namespace std;
#define ll long long
#define inf 1000000007

ll fun(ll n, ll k)
{
n=n%inf;
ll s=1;
while(k)
{
if(k&1)
{
s=sn%inf;
}
n=n
n%inf;
k=k/2;
}
return s;
}

int main()
{
ll n;
scanf("%lld",&n);
ll k=((n%inf)((n-1)%inf)/2)%inf;
ll z=k
fun(2,n-2)%inf;
printf("%lld\n",z);
return 0;
}

全部评论

相关推荐

头像
昨天 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务