QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#101741#3859. Organizing SWERCPetroTarnavskyi#Compile Error//C++172.8kb2023-04-30 23:50:582023-04-30 23:51:02

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-04-30 23:51:02]
  • Judged
  • [2023-04-30 23:50:58]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;

#define SZ(a) (int)a.size()
#define ALL(a) a.begin(), a.end()
#define FOR(i, a, b) for (int i = (a); i<(b); ++i)
#define RFOR(i, b, a) for (int i = (b)-1; i>=(a); --i)
#define MP make_pair
#define PB push_back
#define F first
#define S second

typedef long long LL;
typedef pair<int, int> PII;
typedef vector<int> VI;

const int N = 16'000'000;
vector<PII> g[N];
int I = 0;

struct Segtree
{
	int n;
	VI t;
	
	void init(int nn)
	{
		n = 1;
		while (n < nn) n *= 2;
		t.resize(n * 2 - 1);
	}
	
	void build(int v, int l, int r, VI& idx)
	{
		if (l + 1 == r)
		{
			if (l < SZ(idx))
				t[v] = idx[l];
			else
				t[v] = I++;
			return;
		}
		t[v] = I++;
		int m = (l + r) / 2;
		build(v * 2 + 1, l, m);
		build(v * 2 + 2, m, r);
		g[t[v]].PB({t[v * 2 + 1], 0});
		g[t[v]].PB({t[v * 2 + 2], 0});
	}
	
	void build(int nn, VI& idx)
	{
		init(nn);
		build(0, 0, n, idx);
	}
	
	void add(int v, int tl, int tr, int l, int r, int x)
	{
		if (l >= tr || tl >= r) return;
		if (l <= tl && tr <= r)
		{
			g[x].PB({t[v], 1});
			return;
		}
		int m = (tl + tr) / 2;
		add(v * 2 + 1, tl, m, l, r, x);
		add(v * 2 + 2, m, tr, l, r, x);
	}
	
	void add(int l, int r, int x)
	{
		return add(0, 0, n, l, r, x);
	}
};

struct BigSegtree
{
	struct Node
	{
		int idx;
		VI vec;
		Segtree st[2];
	};
	
	int n;
	vector<Node> t;
	
	void init(int nn)
	{
		n = 1;
		while (n < nn) n *= 2;
		t.resize(n);
	}
	
	void build(int v, int l, int r, vector<VI>& vec)
	{
		t[v].idx = I++;
		if (l + 1 == r)
		{
			if (l < SZ(vec))
			{
				t[v].vec = vec[l];
				FOR(T, 0, 2)
				{
					t[v].st[T].build(SZ(vec[l]));
				}
			}
			return;
		}
		int m = (l + r) / 2;
		build(v * 2 + 1, l, m, vec);
		build(v * 2 + 1, m, r, vec);
	}
	
	void build(vector<VI>& vec)
	{
		init(SZ(vec));
		build(0, 0, n, vec);
	}

	void add_edge(int v, int l, int r, int lx, int rx, int ly, int ry, int T, int i)
	{
		if (l >= rx || lx >= r) return;
		if (l <= lx && rx <= r)
		{
			int L = lower_bount(ALL(t[v].idx), ly) - t[v].idx.begin();
			int R = lower_bount(ALL(t[v].idx), ry) - t[v].idx.begin();
			t[v].st[T].add(L, R, i);
			return;
		}
		int m = (l + r) / 2;
		add_edge(v * 2 + 1, l, m, lx, rx, ly, ry, T, i);
		add_edge(v * 2 + 2, m, r, lx, rx, ly, ry, T, i);
	}
	
	void add_edge(int lx, int rx, int ly, int ry, int T, int i)
	{
		add_edge(0, 0, n, lx, rx, ly, ry, T, i);
	}
	
	
};

void solve()
{
	int n, a, b;
	cin >> n >> a >> b;
	a--, b--;
	VI v(n);
	vector<VI> vec(n);
	FOR(i, 0, n) cin >> v[i];
	FOR(i, 0, n)
	{
		
	}
}


int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	int t;
	cin >> t;
	while (t--)
	{
		solve();
	}
	
	return 0;
}

详细

answer.code: In member function ‘void Segtree::build(int, int, int, VI&)’:
answer.code:45:22: error: no matching function for call to ‘Segtree::build(int, int&, int&)’
   45 |                 build(v * 2 + 1, l, m);
      |                 ~~~~~^~~~~~~~~~~~~~~~~
answer.code:33:14: note: candidate: ‘void Segtree::build(int, int, int, VI&)’
   33 |         void build(int v, int l, int r, VI& idx)
      |              ^~~~~
answer.code:33:14: note:   candidate expects 4 arguments, 3 provided
answer.code:51:14: note: candidate: ‘void Segtree::build(int, VI&)’
   51 |         void build(int nn, VI& idx)
      |              ^~~~~
