_D06 @ 2020-07-11 10:03:14
为什么我的程序在官方数据第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
*/
by Colead @ 2020-07-11 10:06:27
您的代码太过高深,蒟蒻看不懂,先%%%
但是凭借个人经验,一般是ASCII码在无意中被错误修改了。
by _D06 @ 2020-07-11 10:09:37
@WT20071112 请问一般情况下什么原因会使得ASCII码被错误修改呢?
by _D06 @ 2020-07-11 10:12:40
@WT20071112 而且为什么不使用文件输出就没有乱码呢?
by _D06 @ 2020-07-11 10:34:56
问题已解决,应该是记事本编码识别错误,使用写字板可以正常打开。
by EternalEpic @ 2020-07-11 10:37:31
@_D06 您是不是我同学?咋感觉这个ID如此熟悉
by EternalEpic @ 2020-07-11 10:38:27
@_D06 这个程序会T的,反正我写的是树链剖分,当然只要树上差分+LCA就行。
by EternalEpic @ 2020-07-11 10:39:35
@_D06 当然可能你在写subtask那就当我之前的话没说
by _D06 @ 2020-07-11 10:53:57
@刘兆洲 我确实是在做链的部分分。
by Colead @ 2020-07-11 11:12:29
@_D06
这只是猜想,我还是大蒟蒻啊!(只能说出了什么问题,具体出了什么问题嘛……)
by _D06 @ 2020-07-11 11:27:53
@WT20071112 好的,还是谢谢您的帮助。