uva1073 Glenbow Museum【解法二】
来源:互联网 发布:java中调用void方法 编辑:程序博客网 时间:2024/05/21 17:21
The famous Glenbow Museum in Calgary is Western Canada’s largest
museum, with exhibits ranging from art to cultural history to
mineralogy. A brand new section is being planned, devoted to brilliant
computer programmers just like you. Unfortunately, due to lack of
space, the museum is going to have to build a brand new building and
relocate into it. The size and capacity of the new building differ
from those of the original building. But the oor plans of both
buildings are orthogonal polygons. An orthogonal polygon is a polygon
whose internal angles are either 90 or 270. If 90 angles are denoted
as R (Right) and 270 angles are denoted as O (Ob- tuse) then a string
containing only R and O can roughly describe an orthogonal polygon.
For example, a rectangle (Figure 1) is the simplest orthogonal polygon
and it can be described as RRRR (the angles are listed in
counter-clockwise order, starting from any corner). Similarly, a
cross-shaped orthogonal polygon (Figure 2) can be described by the
sequence RRORRORRORRO, RORRORRORROR, or ORRORRORRORR. These sequences
are called angle strings . Of course, an angle string does not
completely specify the shape of a polygon | it says nothing about the
length of the sides. And some angle strings cannot possibly describe
a valid orthogonal polygon (RRROR, for example). To complicate things
further, not all orthogonal polygons are acceptable oor plans for the
mu- seum. A museum contains many valuable objects, and these objects
must be guarded. Due to cost considerations, no oor can have more
than one guard. So a oor plan is acceptable only if there is a place
within the oor from which one guard can see the entire oor.
Similarly, an angle string is acceptable only if it describes at least
one acceptable polygon. Note that the cross-shaped polygon in Figure 2
can be guarded by someone standing in the center, so it is acceptable.
Thus the angle string RRORRORRORRO is acceptable, even though it also
describes other polygons that cannot be properly guarded by a single
guard. Help the designers of the new building determine how many
acceptable angle strings there are of a given length. Input The input
le contains several test cases. Each test case consists of a line
containing a positive integer L (1 L 1000), which is the desired
length of an angle string. The input will end with a line containing
a single zero. Output For each test case, print a line containing the
test case number (beginning with 1) followed by the number of
acceptable angle strings of the given length. Follow the format of the
sample output.
解法一见【这里】。
用dp[i][j][k]表示有i个R,有j个相邻的R,第一个元素是k,最后一个元素是R的方案数,枚举在后面接上OR或者R。
答案是dp[(n+4)/2][3][0]+dp[(n+4)/2][4][1]+dp[(n+4)/2][4][0],其中最后一项表示R开头O结尾的情况【去掉最后一个O,一定是以R结尾】。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define LL long longconst int c=3;int n;LL dp[1010][8][2];LL solve(){ int i,j; if ((n&1)||n<4) return 0; memset(dp,0,sizeof(dp)); dp[1][0][0]=dp[1][0][1]=1; for (i=2;i<=(n+4)/2;i++) for (j=0;j<=4;j++) { dp[i][j][0]=dp[i-1][j][0]; if (j) dp[i][j][0]+=dp[i-1][j-1][0]; dp[i][j][1]=dp[i-1][j][1]; if (j) dp[i][j][1]+=dp[i-1][j-1][1]; } return dp[(n+4)/2][3][0]+dp[(n+4)/2][4][1]+dp[(n+4)/2][4][0];}int main(){ int K=0; while (scanf("%d",&n)&&n) printf("Case %d: %lld\n",++K,solve());}
- uva1073 Glenbow Museum【解法二】
- uva1073 Glenbow Museum【解法一】
- uva1073 - Glenbow Museum
- Glenbow Museum LA4123
- UVALive - 4123 Glenbow Museum
- uvaoj 1073 - Glenbow Museum
- UVALive 4123Glenbow Museum
- uvala 4123 WF2008 Glenbow Museum
- uva 1073 - Glenbow Museum(递推)
- LA 4123 Glenbow Museum 葛伦堡博物馆
- LA 4123 Glenbow Museum (组合数)
- Uva 1073 - Glenbow Museum 解题报告(组合)
- UVA 1073 - Glenbow Museum(数论+计数问题+递推)
- uva live 4123 Glenbow Museum 数学递推
- ACM: uva 1073 - Glenbow Museum
- uva1073(数论)
- 解法二
- hdu 1372 解法二
- Laravel 5.3 不同用户表登录认证
- SQL Server 存储(3/8):理解GAM和SGAM页
- java算法篇---银行家算法
- View---VelocityTracker 速度追踪
- AD15 根据原理图 对 PCB进行 分功能 布局
- uva1073 Glenbow Museum【解法二】
- linux 内核机制
- 21. Spring Boot过滤器、监听器【从零开始学Spring Boot】
- .net mvc 部署到IIS 报错403.14 - forbidden
- SQL Server 存储(4/8):理解Page Free Space (PFS) 页
- 线上服务的JVM参数配置
- 数据结构课程设计【学生信息管理系统(烟大版)】
- 我为什么想写博客
- 慧与软件实训 day1 linux常用命令,vi,gcc编译