Tiling POJ 2506

这篇博客介绍了如何使用递推和高精度运算解决POJ 2506题目,内容涉及长题目的解析和解题思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?
Here is a sample tiling of a 2x17 rectangle.

Input

Input is a sequence of lines, each line containing an integer number 0 <= n <= 250.

Output

For each line of input, output one integer number in a separate line giving the number of possible tilings of a 2xn rectangle.

Sample Input

2
8
12
100
200

Sample Output

3
171
2731
845100400152152934331135470251
1071292029505993517027974728227441735014801995855195223534251

Source



一看题,我靠,这么长,递推+高精度运算,可惜当时不会,看了题解才明白了。


#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>

using namespace std;

int ans[260][300];
int main()
{
    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {
        memset(ans,0,sizeof(ans));
        ans[0][0]=1;
        ans[1][0]=1;
        ans[2][0]=3;
        if(n<=2)
        {
            printf("%d\n",ans[n][0]);
        }
        else
        {
           
            int s=0;
            int temp=0;
            for(i=3; i<=n; i++)
            {
                for(j=0; j<300; j++)//把数据存入数组,高精度运算
                {
                    s=ans[i-1][j]+ans[i-2][j]*2+temp;
                    ans[i][j]=s%10;
                    temp=s/10;
                }
            }
            int flog=0;
            for(i=300; i>=0; i--)//从最后面输出
            {
                if(flog!=0||ans[n][i]!=0)//flog是防止结果中间出现0的情况,至于结尾,应该不会出现0。
                {
                    flog=1;
                    printf("%d",ans[n][i]);
                }
            }
            printf("\n");
        }
    }
    return 0;
}


### Tiling Assistant in IT Context In the context of Information Technology (IT), a **Tiling Assistant** can refer to different tools depending on specific use cases such as window management or image processing. #### Tiling Window Manager A tiling window manager is an application that manages windows by arranging them so they do not overlap but instead completely cover the available screen space without gaps. This approach maximizes productivity and efficiency when working with multiple applications simultaneously. Popular examples include i3, AwesomeWM, and xmonad[^1]. For instance, using `i3`, one could define keybindings within configuration files: ```bash # Bind Mod4 + j/k/l/i to change focus between windows. bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+i focus right ``` This setup allows users to navigate through tiled layouts efficiently via keyboard shortcuts alone. #### Image Tiling Software Image tiling software refers to programs designed specifically for creating seamless textures from smaller images called tiles. These are often used in game development, web design, and graphic arts where large backgrounds need to be generated dynamically while minimizing memory usage. Tools like GIMP offer plugins supporting this functionality[^2]. An example script written in Python utilizing PIL library might look something like below which demonstrates how simple it would be programmatically create mosaic patterns out of individual pictures: ```python from PIL import Image def tile_image(image_path, output_size=(800, 600)): img = Image.open(image_path) width, height = img.size result_img = Image.new('RGB',output_size,(255,255,255)) for y in range(0,output_size[1],height): for x in range(0,output_size[0],width): result_img.paste(img,(x,y)) return result_img ``` --related questions-- 1. What advantages does adopting a tiling window manager bring over traditional floating ones? 2. How can developers integrate custom scripts into their workflow alongside popular tiling managers? 3. Are there any notable differences among various implementations of tiling algorithms across different platforms? 4. Can you provide more detailed guidance about setting up advanced configurations for a chosen tiling WM? 5. In what scenarios will someone prefer specialized image editing suites over general-purpose solutions during texture creation tasks?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值