好奇为啥会炸
查看原帖
好奇为啥会炸
1268524
DX3906_ourstar楼主2024/7/26 11:01
#include<iostream>
#include<cstring>
#define re register
#define INF 0x3f3f3f3f
#define int long long
#define zhuang_bi ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;

const int N = 1e4 - 1;

int cnt,n,m;
int head[N],v[N],dp[N][N];

struct e{
	int fy,a,next;
}e[N];

inline void cs(){
	zhuang_bi
	memset(head,-1,sizeof(head));
	memset(dp,- INF,sizeof(dp));
}

inline void add(int u,int v,int a){
	e[++ cnt].a = a;
	e[cnt].next = head[u];
	e[cnt].fy = v;
	head[u] = cnt;
}

inline int find(int u){
	if(u > n - m){
		dp[u][1] = v[u];
		return 1;
	}
	int sum = 0;
	for(re int i = head[u];i > -1;i = e[i].next){
		sum += find(e[i].a);
		for(re int j = sum;j > 0;j --){
			for(re int k = 1;k <= j;k ++){
				if(j >= k){
					dp[u][j] = max(dp[u][j],dp[u][j - k] + dp[e[i].a][k] - e[i].fy);
				}
			}
		}
	}
	return sum;
}

signed main(){
	cs();
	cin>>n>>m;
	for(re int i = 1;i <= n - m;i ++){
		int k;
		cin>>k;
		for(re int j = 1;j <= k;j ++){
			int a,b;
			cin>>a>>b;
			add(i,a,b);
		}
	}
	for(re int i = n - m + 1;i <= n;i ++){
		cin>>v[i];
	}
	for(re int i = 1;i <= n;i ++){
		dp[i][0] = 0;
	}
	find(1);
	for(re int i = m;i >= 0;i --){
		if(dp[1][i] >= 0){
			cout<<i;
			return 0;
		}
	}
}


/*
*********************************************
                   _ooOoo_                   
                  o8888888o                  
                  88" . "88                  
                  (| -_- |)                  
                  O\  =  /O                  
               ____/`---'\____               
             .'  \\|     |//  `.             
            /  \\|||  :  |||//  \            
           /  _||||| -:- |||||-  \            
           |   | \\\  -  /// |   |           
           | \_|  ''\---/''  |   |           
           \  .-\__  `-`  ___/-. /           
         ___`. .'  /--.--\  `. . __          
      ."" '<  `.___\_<|>_/___.'  >'"".       
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |     
     \  \ `-.   \_ __\ /__ _/   .-` /  /     
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='                   
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           佛祖保佑       永无BUG
*/
2024/7/26 11:01
加载中...