zoukankan      html  css  js  c++  java
  • 1864: [Zjoi2006]三色二叉树

    1864: [Zjoi2006]三色二叉树

    链接

    分析:

      做得最智障的一题了。。。

      首先中间输出两个数之间没空格(换行居然也过了。。。), 写了dp[i][0/1/2],后来知道其实dp[i][0/1]就行了,最zz的一个bug,,,char pos = 1...

    代码:

     1 #include<cstdio>
     2 #include<iostream>
     3 #define L ls[u]
     4 #define R rs[u]
     5 
     6 using namespace std;
     7  
     8 const int N = 500100;
     9  
    10 int ls[N],rs[N],dp1[N][3],dp2[N][3],pos = 1;
    11 char s[N];
    12 
    13 void dfs(int u) {
    14     if (s[u] == '0') return;
    15     if (s[u] == '1' || s[u] == '2') {
    16         L = ++pos;
    17         dfs(pos); 
    18     } 
    19     if (s[u] == '2') {
    20         R = ++pos;
    21         dfs(pos);
    22     }
    23 }
    24  
    25 int tsl,tsr;
    26 void DP(int u) {
    27     if (!u) return ;
    28     dp1[u][0] = 1;dp1[u][1] = dp1[u][2] = 0;
    29     dp2[u][0] = 1;dp2[u][1] = dp2[u][2] = 0;
    30     
    31     DP(L);
    32     DP(R);
    33      
    34     dp1[u][0] = max(dp1[L][1] + dp1[R][2], dp1[L][2] + dp1[R][1]) + 1;
    35     dp1[u][1] = max(dp1[L][0] + dp1[R][2], dp1[L][2] + dp1[R][0]);
    36     dp1[u][2] = max(dp1[L][0] + dp1[R][1], dp1[L][1] + dp1[R][0]);
    37      
    38     dp2[u][0] = min(dp2[L][1] + dp2[R][2], dp2[L][2] + dp2[R][1]) + 1;
    39     dp2[u][1] = min(dp2[L][0] + dp2[R][2], dp2[L][2] + dp2[R][0]);
    40     dp2[u][2] = min(dp2[L][0] + dp2[R][1], dp2[L][1] + dp2[R][0]);
    41 }
    42 int main () {
    43     scanf("%s",s+1);
    44     dfs(1);
    45 /*  for (int i=1; i<=n; ++i) 
    46         cout << ls[i] << " "<< rs[i] << "
    ";*/
    47     DP(1);
    48     cout << max(dp1[1][0],max(dp1[1][1],dp1[1][2])) << " ";
    49     cout << min(dp2[1][0],min(dp2[1][1],dp2[1][2]));
    50     return 0;
    51 }
  • 相关阅读:
    Hibernate中session的产生的方式
    Hibernate 多对多关联Demo
    Hibernate 一对多双向关联Demo
    Beta(0/7)
    获得小黄衫感想(2)
    软工实践作业(十)
    成员交换情况
    Alpha事后诸葛亮
    Alpha冲刺总结
    Alpha(10/10)
  • 原文地址:https://www.cnblogs.com/mjtcn/p/9199584.html
Copyright © 2011-2022 走看看