tj:這道題可以想到排列組合

對於第一問,我們知道,左轉的次數比右轉次數多4,所以答案是c(n,n/2-2)

對於第二問,我們發現,不能出現下凹的情況,所以不能同時出現2個左拐,且路徑可以分為4段,且每一段長度為奇數,問題轉化成n個數拆成4個奇數的情況

先考慮拆成4個偶數,那麼等價于將n/2拆成任意個大於0的數,使用隔板法,有n/2-1個空位和3個板,答案為c(n/2-1,3)

然後,奇數也類似,把每一個數加上1變成偶數,套上原來公式變為c(n/2+1,3)

由於每一個電源可以放在任何一個位置,所以答案要乘n,由於旋轉4次結果相同,所以答案要除4

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mo 1000000007
ll jc[10000010],ijc[10000010],n;
ll qp(ll x,ll y){
	if(!y)return 1;
	if(y==1)return x%mo;
	ll r=qp(x,y>>1);
	if(y&1)return r*r%mo*x%mo;
	return r*r%mo;
}
ll c(ll x,ll y){
	return jc[x]*qp(jc[x-y],mo-2)%mo*qp(jc[y],mo-2)%mo;
}
int main(){
	freopen("a.in","r",stdin);
	freopen("a.out","w",stdout);
	scanf("%lld",&n);
	jc[0]=1;
	for(ll i=1;i<=n;i++)
		jc[i]=jc[i-1]*i%mo;
	printf("%lld\n%lld",c(n,n/2-2),c(n/2+1,3)*n%mo*qp(4,mo-2)%mo);
}

jzoj5878的更多相关文章

随机推荐

  1. Visual Studio宏

    MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)MS ...

  2. Golang之Socket

    go创建socket很简单 package main import ( "fmt" "net" ) func main() { //服务器监听地址 fmt.Pr ...

  3. CentOS7下BIND配置主从服务器和缓存服务器

    系统环境:CentOS Linux release 7.4.1708 (Core)  3.10.0-693.el7.x86_64 软件版本:bind-chroot-9.9.4-51.el7_4.1.x ...

  4. 什么是RNA-Seq (RNA Sequencing)

    什么是RNA-Seq (RNA Sequencing) 2011-07-14 ~ ADMIN 随着ome为词尾的各种组学的出现,转录组学已经成为了人们了解生物信息的一个重要组成部分.人们使用了许多办法 ...

  5. jqgrid单元格合并

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...

  6. jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别

    jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别 var a = 元素本身的宽度: width() = a: innerWidt ...

  7. Devexpress VCL Build v2013 vol 13.2.5 发布

    支持xe6 了,但是承诺的功能在哪里? What's New in 13.2.5 (VCL Product Line)   New Major Features in 13.2 What's New ...

  8. 2018.09.22 atcoder Snuke's Coloring 2(线段树+单调栈)

    传送门 就是给出一个矩形,上面有一些点,让你找出一个周长最大的矩形,满足没有一个点在矩形中. 这个题很有意思. 考虑到答案一定会穿过中线. 于是我们可以把点分到中线两边. 先想想暴力如何解决. 显然就 ...

  9. 2018.06.27Going Home(二分图匹配)

    Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24716 Accepted: 12383 Descript ...

  10. 2018.09.15 bzoj1977:次小生成树 Tree(次小生成树+树剖)

    传送门 一道比较综合的好题. 由于是求严格的次小生成树. 我们需要维护一条路径上的最小值和次小值. 其中最小值和次小值不能相同. 由于不喜欢倍增我选择了用树链剖分维护. 代码: #include< ...