由於一開始沒有明白題意,就沒有管這道題。
然而這道題是非常水的。
明顯是從s開始做。
然後每次往下走,如果兒子不是p或q的父親,那麼就可以直接算。
或者可以待在原題不動(直接算出答案)。
算的時候,畫個圖,推一推就好了。
#include
#include
#include
#include
#include
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fod(i,a,b) for(i=a;i>=b;i--)
#define rep(i,a) for(i=first[a];i;i=next[i])
using
namespace
std;
const
int maxn=200007;
int i,j,k,l,t,n,m,ans,s,p,q,pp,qq,ppp,qqq;
int first[maxn*2],next[maxn*2],last[maxn*2],num;
int f[maxn],deep[maxn],shen[maxn];
int bz[maxn];
void add(int x,int y)
void dfs(int x,int y)
}}void dfs1(int x,int y,int z,int p,int q)
rep(i,x)}}
rep(i,x)
}k=min(p,q);
int o=z;
o+=(k/2)*3+(k%2)*2;
ans=max(ans,o);
}int main()
dfs(s,0);
while(pp)bz[pp]=p,pp=f[pp];
while(qq)bz[qq]=q,qq=f[qq];
dfs1(s,0,0,deep[p]-1,deep[q]-1);
printf("%d\n",ans);
}
NOIP模擬 修路
這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...
NOIP模擬 項鍊
經過一番周折,bob找到了alice,為了安慰alice驚魂未定的心,bob決定給alice買一條手鍊,這條手鍊由m個珍珠組成,每個珍珠上刻著不同的小寫字母。當alice看到一些字母按照一定的順序排列成的字串時,就會產生一定的愉悅值。bob現在可以在這m個珍珠上刻上字母,現在他想知道,如何刻字母可以...
NOIP模擬 幻象
phantom是一位愛思考的哲 學家。最近phantom得到了森 妖精的真傳。在他練功的時候,每秒他的思緒中都有一定的概率浮現出奇 異的幻象,持續x秒的幻象將產生 空格 的幻象值。phantom練功發自真心,他想知道,在n秒內他期望產生的幻象值是多少。等我比賽完之後,我們才知道 空格 是x2 所以比...