玄学RE?
  • 板块灌水区
  • 楼主C1R1A1E1F1
  • 当前回复16
  • 已保存回复16
  • 发布时间2020/10/4 21:24
  • 上次更新2023/11/5 12:00:52
查看原帖
玄学RE?
331897
C1R1A1E1F1楼主2020/10/4 21:24

蒟蒻很是头疼的一次玄学RE……

求你谷各巨佬解答……

#include <bits/stdc++.h>
using namespace std;
long long ans,n,fa[100005],data[100005],m,cnt[100005],num[100005];
void gd(int x)
{
	int f=fa[x];
	num[x]+=cnt[f];
	num[f]+=cnt[x];
}
int main()
{
	cin>>n>>m;
	for(int i=2;i<=n;i++)
		scanf("%lld",&fa[i]);
	for(int i=1;i<=m;i++)
	{
		int x;
		scanf("%lld",&x);
		cnt[x]++;
	}
	for(int i=1;i<=n;i++)
		num[i]=cnt[i];
	for(int i=2;i<=n;i++)
		gd(i);
	for(int i=1;i<=n;i++)
		ans+=num[i]*(num[i]+1)/2;
	cout<<ans;
}//RE
#include <bits/stdc++.h>
using namespace std;
long long ans,n,fa[100005],data[100005],m,cnt[100005],num[100005];
void gd(int x)
{
	int f=fa[x];
	num[x]+=cnt[f];
	num[f]+=cnt[x];
}
int main()
{
	cin>>n>>m;
	for(int i=2;i<=n;i++)
		cin>>fa[i];
	for(int i=1;i<=m;i++)
	{
		int x;
		cin>>x;
		cnt[x]++;
	}
	for(int i=1;i<=n;i++)
		num[i]=cnt[i];
	for(int i=2;i<=n;i++)
		gd(i);
	for(int i=1;i<=n;i++)
		ans+=num[i]*(num[i]+1)/2;
	cout<<ans;
}//AC

(话说这scanf是为了快速输入打的(因为T了一个点))

2020/10/4 21:24
加载中...