看了其他人博客,貌似i个盘子的方案数满足 f[i] = f[i-1] * x + y

???????

神来之笔

貌似没有找到严格的证明……

牛逼……

如果这样的话暴力求出x和y然后递推完事

#include<cstdio>
#include<stack>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; int s[10][2];
stack<int> st[3]; bool judge(int a, int b, int pre)
{
if(st[a].empty() || st[a].top() == pre) return false;
if(st[b].empty() || st[a].top() < st[b].top()) return true;
return false;
} int solve(int n)
{
REP(i, 0, 3)
while(!st[i].empty())
st[i].pop();
for(int i = n; i >= 1; i--) st[0].push(i);
int ret = 0, pre = -1; while(1)
{
if(st[1].size() == n || st[2].size() == n) return ret;
REP(i, 0, 6)
{
int a = s[i][0], b = s[i][1];
if(judge(a, b, pre))
{
pre = st[a].top();
st[b].push(pre);
st[a].pop();
ret++;
break;
}
}
}
} int main()
{
int n, f2, f3;
int x, y; while(~scanf("%d", &n))
{
REP(i, 0, 6)
{
char str[5];
scanf("%s", str);
s[i][0] = str[0] - 'A';
s[i][1] = str[1] - 'A';
} f2 = solve(2); f3 = solve(3);
x = (f3 - f2) / (f2 - 1);
y = f2 - x; long long ans = 1;
REP(i, 2, n + 1)
ans = ans * x + y;
printf("%lld\n", ans);
} return 0;
}

最新文章

  1. Electron Angular 开发小记
  2. http 状态码含义
  3. python ftplib.FTP 获取当前路径下所有目录
  4. IL指令大全
  5. yii2中textarea中的默认值设置
  6. OB命令大全
  7. android百度定位
  8. Web 应用性能提升 10 倍的 10 个建议
  9. Logstash使用grok过滤nginx日志(二)
  10. 移动端H5开发 (滑动事件)
  11. 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
  12. JQuery --- 第三期 (jQuery事件相关)
  13. C语言第01次作业--顺序、分支结构
  14. Traceur
  15. (转)Properties Editor为你解除通过native2ascii进行Unicode转码的烦恼
  16. python XML文件解析:用xml.dom.minidom来解析xml文件
  17. Java课程设计(2019版)
  18. 无法将参数 1 从“WCHAR [256]”转换为“const char *”
  19. Android-Java卖票案例-推荐此方式Runnable
  20. Solution for sending Whatsapp via sqlite &quot;INSERT INTO&quot;

热门文章

  1. nginx和apache作为webserver的差别
  2. css中使用id和class 的不同
  3. GraphicsMagick java.io.FileNotFoundException: gm 错误解决办法
  4. 从Oracle Database 角度来看浪潮天梭K1主机的操作系统选择
  5. SDUTOJ 2776 小P的故事——奇妙的分组
  6. angularjs 指令2
  7. 使用caffemodel模型(由mnist训练)测试单张手写数字样本
  8. hiho149周 - 数据结构 trie树
  9. c# 值类型 之枚举
  10. SSD-tensorflow-1 demo