可以把R看成顺时针转90°,O看成逆时针转270°

设R有x个,则180*(n-2)=90*x+270*(n-x)

解得R有(n+4)/2个

O有(n-4)/2个

所以n<4或者n是奇数时无解。

确定有解时,可以DP解决。

设f[第i位][R比O多j个(j的范围为-1到5)][首位是不是O][末尾是不是O]=方案数

 /*by SilverN*/
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#define LL long long
using namespace std;
int read(){
int x=,f=;char ch=getchar();
while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>='' && ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
LL f[][][][];//[位数][R比O多的个数][首O][尾O]
const int bas=;
int n;
int main(){
int i,j,cas=;
while(scanf("%d",&n) && n){
printf("Case %d: ",++cas);
if(n& || n<){printf("0\n");continue;}
memset(f,,sizeof f);
f[][+bas][][]=f[][bas-][][]=;
for(i=;i<=n;i++){
for(j=-;j<=;j++){
f[i][j+bas][][]=f[i-][j-+bas][][]+f[i-][j-+bas][][];
f[i][j+bas][][]=f[i-][j++bas][][];
f[i][j+bas][][]=f[i-][j-+bas][][]+f[i-][j-+bas][][];
f[i][j+bas][][]=f[i-][j++bas][][];
}
}
LL ans=f[n][+bas][][]+f[n][+bas][][]+f[n][+bas][][];
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. 64位电脑上配置mysql-connector-odbc的方法
  2. datatables.js 简单使用--多选框和服务器端分页
  3. hadoop得知;block数据块;mapreduce实现样例;UnsupportedClassVersionError变态;该项目的源代码相关联
  4. Linux网络编程(三)
  5. Spring 依赖注入的理解
  6. SystemVerilog语言简介(一)
  7. jquery的datatables第二次加载报错
  8. 学号 20175313 《实验三 敏捷开发与XP实践》实验报告
  9. centos6.8下安装破解quartus prime16.0以及modelsim ae安装
  10. JustOj 1910: 人见人爱A+B
  11. EBS中 EXCEL 格式报表输出的公用API
  12. Mac 删除应用卸载后无法正常移除的图标
  13. 2018-2019 网络对抗技术 20165226 Exp4:恶意代码分析
  14. 前端富文本编辑器 vue-html5-editor
  15. Spring与Web
  16. 很棒的bootstrap学习网站
  17. window系统下pycharm的破解配置
  18. [BZOJ 2756] 奇怪的游戏
  19. 【权值分块】bzoj1503 [NOI2004]郁闷的出纳员
  20. springmvc中action跳转

热门文章

  1. EXC_BAD_ACCESS调试
  2. SAP 常用业务数据表设计
  3. vue 使用lib-flexable,px2rem 进行移动端适配 但是引入的第三方UI组件 vux 的样式缩小,解决方案
  4. robotframework的列表与字典
  5. 【TCP/IP】【网络基础】网页访问流程
  6. 【laravel】Laravel 5 TokenMismatchException on PHP 5.6.9
  7. 微软与百度合作:win10搜索引擎默认百度
  8. python爬虫基础16-cookie在爬虫中的应用
  9. w3resource_MySQL练习:Basic_select_statement
  10. Python头脑风暴4