⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pku1201.cpp

📁 这是ACM 方面的资料 是PKU的 北京大学的出来的
💻 CPP
字号:
#include <stdio.h>
#define TheMax 1000000
#define size 500001

typedef struct Node
{
	int s, e, m;
} Node;

Node d[size];
int v[size];
int min, max;
int N;

int main()
{
	int i, fd, k;
	scanf("%d", &N);
	min = TheMax;
	max = 0;
	for (i = 0; i < N; i++)
	{
		scanf("%d %d %d", &d[i].s, &d[i].e, &d[i].m);
		d[i].e++;
		if (min > d[i].s)
		{
			min = d[i].s;
		}
		if (max < d[i].e)
		{
			max = d[i].e;
		}
	}
	fd = 0;
	for (i = min; i <= max; i++)
	{
		v[i] = -TheMax;
	}
	v[min] = 0;
	for (k = min; !fd && k <= max; k++)
	{
		fd = 1;
		for (i = 0; i < N; i++)
		{
			if (v[d[i].s] != -TheMax && v[d[i].s] + d[i].m > v[d[i].e])
			{
				v[d[i].e] = v[d[i].s] + d[i].m;
				fd = 0;
			}
		}
		for (i = min; i < max; i++)
		{
			if (v[i] != -TheMax && v[i] > v[i + 1])
			{
				v[i + 1] = v[i];
				fd = 0;
			}
		}
		for (i = max; i > min; i--)
		{
			if (v[i] != -TheMax && v[i] - 1 > v[i - 1])
			{
				v[i - 1] = v[i] - 1;
				fd = 0;
			}
		}
	}
	printf("%d\n", v[max]);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -