XidianOJ 1063 Chemistry Problem
题目描述
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。
#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的更多相关文章
- XidianOJ 1183 Water Problem: Items divided
题目描述 Youyouyouyou is very interested in math, one day, an idea came into his mind that how many ways ...
- 暴力 + 贪心 --- Codeforces 558C : Amr and Chemistry
C. Amr and Chemistry Problem's Link: http://codeforces.com/problemset/problem/558/C Mean: 给出n个数,让你通过 ...
- XidianOJ 1099 A simple problem
题目描述 一个长度为N的数组A, 所有数都是整数 ,0 <= A[i] <= 1000000,1 <= i <= N,1 <= N <= 100000,对于 任意i ...
- 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/ ...
- HDU-5347 MZL's chemistry
http://acm.hdu.edu.cn/showproblem.php?pid=5347 MZL's chemistry Time Limit: 2000/1000 MS (Java/Others ...
- lightoj 1063 求割点
题目链接:http://lightoj.com/volume_showproblem.php?problem=1063 #include<cstdio> #include<cstri ...
- hdu5347 MZL's chemistry(打表)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud MZL's chemistry Time Limit: 2000/1000 MS ...
- BZOJ 1063 道路设计NOI2008
http://www.lydsy.com/JudgeOnline/problem.php?id=1063 题意:给你一棵树,也有可能是不连通的,把树分成几个链,求每个点到根经过的最大链数最小,而且要输 ...
- hdu 5625 Clarke and chemistry
Problem Description Clarke is a patient with multiple personality disorder. One day, Clarke turned i ...
随机推荐
- 阿里云的9折推荐码 8DIER4
推荐码: 8DIER4 我有一个阿里云9折推荐码:8DIER4,分享给你,第一次购买云服务器或云数据库可享受原价9折优惠,还可多人使用,拿走不谢. 阿里云地址:http://www.aliyun.co ...
- LeetCode "468. Validate IP Address"
it is all about corner-cases... class Solution(object): def validIP4(self, IP): def validNum4(s): tr ...
- NAT 网络地址转换
NAT 网络地址转换(Network Address Translation) NAT(Network Address Translation,网络地址转换)是1994年提出的. 属接入广域网(WA ...
- xcode中使用xib添加autolayout中constrain to margins的不同
在使用xcode7 在storyboard中添加autolayout中发现 如果添加在view 直接添加到viewcontroller的view 上 constrain to margins 只 ...
- MySQL三大数据类型
- Random
/* * Random:产生随机数的类 * * 构造方法: * public Random():没有给种子,用的是默认种子,是当前时间的毫秒值 * public Random(long seed):给 ...
- 在java下使用log4j2记录日志
1.定义: log4j2 指log4j 2.X及以上版本 2.安装 log4j-core-xx.jarlog4j-api-xx.jarlog4j-web-xx.jar(web项目的需要引用) 3.配置 ...
- 我用VS2012在Nuget中安装Signalr之后报错
我用VS2012在Nuget中安装Signalr之后报错 “/”应用程序中的服务器错误. The following errors occurred while attempting to load ...
- 使用canvas编写环形图.
原理使用canvas画图: 第一步:画一个大圆 第二部:画一个扇形 第三部:画一个小圆 相互叠加. 最终效果: 现在上代码: (function($){ $.fn.drawPic=function(o ...
- Codeforces 732e [贪心][stl乱搞]
/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...