zoukankan      html  css  js  c++  java
  • P3942 将军令

    自己造的一组hack数据打错一个数字,自闭—— 凸(艹皿艹 )

    本质是一个贪心,策略是建边,以任意底为根,排最深的点再贪它。

    预处理深度,遍历顺序。寻找覆盖最远的点,自下向上不到必须不选,子树向上覆盖。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int read(){
     4     int a=1,b=0;char t;
     5     while(t<'0'||t>'9'){
     6         if(t=='-') a=-1;
     7         t=getchar();
     8     }
     9     while(t>='0'&&t<='9') b=b*10+t-'0',t=getchar();
    10     return a*b;
    11 }
    12 #define maxn 100010
    13 #define F(i,a,b) for(int i=a;i<=b;i++)
    14 
    15 int n,k,ans,tot;
    16 /*
    17 struct edge{
    18     int to,nxt;
    19 }ea[maxn];
    20 
    21 int dfs(int u,int fa){
    22     int v,minm=0,maxm=0;
    23     for(int i=head[u];i;i=ea[i].nxt){
    24         v=dfs(ea[i].to,u);
    25         if(ea[i].to!=fa){
    26             if(v<0) minm=min(minm,v);
    27             else maxm=max(maxm,v);
    28         }
    29     }
    30     if(maxm>-minm) return maxm-1;
    31     if(-minm==k||u==1) return ++ans,k;
    32     return minm-1;
    33 }*/
    34 struct edge{
    35     int v;
    36     edge *nxt;
    37 } pool[maxn<<1],*tp=pool,*head[maxn];
    38 int dfs(int x,int fa){
    39     int t,mn=0,mx=0;
    40     for (edge *i=head[x];i;i=i->nxt)
    41         if (i->v!=fa)
    42             (t=dfs(i->v,x))<0? mn=min(mn,t):mx=max(mx,t);
    43     if(mx>-mn) return mx-1;
    44     if(-mn==k||x==1) return ++ans,k;
    45     return mn-1;
    46 }
    47 int main(){
    48     n=read(),k=read(),read();
    49     F(i,1,n-1){
    50         int u=read(),v=read();/*
    51         ea[++tot].nxt=head[u],head[u]=tot,ea[tot].to=v;
    52         ea[++tot].nxt=head[v],head[v]=tot,ea[tot].to=u;*/
    53         *tp=(edge){v,head[u]},head[u]=tp++;
    54         *tp=(edge){u,head[v]},head[v]=tp++;
    55     }
    56     dfs(1,0);
    57     cout<<ans;
    58 }
    View Code
  • 相关阅读:
    解决IE6不支持position:fixed的bug
    响应式Web设计基础
    多行文本溢出显示省略号(…)全攻略
    解读CSS布局之-水平垂直居
    理解CSS中BFC
    七个你可能不了解的CSS单位
    屏蔽系统热键钩子Hook程序
    Win 2008 r2 远程桌面多用户登陆,一用户多登陆配置
    把Excel转换成DataTable,Excel2003+
    DataGridView不显示未绑定的列-AutoGenerateColumns
  • 原文地址:https://www.cnblogs.com/btcadmire123A/p/11253021.html
Copyright © 2011-2022 走看看