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

题目描述

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. PHP MYSQL单向同步方案

    项目上有个需求,需要从外网服务器的MYSQL同步到本地服务器上. 思路如下: 1 在外网MYSQL中创建表 table_change_log ,记录表中数据的更改记录. DROP TABLE IF E ...

  2. 解决错误: Failed to load class "org.slf4j.impl.StaticLoggerBinder"

    当报这个错时,就很难看到我们自己输出的日志,系统运行情况后台无法得到输出.解决方案是加入以下依赖: <dependency> <groupId>org.slf4j</gr ...

  3. undefined reference to `_init'问题解决

    今天利用CDT 的eclipse调试程序,遇到下面的问题: d:/plugin/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi ...

  4. Mysql无法创建外键的原因

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  5. R语言-基本图形

    barplot() 条形图 spine() 棘状图 pie() 饼图 hist() 直方图 plot(density(x))核密度图 boxplot(X) 箱线图 vioplot() 小提琴图 dot ...

  6. OAF_开发系列12_实现OAF开发中URL中的标记和加密参数传递(案例)

    20150712 Created By BaoXinjian

  7. mac 下打开多个Eclipse

    在Mac下只能打开一个Eclipse工具. 使用下面命令,在控制台中输入,可以打开多个Eclipse. open -n xx/xx/eclipse.app 例子: open -n /Users/use ...

  8. 安装libudev-dev,解决依赖错误

    http://stackoverflow.com/questions/17181073/ubuntu-12-04-libudev-dev-wont-install-because-of-depende ...

  9. fw: webdriver 那些坑

    http://www.cnblogs.com/huang0925/p/3384596.html 使用WebDriver遇到的那些坑   在做web项目的自动化端到端测试时主要使用的是Selenium ...

  10. C++设计模式-State状态模式

    State状态模式作用:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. UML图如下: State类,抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为. ...