第一篇题解是否可以 hack?
查看原帖
第一篇题解是否可以 hack?
804607
rainygame楼主2023/8/29 15:13

无锅代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<string>
#include<queue>
#include<map>
#include<vector>
#include<ctime>
#include<set>
#include<cctype>
#define INF 0x7fffffff
#define ll long long
#define IL inline
#define R register
using namespace std;
struct node{
	int u,v;
}fuck[100007];
int head[100007];
int fa[100007];
int x,y;
int w[100007];
int n,s;
int tot=0;
int ans=0;
int sum=0;
IL void read(int &x)
{
	int f=1;x=0;char s=getchar();
	while (s<'0'||s>'9')
	{
		if(s=='-')
		    f=-1;
		s=getchar();
	}
	while (s>='0'&&s<='9')
	{
		x=x*10+s-'0';
		s=getchar();
	}
	x*=f; 
}
void add(int x,int y)
{
	fuck[++tot].u=head[x];//++?
	fuck[tot].v=y;
	head[x]=tot;
}

IL void dfs(int x,int dis)
{
	if(dis>s)
	    return;
	if(dis==s)
	{
		ans++;
		return;
	}
	for(int i=head[x];i;i=fuck[i].u)
	{
		int nxt=fuck[i].v;
		if(fa[x]!=nxt)
		    dfs(nxt,dis+w[nxt]);
	}
}

int main()
{
    read(n);read(s);
    for(int i=1;i<=n;i++)
    {
    	cin>>w[i];
	}
	for(int i=1;i<=n-1;i++)
	{
		cin>>x>>y;
		add(x,y);
		fa[y]=x;
	}
	for(int i=1;i<=n;i++)
	{
	    dfs(i,w[i]);	
	}
	cout<<ans<<endl;
	return 0;
}

如果生成一颗树高 10310^3,且儿子数量尽量平均的树,是否可以 hack 掉这个代码?

2023/8/29 15:13
加载中...