讨论 / 怎么O(n)也超3个点
yjw 2013-07-18 07:42:00
点我顶贴 收藏 删除
#include<iostream>

#include<fstream>

using namespace std;

long sum[200001][51],a[200001],b[200001],c[200001];

long long ans=0;

int main()

{

memset(sum,0,sizeof(sum));

memset(a,0,sizeof(a));

memset(b,0,sizeof(b));

memset(c,0,sizeof(c));

long i,k,n,s;

cin>>n>>k>>s;

for (i=1;i<=n;i++)

{

cin>>b[i]>>c[i];

memcpy(sum[i],sum[i-1],sizeof(sum[i-1]));

sum[i][b[i]]++;

if (c[i]<=s) a[i]=i;

else a[i]=a[i-1];

}

for (i=2;i<=n;i++)

if (a[i]==i)

{

if (sum[i][b[i]]>1) ans=ans+sum[i][b[i]]-1;

}

else ans=ans+sum[a[i]][b[i]];

cout<<ans;

return 0;

}

#1 107229HR@2013-07-17 08:49:00
回复 删除
cin.....

int main()

{

后面加

ios::sync_with_stdio(false);

PS:AC后求把积分分给我

#2 yjw@2013-07-18 07:20:00
回复 删除
回复 沙发107229HR 的帖子

为什么加了就可以?

#3 107229HR@2013-07-18 07:42:00
回复 删除
回复 板凳yjw 的帖子

把cin和scanf同步关了,cin不用检查与scanf同步的问题

查看更多回复
提交回复