震惊!此题如此惊悚!
查看原帖
震惊!此题如此惊悚!
200930
QianianXY楼主2020/9/18 20:54

我真的不是标题党

调了一个晚上了老是剩个点Unexpected end of file-int32 expected.

看了下本题讨论区发现不少人也有这种情况。

但是他们又莫名其妙地自己调好了,也没有说是怎么做到的。(有兴趣者自己翻本题讨论区)

太诡异了吧

现在我只求求有个dalao能帮我解决这个问题

附代码:P2323

#include <bits/stdc++.h>
#define rei register int
#define N 40010
using namespace std;

int n, m, k, f[N], ans, sum, cnt;

struct edge
{
	int x, y, c1, c2, num;
} a[N], b[N];

struct arr
{
	int num, lev;	
}q[N], out[N];

inline int read()
{
	int x = 0, f = 1; char ch = getchar();
	while (!isdigit(ch)) {if (ch == '-') f = -f; ch = getchar();}
	while (isdigit(ch)) {x = x * 10 + ch - 48; ch = getchar();}
	return x * f;
}

inline bool cmp1(const edge &a, const edge &b) {return a.c1 < b.c1;}
inline bool cmp2(const edge &a, const edge &b) {return min(a.c1, a.c2) < min(b.c1, b.c2);}
inline bool cmpArr(const arr &a, const arr &b) {return a.num < b.num;}

inline int find(int x)
{
	if (f[x] != x) f[x] = find(f[x]);
	return f[x];
}

int main()
{
	//freopen("a.txt", "r", stdin);
	n = read(); k = read(); m = read(); 
	for (rei i = 1; i < m; i++)
	{
		b[i].x = a[i].x = read(); 
		b[i].y = a[i].y = read(); 
		b[i].c1 = a[i].c1 = read(); 
		b[i].c2 = a[i].c2 = read(); 
		a[i].num = b[i].num = i;
	}

	for (rei i = 1; i <= n; i++) f[i] = i;
	sort(a + 1, a + m + 1, cmp1);
	sort(b + 1, b + m + 1, cmp2);

	for (rei i = 1, x1, x2; sum < k && sum < n - 1; i++)
	{
		x1 = find(a[i].x);
		x2 = find(a[i].y);
		if (x1 != x2) 
		{
			f[x1] = x2;
			sum++;
			ans = max(ans, a[i].c1);
			q[++cnt].num = a[i].num;
			q[cnt].lev = 1;
		}
	}
	if (sum >= n - 1)
	{
		printf("%d\n", ans);
		return 0;
	}
	for (rei i = 1, x1, x2; sum < n - 1; i++)
	{
		x1 = find(b[i].x);
		x2 = find(b[i].y);
		if (x1 != x2)
		{
			f[x1] = x2;
			sum++;
			ans = max(ans, b[i].c2);
			q[++cnt].num = b[i].num;
			if (b[i].c2 < b[i].c1)
				q[cnt].lev = 2;
			else
				q[cnt].lev = 1;
		}
	}
	sort(q + 1, q + 1 + cnt, cmpArr);
	printf("%d\n", ans);
	for (rei i = 1; i <= cnt; i++)
		printf("%d %d\n", q[i].num, q[i].lev);
	return 0;
}
2020/9/18 20:54
加载中...