Gym-101908
F-Music Festival(树状数组 + 状压dp)
在音乐节去观看节目表演。总共有 n 个舞台,每个舞台有 Mi 个show,每个show给出三个参数——开始时间、结束时间和这段时间内演唱的歌曲数目,最后的要求输出能够观看的做多的节目的数量。(给出的 n 个舞台中每个至少观看一个show,如果不行,则输出-1)
样例1
输入:
3
4 1 10 100 20 30 90 40 50 95 80 100 90
1 40 50 13
2 9 29 231 30 40 525
输出:
859
样例2
输入:
3
2 13 17 99 18 19 99
2 13 14 99 15 20 99
2 13 15 99 18 20 99
输出:
-1
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#define pb queue_priority
#define ll long long
using namespace std;
struct node{
int st,ed,val,id;
}a[100005];
int dp[87000][2500];
vector<node> vec[87000];
int main(){
int n,m,st,ed,val;
int cnt = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++)