tj:題解裡公式是錯的

我們可以考慮每一個節點[a,a+2^b-1]對答案的貢獻

則當這個節點是左兒子時,貢獻為2^b

是右兒子時,貢獻為2n−a−2b+12^n-a-2^b+12n−a−2b+1

左兒子的公式為2^(n-2)n(n+1)

右兒子需要通過等比數列化簡。為(2(n−1)+1)∗((n−1)∗2n+1)−2(n−2)∗n∗(n+1)(2^(n-1)+1)*((n-1)*2^n+1)-2^(n-2)*n*(n+1)(2(n−1)+1)∗((n−1)∗2n+1)−2(n−2)∗n∗(n+1)

然後由於每一個節點作為左端點和右端點貢獻相等,所以要乘2

最終答案為((2(n−1)+1)∗((n−1)∗2n+1))/(2(n−1)∗(2n+1))((2^(n-1)+1)*((n-1)*2^n+1))/(2^(n-1)*(2^n+1))((2(n−1)+1)∗((n−1)∗2n+1))/(2(n−1)∗(2n+1))

代碼:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mo 1000000007ll
ll n;
ll qp(ll x,ll y){
	if(!y)return 1;
	if(y==1)return x%mo;
	ll r=qp(x,y/2);
	if(y&1)return r*r%mo*x%mo;
	return r*r%mo;
}
int main(){
	freopen("A.in","r",stdin);
	freopen("A.out","w",stdout);
	scanf("%lld",&n);
	ll ans1=qp(2ll,n-1ll);
	ans1=(ans1+1ll)%mo;
	ll ans2=(n-1ll+mo)%mo;
	ans2=(ans2*qp(2ll,n))%mo;
	ans2=(ans2+1ll)%mo;
	ll ans3=ans1*ans2%mo;
	ll ans4=qp(2ll,n-2ll);
	ans4=ans4*(qp(2ll,n)+1ll)%mo;
	ll ans5=qp(ans4,mo-2ll);
	printf("%lld\n",ans3*ans5%mo);
}

jzoj5928的更多相关文章

随机推荐

  1. Android可以子线程更新UI?

    初了解Android的时候,就知道Android是不能在子线程更新UI的,不然程序会直接抛出异常,告诉你,别给我在自线程搞事情! 但是,这个是针对普通的view做的限制,而TextureView,Su ...

  2. mvc 封装控件使用mvcpager

    具体使用如下: 前台部分: @RenderPage("~/Views/Controls/_Pagebar.cshtml", new PageBar { pageIndex = Mo ...

  3. PAT 1020 月饼 (25)(精简版代码+思路+推荐测试用例)

    1020 月饼 (25)(25 分)提问 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是 ...

  4. SNP/单核苷酸多态性分析

    SNP/单核苷酸多态性分析 SNP(Single Nucleotide Polymorphism),即单核苷酸多态性,是由于单个核苷酸改变而导致的核酸序列多态.一般来说,一个SNP位点只有两种等位基因 ...

  5. spring mvc MultipartFile 上传文件 当文件较小时(10k) ,无法上传成功 。

    <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipartResolver" cla ...

  6. action spring 注入错误,如果检查各项注入都没有错误时,考虑struts 是否配置了namespace(如果你有多个namespace="/")

    [ERROR] 2015-01-04 09:42:35,180 (CommonsLogger.java:38) - Exception occurred during processing reque ...

  7. cmd里面怎么复制粘贴

    不要打开快速编辑模式,他只能复制粘贴cmd里面的内容 其实用标记即可. 右键选择标记,然后框选内容后右键就复制了 然后再右键粘贴就行了.

  8. Python GUI 编程

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  9. 2018.09.28 hdu5435A serious math problem(数位dp)

    传送门 数位dp卡常题. 写了一发dfs版本的发现过不了233. 于是赶紧转循环版本. 预处理出f数组. f[i][j]f[i][j]f[i][j]表示前i位数异或和为j的方案数. 然后每次直接数位d ...

  10. 2018.08.20 loj#115. 无源汇有上下界可行流(模板)

    传送门 又get到一个新技能,好兴奋的说啊. 一道无源汇有上下界可行流的模板题. 其实这东西也不难,就是将下界变形而已. 准确来说,就是对于每个点,我们算出会从它那里强制流入与流出的流量,然后与超级源 ...