本地过,评测+IDE全员TLE求助(包括样例)
查看原帖
本地过,评测+IDE全员TLE求助(包括样例)
546086
Francais_Drake楼主2021/11/17 21:45
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
inline int read(){
	char ch=getchar();int ret=0;
	while((ch^'0')>9) ch=getchar();
	while((ch^'0')<10){
		ret=(ret<<3)+(ret<<1)+(ch^'0');
		ch=getchar();
	}
	return ret;
}
inline void write(const int p){
	if(!p) return;
	write(p/10);
	putchar((p%10)|'0');
}
int n,a,b;
int dp[4][100010];
vector<int> ver[100010];
void dfs(const int p,const int f){
	int flag=0x3f3f3f3f;
	dp[0][p]=1;
	for(int i:ver[p]){
		if(i==f) continue;
		dfs(i,p);
		dp[0][p]+=min(dp[0][i],min(dp[1][i],dp[2][i]));
		if(dp[1][i]>dp[0][i]){
			dp[2][p]+=dp[0][i];
			flag=0;
		}
		else{
			dp[2][p]+=dp[1][i];
			if(flag) flag=min(flag,dp[0][i]-dp[1][i]);
		}
	}
	dp[1][p]=dp[2][p]+flag;
}
int main(){
	n=read();
	for(int i=1;i<n;++i){
		a=read();b=read();
		ver[a].pb(b);
		ver[b].pb(a);
	}
	dfs(1,0);
	write(min(dp[0][1],dp[1][1]));
	putchar('\n');
	return 0;
}

谜之TLE

注意本地调时输入样例立即A掉了

2021/11/17 21:45
加载中...