jzoj5878
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的更多相关文章
随机推荐
- JTemplate学习(二)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DT ...
- Django之常用命令以及问题汇总
基本命令 1.新建一个django项目 django-admin.py startproject project-name 2.新建一个app python manage.py startapp ap ...
- PAT 1083 是否存在相等的差(20)(代码+思路)
1083 是否存在相等的差(20 分) 给定 N 张卡片,正面分别写上 1.2.--.N,然后全部翻面,洗牌,在背面分别写上 1.2.--.N.将每张牌的正反两面数字相减(大减小),得到 N 个非负差 ...
- 练习并熟练掌握交互式 SQL 语言
哈工大数据库系统 实验:练习并熟练掌握交互式 SQL 语言 实验目的:基于给定的 OrderDB 数据库, 练习并熟练掌握交互式 SQL 语言实验环境:sql sever 2008 附:Order ...
- js点击添加
1.点击变色 <div id="dd" style="width:100px;height: 100px;background-color: #ccc"& ...
- SECURITY_ATTRIBUTES 实现最低权限总结
SetSecurityDescriptorDacl函数可以用来设置DACL中的信息.如果一个DACL已经在security descriptor中存在,那么此DACL将被替换.值得注意的是MSDN中的 ...
- 如何删除win8自带输入法
如何删除 win8 自带输入法 win8 自带的那个中文输入法太坑了,想删又删不了.试了半个小时才试出一个方法.方法如下: 第一步:在更改语言道选项下面点击[添加语言] [控制面板] -> [时 ...
- mysql添加注释
-- 查看字段类型-- show columns from campaign_distribute --给表添加注释 -- alter table campaign_distribute commen ...
- 记录下 UTF6 GBK 转换函数
int GBK2UTF8(char *szGbk,char *szUtf8,int Len) { // 先将多字节GBK(CP_ACP或ANSI)转换成宽字符UTF-16 // 得到转换后,所需要的内 ...
- java如何从一段html代码中获取图片的src路径
java如何从一段html代码中获取图片的src路径 package com.cellstrain.icell.Test; import java.util.ArrayList;import java ...