UVa1073 Glenbow Museum
2024-09-30 00:49:13
可以把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 ;
}
最新文章
- 64位电脑上配置mysql-connector-odbc的方法
- datatables.js 简单使用--多选框和服务器端分页
- hadoop得知;block数据块;mapreduce实现样例;UnsupportedClassVersionError变态;该项目的源代码相关联
- Linux网络编程(三)
- Spring 依赖注入的理解
- SystemVerilog语言简介(一)
- jquery的datatables第二次加载报错
- 学号 20175313 《实验三 敏捷开发与XP实践》实验报告
- centos6.8下安装破解quartus prime16.0以及modelsim ae安装
- JustOj 1910: 人见人爱A+B
- EBS中 EXCEL 格式报表输出的公用API
- Mac 删除应用卸载后无法正常移除的图标
- 2018-2019 网络对抗技术 20165226 Exp4:恶意代码分析
- 前端富文本编辑器 vue-html5-editor
- Spring与Web
- 很棒的bootstrap学习网站
- window系统下pycharm的破解配置
- [BZOJ 2756] 奇怪的游戏
- 【权值分块】bzoj1503 [NOI2004]郁闷的出纳员
- springmvc中action跳转
热门文章
- EXC_BAD_ACCESS调试
- SAP 常用业务数据表设计
- vue 使用lib-flexable,px2rem 进行移动端适配 但是引入的第三方UI组件 vux 的样式缩小,解决方案
- robotframework的列表与字典
- 【TCP/IP】【网络基础】网页访问流程
- 【laravel】Laravel 5 TokenMismatchException on PHP 5.6.9
- 微软与百度合作:win10搜索引擎默认百度
- python爬虫基础16-cookie在爬虫中的应用
- w3resource_MySQL练习:Basic_select_statement
- Python头脑风暴4