zoukankan      html  css  js  c++  java
  • VJP1063 迎春舞会之集体舞(DP)

    我是被这题彻底折腾惨了 。。

    DP很简单 不用说了 重点是必须按它那个图说来来划分三角形 而不是随便撇下一部分 随便划下一个三角形就可以

    所以 要判断J是第奇数个点才可以

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 using namespace std;
     7 int dp1[210][210],sum[210],dp2[210][210];
     8 char s[210][210];
     9 int main()
    10 {
    11     int i,j,n;
    12     cin>>n;
    13     for(i = 1; i <= n ;i++)
    14         cin>>s[i];
    15     for(i = 1; i <= n ;i++)
    16         for(j = 0 ; j < 2*(n-i+1)-1 ; j++)
    17             if(s[i][j]=='-')
    18             {
    19                 dp1[i][j] = 1;
    20                 dp2[i][j] = 1;
    21             }
    22     for(i = 2; i <= n ;i++)
    23     {
    24         for(j = 0 ; j < 2*(n-i+1)-1 ; j++)
    25         {
    26             if(s[i][j]=='-'&&s[i-1][j]=='-'&&s[i-1][j+1]=='-'&&s[i-1][j+2]=='-')
    27             {
    28                 dp1[i][j] = min(dp1[i-1][j],min(dp1[i-1][j+1],dp1[i-1][j+2]))+1;
    29             }
    30         }
    31     }
    32     for(i = n-2 ; i>= 1; i--)
    33     {
    34         for(j = 2 ; j < 2*(n-i+1)-3 ; j++)
    35 
    36             if(s[i][j]=='-'&&s[i+1][j-2]=='-'&&s[i+1][j-1]=='-'&&s[i+1][j]=='-')
    37             dp2[i][j] = min(dp2[i+1][j],min(dp2[i+1][j-1],dp2[i+1][j-2]))+1;
    38 
    39     }
    40     int ans =0;
    41     for(i= 1; i <= n ; i++)
    42         for(j = 0 ; j < 2*(n-i+1)-1;  j++)
    43         {
    44             if(j%2==0)
    45             ans = max(max(dp1[i][j],dp2[i][j]),ans);
    46         }
    47     sum[1] = 1;
    48     int re=1;
    49     for(i = 2 ; i <= ans ;i++)
    50     {
    51         sum[i] = sum[i-1]+2;
    52         re+=sum[i];
    53     }
    54     if(ans)
    55     cout<<re<<endl;
    56     else
    57     cout<<"0
    ";
    58     return 0;
    59 }
    View Code
  • 相关阅读:
    HTTP 和 HTTPS
    HTTP 协议
    基础查询
    python编程从入门到实践笔记
    python-32-类的组合与初识继承
    python-31-初识面向对象与自定义类
    python-30-异常处理
    python-29-模块与包导入
    python-28-序列化模块
    python-27-其他常用模块(二)
  • 原文地址:https://www.cnblogs.com/shangyu/p/3278792.html
Copyright © 2011-2022 走看看