Codeforces 166E Tetrahedron(dp)
2016-01-31 20:42
381 查看
题意:
代码:
[code]给你一个正四面体,问你从定点出发走k步后回到定点有几种走法。 我反正是不会做,看了CF的题解才明白具体怎么写。 我们只需要两个变量,记录当前步数下,走到定点和到其他三个点的种数就好。 具体看代码理解。
代码:
[code]// // Created by CQU_CST_WuErli // Copyright (c) 2015 CQU_CST_WuErli. All rights reserved. // // #include<bits/stdc++.h> #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> #include <cctype> #include <cmath> #include <string> #include <vector> #include <list> #include <map> #include <queue> #include <stack> #include <set> #include <algorithm> #include <sstream> #define CLR(x) memset(x,0,sizeof(x)) #define OFF(x) memset(x,-1,sizeof(x)) #define MEM(x,a) memset((x),(a),sizeof(x)) #define For_UVa if (kase!=1) cout << endl #define BUG cout << "I am here" << endl #define lookln(x) cout << #x << "=" << x << endl #define SI(a) scanf("%d",&a) #define SII(a,b) scanf("%d%d",&a,&b) #define SIII(a,b,c) scanf("%d%d%d",&a,&b,&c) #define rep(flag,start,end) for(int flag=start;flag<=end;flag++) #define Rep(flag,start,end) for(int flag=start;flag>=end;flag--) #define Lson l,mid,rt<<1 #define Rson mid+1,r,rt<<1|1 #define Root 1,n,1 #define BigInteger bign template <typename T> T gcd(const T& a,const T& b) {return b==0?a:gcd(b,a%b);} const int MAX_L=2005;// For BigInteger const int INF_INT=0x3f3f3f3f; const long long INF_LL=0x7fffffff; const int MOD=1e9+7; const double eps=1e-9; const double pi=acos(-1); typedef long long ll; using namespace std; int n; int main(){ #ifdef LOCAL // freopen("C:\\Users\\john\\Desktop\\in.txt","r",stdin); // freopen("C:\\Users\\john\\Desktop\\out.txt","w",stdout); #endif while (SI(n)==1) { ll inABC,inD; inD=1; inABC=0; for (int i=1;i<=n;i++) { ll toD=(inABC*3)%MOD; // 到定点可以从另外三个点走,所以乘以3。 ll toABC=(inABC*2+inD)%MOD; // 到三个下面的点之一可以从另外两个点和定点走,所以乘2+定点的。 inD=toD; inABC=toABC; } cout << inD << endl; } return 0; }
相关文章推荐
- POJ 2010 Moo University-Financial Aid
- 设计模式基础——策略模式
- BZOJ-1196 公路修建问题 最小生成树Kruskal+(二分??)
- 细说Java GUI:AWT,SWT,Swing
- 【poj 1273】Drainage Ditches (最大流裸题)
- BZOJ-1196 公路修建问题 最小生成树Kruskal+(二分??)
- 学习OpenBlas
- treeview 全部展开
- 四川麻将地胡
- 简单工厂模式
- ZOJ3640-Help Me Escape
- 联想S5-S531笔记本安装winxp系统的注意事项
- 【算法-字符串】【周期串】
- 九度oj 二叉排序树 1201,1009 c++
- Android 消息处理机制
- 运行计划之误区,为什么COST非常小,SQL却跑得非常慢?
- 典型代码-linq 基本的增加记录操作
- Javaweb学习之jsp与servelet的区别
- ios 修改应用名称
- Miller-Rabin素数测试(被测数可以是小于2^63的正整数)