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
    没有梦想,何谈远方
  • 相关阅读:
    建造者模式
    抽象工厂设计模式
    工厂设计模式
    原型设计模式
    单例设计模式
    UML类图的学习
    kafka的客户端操作, stream API
    kafka的客户端操作,consumer API
    kafka的客户端操作,admin与producer
    Optional常用写法
  • 原文地址:https://www.cnblogs.com/zyue/p/3587239.html
Copyright © 2011-2022 走看看