• D. Recovering BST Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)


    http://codeforces.com/contest/1025/problem/D

    树 dp 优化

      f[x][y][0]=f[x][z][1] & f[z+1][y][0] ( gcd(a[x-1],a[z])<>0 )

      f[x][y][1]=f[x][z][1] & f[z+1][y][0] ( gcd(a[z],a[y+1])<>0 )

     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cmath>
     4 #include <cstring>
     5 #include <time.h>
     6 #include <string>
     7 #include <set>
     8 #include <map>
     9 #include <list>
    10 #include <stack>
    11 #include <queue>
    12 #include <vector>
    13 #include <bitset>
    14 #include <ext/rope>
    15 #include <algorithm>
    16 #include <iostream>
    17 using namespace std;
    18 #define ll long long
    19 #define minv 1e-6
    20 #define inf 1e9
    21 #define pi 3.1415926536
    22 #define E  2.7182818284
    23 const ll mod=1e9+7;//998244353
    24 const int maxn=1e3+10;
    25 
    26 int a[maxn];
    27 bool vis[maxn][maxn]={0},f[maxn][maxn][2]={0};
    28 
    29 int main()
    30 {
    31     int n,i,j,x,y,z;
    32     scanf("%d",&n);
    33     for (i=1;i<=n;i++)
    34         scanf("%d",&a[i]);
    35     for (i=1;i<n;i++)
    36         for (j=i+1;j<=n;j++)
    37             vis[i][j]=(__gcd(a[i],a[j])!=1);
    38     for (i=0;i<=n;i++)
    39         vis[0][i]=1,vis[i][n+1]=1;
    40     for (i=1;i<=n+1;i++)
    41         f[i][i-1][0]=f[i][i-1][1]=1;
    42     for (i=1;i<=n;i++)
    43         for (x=1,y=i;x<=n-i+1;x++,y++)
    44             for (z=x;z<=y;z++)
    45                 if (f[x][z-1][1] && f[z+1][y][0])
    46                 {
    47                     if (vis[x-1][z])
    48                         f[x][y][0]=1;
    49                     if (vis[z][y+1])
    50                         f[x][y][1]=1;
    51                 }
    52     if (f[1][n][0])
    53         printf("Yes");
    54     else
    55         printf("No");
    56     return 0;
    57 }
  • 相关阅读:
    嗨分享-前端技术-帝国CMS手机站修改列表分页(sysShowListMorePage)
    外观模式
    模版方法模式
    原型模式(克隆)
    策略模式
    装饰模式和代理模式
    设计原则
    工厂模式
    反射机制
    vmware RHEL6.x 开启FTP和TELNET服务--root权限
  • 原文地址:https://www.cnblogs.com/cmyg/p/9530998.html
Copyright © 2020-2023  润新知