[提交][状态][讨论版]

题目描述

lw最近正在学习立体化学。立体化学中常用Fischer投影式表示分子的立体构型,例如,对于酒石酸HOOC(CHOH)2COOH,如果用一根横线表示羟基,略去氢原子,它有22=4种可能的Fischer投影式,如图所示。

然而,酒石酸的立体异构体数目并不是4,因为Fischer投影式具有一个奇怪的性质:将其在纸面上旋转180度后,仍然表示一个相同的立体异构体。例如,上图中第0和第3个(从左往右数,编号从0开始)Fischer投影式其实表示同一种立体异构体。

那么问题来了:对于糖酸HOOC(CHOH)nCOOH,它有多少不同的立体异构体呢?


更形式化地,本题就是:用2种颜色对排成一排的n个方块染色,将所有方块的顺序颜色都反转,得到的染色方案与原染色方式视为等价的,那么有多少种不同的染色方案?

由于答案很大,而且lw很讨厌高精度,你只要输出答案对1000000007的模即可。

输入

多组数据(最多1000组)。每组数据1行,包含整数n。

输入保证:1<=n<=109

输出

对于每组数据,输出1行,包含1个整数,即答案模1000000007。

 
--正文
没有最后的说明估计我就做不来这题了。。
先写几个看看就懂了
如果不管等价的,所有的方案是2^n
n为奇数的时候,
  易知没有可能有自身排列与倒转后相等的染色方案,所以方案数为2^(n-1)
n为偶数的时候
  可能存在自身排列在倒转转色后与原排列的染色方案
  以染红色为0,染白色为1,
  1100 -》 倒转变色后 1100 就是一种
  可以发现第一位与最后一位是10(或01)对应的,同理一直到n/2位,所以其实就在n/2里随意排列0,1
  所以这样的染色方案共有2^(n/2)种
  其他的染色方案在2^n都重复了两次
  所有最终的结果就是2^(n/2) + (2^n - 2^(n/2)) / 2

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; typedef long long LL;
#define MOD 1000000007
LL Fast_Mod(LL a,LL b,LL p){
LL res = ,base = a;
while (b){
if (b&)
res = (res*base) % p;
base = (base*base) % p;
b = b >> ;
}
return res;
} LL n; int main(){
while (scanf("%lld",&n)!= EOF){
if (n % == ){
LL tmp1 = Fast_Mod(,n/,MOD) % MOD;
LL tmp2 = Fast_Mod(,n-,MOD) % MOD;
LL tmp3 = Fast_Mod(,n/-,MOD) % MOD;
LL res = (tmp1 + tmp2 - tmp3 + MOD) % MOD;
printf("%lld\n",res);
}
else
printf("%lld\n",Fast_Mod(,n-,MOD));
}
return ;
}
 

XidianOJ 1063 Chemistry Problem的更多相关文章

  1. XidianOJ 1183 Water Problem: Items divided

    题目描述 Youyouyouyou is very interested in math, one day, an idea came into his mind that how many ways ...

  2. 暴力 + 贪心 --- Codeforces 558C : Amr and Chemistry

    C. Amr and Chemistry Problem's Link: http://codeforces.com/problemset/problem/558/C Mean: 给出n个数,让你通过 ...

  3. XidianOJ 1099 A simple problem

    题目描述 一个长度为N的数组A, 所有数都是整数 ,0 <= A[i] <= 1000000,1 <= i <= N,1 <= N <= 100000,对于 任意i ...

  4. Codeforces Round #312 (Div. 2) C. Amr and Chemistry 暴力

    C. Amr and Chemistry Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/558/ ...

  5. HDU-5347 MZL's chemistry

    http://acm.hdu.edu.cn/showproblem.php?pid=5347 MZL's chemistry Time Limit: 2000/1000 MS (Java/Others ...

  6. lightoj 1063 求割点

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1063 #include<cstdio> #include<cstri ...

  7. hdu5347 MZL's chemistry(打表)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud MZL's chemistry Time Limit: 2000/1000 MS ...

  8. BZOJ 1063 道路设计NOI2008

    http://www.lydsy.com/JudgeOnline/problem.php?id=1063 题意:给你一棵树,也有可能是不连通的,把树分成几个链,求每个点到根经过的最大链数最小,而且要输 ...

  9. hdu 5625 Clarke and chemistry

    Problem Description Clarke is a patient with multiple personality disorder. One day, Clarke turned i ...

随机推荐

  1. java基础-servlet-1

    servlet,是运行于服务器端的小程序.它既可以运行在http服务器端,也可以运行在mail等其他服务器端.我是这样理解,tomcat把接收到的客户端请求,转发给servlet,它负责业务处理,并且 ...

  2. Java应用程序监控JavaMelody

    JavaMelody是运行在Java Web容器中,用来监控Java内存和J服务器CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请求等的执行数量,平均执行时间,错误百分 ...

  3. tomcat 9.0配置管理员用户名和密码

    登录后,可以管理查看发布网站的信息,岗安装好的tomcat是没有管理密码的,可以在配置文件中修改. 在conf/tomcat-users.xml的文件中修改配置,默认的角色用户是被注销掉的.我去掉注释 ...

  4. Python操作Excel之xlwt

    #写入import xlwtworkbook=xlwt.Workbook()sheetn=workbook.add_sheet(u"测试数据",cell_overwrite_ok= ...

  5. Fail2ban 防止暴力破解centos服务器的SSH或者FTP账户

    次尝试登陆root账户失败的情况.[说明服务器被攻击了]   logtarget = SYSLOG  #我们需要做的就是把这行改成/var/log/fail2ban.log,方便用来记录日志信息 so ...

  6. 怎样安装Ubuntu操作系统

    (转载自:http://jingyan.baidu.com/article/ff42efa9423991c19e22020d.html) 准备工作 1. 一台普通电脑(装没装操作系统无所谓),保证电脑 ...

  7. C# 6.0 特性

    C#6.0主要提供了一些语法糖,另外还提供了新的编译器Roslyn地址https://github.com/dotnet/roslyn 一下列举几个新增的语法糖: 1.构造一个类: public cl ...

  8. 一些不错的学习资料(node)

    Node.js的api中文文档 http://expressjs.jser.us/ 关于Node.js的一系列不错的学习文章 http://blog.fens.me/ express框架的使用 htt ...

  9. loaded the "ViewController" nib but the view outlet was not set.'

    错误代码: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[U ...

  10. 获取访问者的IP

    import java.io.Serializable; import java.net.InetAddress; import java.net.UnknownHostException; impo ...