QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#556472#9238. Treezhouhuanyi0 0ms24656kbC++171.6kb2024-09-10 18:42:512024-09-10 18:42:52

Judging History

你现在查看的是最新测评结果

  • [2024-09-10 18:42:52]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:24656kb
  • [2024-09-10 18:42:51]
  • 提交

answer

#include "tree.h"
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#define N 400000
using namespace std;
struct reads
{
	int num;
	long long A,B;
	bool operator < (const reads &t)const
	{
		return num>t.num;	
	}
};
reads tong[N+1];
int n,L,R,ds,scnt,length,lg[N+1],rt[N+1],p[N+1],delta[N+1],sz[N+1],cnt[N+1];
bool used[N+1];
vector<int>E[N+1];
bool cmp(int x,int y)
{
	return delta[x]>delta[y];
}
void adder(int x,int d)
{
	tong[++length]=(reads){x,1ll*d*x,-d};
	return;
}
int find(int x)
{
	if (rt[x]==x) return x;
	return rt[x]=find(rt[x]);
}
void unionn(int x,int y)
{
	adder(cnt[x]-(sz[x]-1),-ds),adder(cnt[y]-(sz[y]-1),-ds),sz[y]+=sz[x],cnt[y]+=cnt[x],adder(cnt[y]-sz[y],ds),rt[x]=y;
	return;
}
void init(std::vector<int> P, std::vector<int> W)
{
	int x;
	for (int i=2;i<=N;++i) lg[i]=lg[i>>1]+1;
	n=P.size();
	for (int i=1;i<n;++i) E[P[i]].push_back(i);
	for (int i=0;i<n;++i) delta[i]=W[i],p[i]=rt[i]=i,sz[i]=1,cnt[i]=E[i].size();
	sort(p,p+n,cmp);
	for (int i=0;i<n;++i)
	{
		x=p[i];
		if (!E[x].empty())
		{
			ds=delta[x],used[x]=1,adder(cnt[x]-(sz[x]-1),ds);
			for (int j=0;j<E[x].size();++j)
				if (used[E[x][j]])
					unionn(E[x][j],x);
			if (x&&used[P[x]]) unionn(x,find(P[x]));
		}
		else scnt++;
	}
	sort(tong+1,tong+length+1);
	for (int i=1;i<=length;++i) tong[i].A+=tong[i-1].A,tong[i].B+=tong[i-1].B;
	return;
}
long long query(int sl,int sr)
{
	int ps=0;
	for (int i=lg[length];i>=0;--i)
		if (ps+(1<<i)<=length&&tong[ps+(1<<i)].num>sr/sl)
			ps+=(1<<i);
	return (tong[ps].A+scnt)*sl+tong[ps].B*sr;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 0
Runtime Error

input:

ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0
200000
0 0 2 2 4 5 4 5 8 9 10 9 8 10 14 15 14 15 18 19 20 21 18 22 21 24 24 27 22 27 30 31 31 33 30 19 20 33 38 38 40 41 41 43 44 43 44 47 48 49 50 49 50 53 54 53 48 54 58 58 60 60 62 62 64 64 66 66 67 67 70 71 72 71 72 75 70 75 78 78 80 81 80 81 84 85 86 86 88 89 90...

output:


result:


Subtask #2:

score: 0
Wrong Answer

Test #11:

score: 0
Wrong Answer
time: 0ms
memory: 24656kb

input:

ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0
2000
0 0 1 1 4 4 6 7 6 7 10 10 12 12 14 15 14 15 18 19 19 21 18 21 24 24 26 27 26 27 30 30 32 32 34 34 36 37 38 39 39 41 37 38 36 41 46 47 48 47 48 51 51 53 54 54 56 56 58 58 60 61 61 63 64 64 66 67 66 67 70 71 72 72 74 75 76 76 75 74 70 77 63 60 77 85 85 87 87 89 89...

output:

11XNDQnkdGXK8y3iaqfMvWKu4vqrBbz1
OK
-92687948509
-332906103569
-430806332801
-20622501991
-546156371410
-317269261400
-85436079677
-16769946674
-66626544894
-139825095917

result:

wrong answer 3rd lines differ - on the 1st token, expected: '175909322571', found: '-92687948509'

Subtask #3:

score: 0
Skipped

Dependency #2:

0%

Subtask #4:

score: 0
Runtime Error

Test #33:

score: 0
Runtime Error

input:

ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0
200000
0 1 0 1 2 2 6 6 7 7 10 11 11 13 14 13 14 17 10 17 20 21 22 22 23 21 20 23 28 29 28 29 32 33 34 32 33 34 38 39 39 40 42 42 44 45 46 47 48 45 46 48 52 53 53 54 56 56 58 58 60 61 62 63 63 65 61 66 62 66 70 71 71 72 72 75 60 65 75 79 52 44 70 47 40 54 79 87 87 89 ...

output:


result:


Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Runtime Error

Test #47:

score: 0
Runtime Error

input:

ZYKrr4gCMcKeyfk6kbZU5k4ZyW3sAGT0
200000
0 1 0 1 4 5 5 7 7 9 9 11 12 13 13 11 14 12 14 19 20 19 20 23 24 25 26 26 28 28 30 31 32 33 33 35 35 30 32 31 37 41 42 43 24 44 46 46 48 49 50 51 51 53 54 55 55 56 56 48 50 54 44 59 49 25 59 67 68 67 68 71 71 72 72 75 76 76 78 79 80 37 80 83 83 85 86 85 79 41 8...

output:


result:


Subtask #7:

score: 0
Skipped

Dependency #1:

0%