传送门

Solution

强行猜测公式形如\(f_i=k\times f_{i-1}+b\),暴力求\(f_1,f_2,f_3\),剩下的递推就行

Code

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define F(i,a,b) for(register int i=(a);i<=(b);i++)
using namespace std; inline int read() {
int x=0,f=1;char c=getchar();
while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}
while(isdigit(c)) x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
} const int N=40;
int n;
long long f[N],top[4],t[4][N];
char ch[3];
struct M{int fr,to;}mv[10]; int get(int x) {
F(i,1,x) t[1][i]=x-i+1;
top[1]=x;top[2]=top[3]=0;
int res=0,las=0;
while(1) {
if(top[2]==x||top[3]==x) return res;
F(i,1,6) {
int u=mv[i].fr,v=mv[i].to;
if(u==las||!top[u]||(t[u][top[u]]>t[v][top[v]]&&top[v])) continue;
t[v][++top[v]]=t[u][top[u]];
t[u][top[u]--]=0;las=v;
res++;break;
}
}
} int main() {
n=read();
F(i,1,6) scanf("%s",ch+1),mv[i].fr=ch[1]-'A'+1,mv[i].to=ch[2]-'A'+1;
f[1]=get(1);f[2]=get(2);f[3]=get(3);
int k=(f[3]-f[2])/(f[2]-f[1]),b=f[3]-f[2]*k;
F(i,4,n) f[i]=k*f[i-1]+b;
printf("%lld",f[n]);
return 0;
}

最新文章

  1. VSS转SVN
  2. 小心一些,断言可能让你的造成循环引用NSAssert
  3. 苹果 Mac OS 下查看系统隐藏文件
  4. ubuntu vi/vim编辑器必知必会
  5. C#(类)
  6. 慕课网-安卓工程师初养成-4-7 Java循环语句之 while
  7. Sublime字体设置
  8. inline和宏之间的区别
  9. DrawText的使用
  10. BZOJ 2718: [Violet 4]毕业旅行( 最长反链 )
  11. Codeforces.765F.Souvenirs(主席树)
  12. 如何学习SpringCloud?(SpringCloud模板)
  13. 做数据挖掘,就算发 20 几分的 CNS 子刊,也是垃圾!?--转载
  14. 开发中清除css加载的缓存使用
  15. CentOS 7安装Hadoop 3.0.0
  16. oracle错误分析:ora-04063:view view_test has errors
  17. SaltStack远程执行
  18. 使用实例 ---- 使用NUnit在.Net编程中进行单元测试
  19. cdr X6 64位32位缩略图补丁包
  20. 习题-第7章Web自动化测试

热门文章

  1. springmvc mybatis 分页插件 pagehelper
  2. 飘逸的python - 实现一个极简的优先队列
  3. iOS 运行时添加属性和方法
  4. java调用c++ dll出现中文乱码
  5. 集成CCFlow工作流与GPM的办公系统驰骋CCOA介绍(二)
  6. multiple web application host under the same website on IIS (authentication mode)
  7. ssdb底层实现——ssdb底层是leveldb,leveldb根本上是skiplist(例如为存储多个list items,必然有多个item key,而非暴力string cat),用它来做redis的list和set等,势必在数据结构和算法层面上有诸多不适
  8. 【POJ 2442】 Sequence
  9. poj 2288 Islands and Bridges ——状压DP
  10. C语言程序读写文件(文件内存一个十进制数,每读一次数值加一)