answer.code:51:14: note:   candidate expects 2 arguments, 3 provided
answer.code:46:22: error: no matching function for call to ‘Segtree::build(int, int&, int&)’
   46 |                 build(v * 2 + 2, m, r);
      |                 ~~~~~^~~~~~~~~~~~~~~~~
answer.code:33:14: note: candidate: ‘void Segtree::build(int, int, int, VI&)’
   33 |         void build(int v, int l, int r, VI& idx)
      |              ^~~~~
answer.code:33:14: note:   candidate expects 4 arguments, 3 provided
answer.code:51:14: note: candidate: ‘void Segtree::build(int, VI&)’
   51 |         void build(int nn, VI& idx)
      |              ^~~~~
answer.code:51:14: note:   candidate expects 2 arguments, 3 provided
answer.code: In member function ‘void BigSegtree::build(int, int, int, std::vector<std::vector<int> >&)’:
answer.code:105:57: error: no matching function for call to ‘Segtree::build(int)’
  105 |                                         t[v].st[T].build(SZ(vec[l]));
      |                                         ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
answer.code:33:14: note: candidate: ‘void Segtree::build(int, int, int, VI&)’
   33 |         void build(int v, int l, int r, VI& idx)
      |              ^~~~~
answer.code:33:14: note:   candidate expects 4 arguments, 1 provided
answer.code:51:14: note: candidate: ‘void Segtree::build(int, VI&)’
   51 |         void build(int nn, VI& idx)
      |              ^~~~~
answer.code:51:14: note:   candidate expects 2 arguments, 1 provided
answer.code: In member function ‘void BigSegtree::add_edge(int, int, int, int, int, int, int, int, int)’:
answer.code:5:18: error: request for member ‘begin’ in ‘((BigSegtree*)this)->BigSegtree::t.std::vector<BigSegtree::Node>::operator[](((std::vector<BigSegtree::Node>::size_type)v)).BigSegtree::Node::idx’, which is of non-class type ‘int’
    5 | #define ALL(a) a.begin(), a.end()
      |                  ^~~~~
answer.code:126:45: note: in expansion of macro ‘ALL’
  126 |                         int L = lower_bount(ALL(t[v].idx), ly) - t[v].idx.begin();
      |                                             ^~~
answer.code:5:29: error: request for member ‘end’ in ‘((BigSegtree*)this)->BigSegtree::t.std::vector<BigSegtree::Node>::operator[](((std::vector<BigSegtree::Node>::size_type)v)).BigSegtree::Node::idx’, which is of non-class type ‘int’
    5 | #define ALL(a) a.begin(), a.end()
      |                             ^~~
answer.code:126:45: note: in expansion of macro ‘ALL’
  126 |                         int L = lower_bount(ALL(t[v].idx), ly) - t[v].idx.begin();
      |                                             ^~~
answer.code:126:33: error: ‘lower_bount’ was not declared in this scope
  126 |                         int L = lower_bount(ALL(t[v].idx), ly) - t[v].idx.begin();
      |                                 ^~~~~~~~~~~
answer.code:126:75: error: request for member ‘begin’ in ‘((BigSegtree*)this)->BigSegtree::t.std::vector<BigSegtree::Node>::operator[](((std::vector<BigSegtree::Node>::size_type)v)).BigSegtree::Node::idx’, which is of non-class type ‘int’
  126 |                         int L = lower_bount(ALL(t[v].idx), ly) - t[v].idx.begin();
      |                                                                           ^~~~~
answer.code:5:18: error: request for member ‘begin’ in ‘((BigSegtree*)this)->BigSegtree::t.std::vector<BigSegtree::Node>::operator[](((std::vector<BigSegtree::Node>::size_type)v)).BigSegtree::Node::idx’, which is of non-class type ‘int’
    5 | #define ALL(a) a.begin(), a.end()
      |                  ^~~~~
answer.code:127:45: note: in expansion of macro ‘ALL’
  127 |                         int R = lower_bount(ALL(t[v].idx), ry) - t[v].idx.begin();
      |                                             ^~~
answer.code:5:29: error: request for member ‘end’ in ‘((BigSegtree*)this)->BigSegtree::t.std::vector<BigSegtree::Node>::operator[](((std::vector<BigSegtree::Node>::size_type)v)).BigSegtree::Node::idx’, which is of non-class type ‘int’
    5 | #define ALL(a) a.begin(), a.end()
      |                             ^~~
answer.code:127:45: note: in expansion of macro ‘ALL’
  127 |                         int R = lower_bount(ALL(t[v].idx), ry) - t[v].idx.begin();
      |                                             ^~~
answer.code:127:75: error: request for member ‘begin’ in ‘((BigSegtree*)this)->BigSegtree::t...