#1676 : 树上的等差数列 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵包含N个节点的无根树,节点编号1~N.其中每个节点都具有一个权值,第i个节点的权值是Ai. 小Hi希望你能找到树上的一条最长路径,满足沿着路径经过的节点的权值序列恰好构成等差数列. 输入 第一行包含一个整数N. 第二行包含N个整数A1, A2, ... AN. 以下N-1行,每行包含两个整数U和V,代表节点U和V之间有一条边相连. 对于50%的数据,1 ≤ N ≤ 1000 对于…
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1317经典问题:树上最长路,边权可以为负值的,树形dp,不能用两边dfs.反例:5 41 2 22 3 12 4 -1004 5 10写树形dp的时候,WA了好多次,错误在于:记录单链的时候,一个节点的最长单链不一定等于:边权+孩子的最长单链还可以不选孩子,只要边权就行!!!!!!如果边权非负的话,就是 边权+孩子的最长单链 了. 思路: dp[u][0],记录的是以u为根结点的子树中的最长路 d…
题目:https://vijos.org/p/1892 分析:(100分其实用到各种c++优化,没什么实际意义,所以弄70就可以了) 题目很简单,很容易想出用树形DP,但是求方案数的时候,满满都是细节……,本渣考试时候就跪了……只能膜拜神犇代码…… #include <cstdio> #include <cstring> //#include <algorithm> using namespace std; typedef long long LL; ; struct…
其实我还不大会树形DP 此题就当练手叭,缕一下思路就好 题目链接 BZOJ4033 题目大意就是给一棵树,对一部分点染成黑色,剩下的为白色,问所有同色点距离之和....... 简明扼要的题意,然额我不会QAQ 大概意思是要,枚举父亲节点分给字节点黑点k的个数,然后 子树内的白点数*树外的白点数*边权+子树内黑点数*子树外黑点数*边权 的最大值即答案 #include <iostream> #include <algorithm> #include <cstdio> #i…
https://vijos.org/p/1892 这个必须得卡评测机+手动开栈才能卡过QAQ 手动开栈我百度的... int size=256<<20; //256MB char *p=(char*)malloc(size)+size; __asm__("movl %0, %%esp\n" :: "r"(p)); 然后我交了无数发,然后才卡过.... 我们设状态 f[i][0]表示i节点与儿子的边一个也不选 f[i][1]表示i节点只选一条与儿子的边 g…
A B C #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #define TS printf("!!!\n") #define pb push_back #define inf 1e9 //std::ios::sync_with_stdio(false); using namespace std; //priority_queue<int,…
题目 洛谷 P4322 [JSOI2016]最佳团体 Description 茜茜的舞蹈团队一共有\(N\)名候选人,这些候选人从\(1\)到\(N\)编号.方便起见,茜茜的编号是\(0\)号.每个候选人都由一位编号比他小的候选人\(R_i\)推荐.如果\(R_i=0\)则说明这个候选人是茜茜自己看上的.为了保证团队的和谐,茜茜需要保证,如果招募了候选人\(i\),那么候选人\(R_i\)也一定需要在团队中.当然了,茜茜自己总是在团队里的.每一个候选人都有一个能力值\(P_i\),也有一个招募费…
树上的等差数列 题目描述 给定一棵包含 \(N\) 个节点的无根树,节点编号 \(1\to N\) .其中每个节点都具有一个权值,第 \(i\) 个节点的权值是 \(A_i\) . 小 \(Hi\) 希望你能找到树上的一条最长路径,满足沿着路径经过的节点的权值序列恰好构成等差数列. 输入格式 第一行包含一个整数 \(N\) . 第二行包含 \(N\) 个整数 \(A_1, A_2, ... A_N\). 以下 \(N-1\) 行,每行包含两个整数 \(U\) 和 \(V\) ,代表节点 \(U\…
ZJK的黑OJ zjk开了一家"善良OJ".这其实是家黑OJ.每AC一道题,网站便会自动在电脑上安装一种木马.zjk通过窃取信息获取收益(如网游帐号.OI资料.和KK的照片等等). 作为一名资深黑客,老Z某日突然发现,"善良OJ"上的木马,自己电脑上都没有.这可十分让他过意不去.老Z决定通过多A题,来丰富自己电脑的病毒库. 经过调查,老Z发现,很多木马是不能共存的.比如"和谐"木马与"团结"木马,两者只能任选其一.然而,老Z是…
树的直径: 利用了树的直径的一个性质:距某个点最远的叶子节点一定是树的某一条直径的端点. 先从任意一顶点a出发,bfs找到离它最远的一个叶子顶点b,然后再从b出发bfs找到离b最远的顶点c,那么b和c之间的距离就是树的直径. 用dfs也可以. 模板: ; int head[N]; int dis[N]; bool vis[N]; ,b,mxn=; struct edge { int to,w,next; }edge[N]; void add_edge(int u,int v,int w) { e…