zoukankan      html  css  js  c++  java
  • 格子刷油漆

    题意:给你一个2*n 的格子,问你任选一个起点走相邻的格子(对角也算),不能走重复的格子,问你把格子走满的总数 % 1000000007,

    解题思路: 这是一个经典的dp问题,主要在于把他简化为 ,只从边上的格子走,能有多少种方法填满。

    解题代码:

     1 // File Name: first.c
     2 // Author: darkdream
     3 // Created Time: 2014年03月07日 星期五 19时57分50秒
     4 
     5 #include<stdio.h>
     6 #include<string.h>
     7 #include<stdlib.h>
     8 #include<time.h>
     9 #include<math.h>
    10 #define M 1000000007
    11 long long  f[2000];
    12 long long P(int n)
    13 {
    14    if(n == 0 )
    15        return 1;
    16    if(n == 1 )
    17        return 2; 
    18    long long temp = P(n/2) % M ; 
    19    if(n % 2 == 0 )
    20        return temp * temp % M ;
    21    return temp *temp * 2 % M;
    22 }
    23 int main(){
    24     f[1] = 2; 
    25     f[2] = 12; 
    26     for(int i = 3;i <= 1000 ;i ++)
    27         f[i] = 2*(f[i-1] + 2 * f[i-2]+  P(i-1)) % M;
    28     int n ; 
    29     scanf("%d",&n);
    30     if(n == 1 )
    31     {
    32      printf("2
    ");
    33      return 0 ; 
    34     }
    35     long long sum = 0 ; 
    36     sum = f[n]*2 %M;
    37     for(int i = 2;i <= n-1 ; i ++)
    38     {
    39         sum += 2*(P(n-i)*f[i-1] + P(i-1)*f[n-i]) % M  ;
    40         sum = sum % M ; 
    41     }
    42     printf("%lld
    ",sum);
    43 return 0 ;
    44 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    zip压缩类
    sqlserver配置允许快照隔离
    (三)装饰模式
    (二)策略模式
    (一)简单工厂模式
    MFC中lib和dll的区别
    VC MFC工具栏(CToolBar)控件(非常重要)
    CMFCMenuBar和CMFCToolBar相同ID,在显示不同标签文字
    CImageList类Create函数参数解析
    c++连接数据库代码
  • 原文地址:https://www.cnblogs.com/zyue/p/3587239.html
Copyright © 2011-2022 走看看