为什么我的程序文件输出会输出乱码啊?
查看原帖
为什么我的程序文件输出会输出乱码啊?
47588
_D06楼主2020/7/11 10:03

为什么我的程序在官方数据第6个测试点文件输出会输出乱码啊?(如果不使用文件输出不会有乱码)(而且如果把空格换成换行也不会有乱码)

乱码的一部分: ㄠㄠ〠ㄠ〠〠〠

#include <bits/stdc++.h>
using namespace std;
vector<int>a[300005];
int w[300005];
int h[300005];
int l[300005],r[300005];
int s[300005],t[300005];
int c[300005],d[300005];
int read1()
{
	char cc=getchar();
	while(!(cc>=48&&cc<=57))
	{
		if(cc=='-')
		{
			break;
		}
		cc=getchar();
	}
	bool f=false;
	int s=0;
	if(cc=='-')
	{
		f=true;
	}
	else
	{
		s=cc-48;
	}
	while(1)
	{
		cc=getchar();
		if(cc>=48&&cc<=57)
		{
			s=s*10+cc-48;
		}
		else
		{
			break;
		}
	}
	if(f==true)
	{
		s=-s;
	}
	return s;
}
bool cmp1(int a,int b)
{
	return w[a]<w[b];
}
bool cmp2(int a,int b)
{
	return abs(s[a]-t[a])<abs(s[b]-t[b]);
}
int main()
{
//	freopen("running6.in","r",stdin);
//	freopen("running6.out","w",stdout);
	int n,m;
	cin>>n>>m;
	for(int i=1;i<n;i++)
	{
		int u,v;
		u=read1();
		v=read1();
		a[u].push_back(v);
		a[v].push_back(u);
	}
	for(int i=1;i<=n;i++)
	{
		w[i]=read1();
		c[i]=i;
	}
	if(n%10<=2)
	{
		for(int i=1;i<=m;i++)
		{
			s[i]=read1();
			t[i]=read1();
			if(w[s[i]]==0)
			{
				h[s[i]]++;
			}
		}
		for(int i=1;i<=n;i++)
		{
			cout<<h[i]<<' ';
		}
    	cout<<endl;
    }
    else
    {
		for(int i=1;i<=m;i++)
		{
			s[i]=read1();
			t[i]=read1();
			if(t[i]>s[i])
			{
				l[s[i]]++;
			}
			else
			{
				r[s[i]]++;
			}
			d[i]=i;
		}
		sort(c+1,c+n+1,cmp1);
		sort(d+1,d+m+1,cmp2);
		int g=1;
		for(int i=1;i<=n;i++)
		{
			int ans=0;
			bool f=false;
			for(int j=g;j<=m;j++)
			{
				if(s[d[j]]<t[d[j]]&&s[d[j]]+w[c[i]]>t[d[j]]||s[d[j]]>=t[d[j]]&&s[d[j]]-w[c[i]]<t[d[j]])
				{
					if(t[d[j]]>s[d[j]])
					{
						l[s[d[j]]]--;
					}
					else
					{
						r[s[d[j]]]--;
					}
				}
				else
				{
					g=j;
					f=true;
					break; 
				}
			}
			if(f==false)
			{
				g=m+1;
			}
			if(c[i]>w[c[i]])
			{
				ans+=l[c[i]-w[c[i]]];
			}
			if(c[i]+w[c[i]]<=n)
			{
				ans+=r[c[i]+w[c[i]]];
			}
			printf("%d ",ans);
		}
    	cout<<endl;
	}
	return 0;
}
/*
5 3
1 2
2 3
3 4
4 5
4 3 2 1 0
1 5
2 4
1 2
*/
2020/7/11 10:03
加载中...