当前位置: 首页 > news >正文

备案网站公共查询系统国美在线网站建设

备案网站公共查询系统,国美在线网站建设,seo综合查询爱站,wordpress 主题未翻译这类题型在 dp 中很常见#xff0c;于是做一个总结吧#xff01;#xff01;#xff01; 最经典的题#xff1a;没有上司的舞会 传送门#xff1a;没有上司的舞会 - 洛谷 状态表示#xff1a; dp[i][0] 为 以 i 为根的子树中#xff0c;选择 i 节点的最大欢乐值 d…这类题型在 dp 中很常见于是做一个总结吧 最经典的题没有上司的舞会 传送门没有上司的舞会 - 洛谷 状态表示 dp[i][0] 为 以 i 为根的子树中选择 i 节点的最大欢乐值 dp[i][1] 为 以 i 为根的子树中不选择 i 节点的最大欢乐值 状态转移方程  dp[i][0] dp[[j][1]        dp[i][1] dp[j][0]      j 为 i 的子节点 AC代码 #includebits/stdc.h using namespace std; #define int long long const int N 6e3 10; int a[N]; int h[N], e[N], ne[N], idx; bool flag[N] { 0 }; int f[N][2]; void add(int a, int b) {e[idx] b;ne[idx] h[a];h[a] idx; } void dfs(int u , int fa ) // 树形 dp 中一般都是用 dfs {for (int i h[u]; i ! -1; i ne[i]){int j e[i];dfs(j, u);f[u][0] max(f[j][0] , f[j][1] );f[u][1] f[j][0];} } void solve() {memset(h, -1, sizeof h);int n; cin n;for (int i 1; i n; i) cin a[i];for (int i 1; i n; i){int a, b;cin a b;add(b, a);flag[a] true;}int root -1;for (int i 1; i n; i){f[i][1] a[i];if (!flag[i]) root i;}dfs(root, -1 );cout max (f[root][1], f[root][0]) endl; } signed main() {int tt 1;while (tt--)solve();return 0; } 再来一道经典题目选课 树形dp 点 传送门[CTSC1997] 选课 - 洛谷 状态表示 dp[i][[j] 以 i 为根的子树中选择 j 个节点的最大学分 状态转移方程 dp[i][j] dp[i][j - k] dp[t][k] t 为 j 的子节点 k 是从子树中选择 k 个节点 注意 1.你要统计子树中节点的个数 2. 需要假设一个虚拟源节点因此要把 m AC代码 #includebits/stdc.h using namespace std; #define int long long const int N 620; int f[N][N]; int n, m; int h[N], e[N], ne[N], idx, score[N]; int Size[N]; void add(int a, int b) {e[idx] b; ne[idx] h[a]; h[a] idx; } void dfs(int u, int fa) {Size[u] 1;f[u][1] score[u];for (int i h[u]; i ! -1; i ne[i]){int j e[i];if (j fa)continue;dfs(j, u);Size[u] Size[j];for (int t min(m, Size[u]); t; t--) // 注意 t 要从大到小遍历// 如果 t 要从小到大遍历就会导致当 t 变大时更新最新状态时会用到这个子树刚刚更新的状态{for (int k min(Size[j], t - 1); k 0; k--){f[u][t] max(f[u][t], f[u][t - k ] f[j][k] );}}} } signed main() {memset(h, -1, sizeof h);cin n m;m;for (int i 1; i n; i){int x; cin x; add(i, x); add(x, i);cin score[i];}dfs(0, -1);cout f[0][m] endl;return 0; } 经典题目二叉苹果树树形dp 边 传送门https://www.luogu.com.cn/problem/P2015 状态表示dp[i][j] 以 i 为根的子树中保留 j 条边的最多苹果树 这道题有一个隐含的条件当某条边被保留下来时从根节点到这条边的路径上的所有边也都必须保留下来 状态转移方程 dp[i][j] max( dp[i][j] , dp[i][j-k-1] dp[t][k] w[i] ) t 为子节点k是值子树中选择 k 条边 注意这个题要统计子树中边的条数 AC代码 #includebits/stdc.h using namespace std; const int N 220; int f[N][N]; int h[N] , e[N] , ne[N] , idx , w[N]; int Size[N]; int n , m; void add( int a , int b , int c ) {w[idx] c ; e[idx] b; ne[idx] h[a] ; h[a] idx; } void dfs( int u , int fa ) {for( int i h[u] ; i ! -1 ; i ne[i] ){int j e[i];if( j fa )continue;dfs( j , u );Size[u] Size[j] 1;for( int t min( Size[u] , m ) ; t ; t-- ){for( int k min(Size[j] , t - 1 ) ; k 0 ; k-- ){f[u][t] max( f[u][t] , f[u][t-k-1] f[j][k] w[i] );}}} } signed main() {memset( h , -1 , sizeof h );cin n m;for( int i 0 ; i n - 1; i ){int a , b , c; cin a b c;add( a , b ,c );add( b , a , c );}dfs( 1 , -1 );cout f[1][m] endl;return 0; }
http://www.hkea.cn/news/14458545/

相关文章:

  • php网站开发推荐书籍wordpress底部图片
  • 有高并发 高访问量网站开发阿里云网站空间主机
  • 南京网站制作有限公司wordpress批量拿shell
  • 学校网站建设设计方案深圳的小型网络公司
  • 徐州网站推广公司广州网站建设公司嘉御
  • 网站建设超链接制作页面模板怎么没有了
  • 单网页网站如何做朝阳网络推广
  • 外贸如何建立网站完整个人网页html
  • 企业门户网站模板html平面设计公司工作室
  • 重庆网站网络推广推广金坛网页定制
  • 网站网页设计基本理论比价网站 源码
  • 怎么编辑网站内容wordpress怎么屏蔽注册链接
  • 做网站商丘c语言软件开发和网站开发区别
  • 找网站建设公司哪家最好智慧团建网站登录电脑版
  • 宁波百度网站建设番禺网站开发哪家好
  • 家纺公司网站模版云建站源码
  • 汕头企业网站推广技巧中国企业信息公示网登录官网
  • 网站开发用框架开发的优缺点教育网站制作开发
  • 无锡市做网站深圳建设银行宝安支行网站
  • 最大的免费网站建设深圳招标信息网
  • 北京市建设工程第四检测所网站网站备案 异地
  • 微网站手机制作做it行业招标网站
  • 电子商务网站建设题温州网站建设seo
  • 湖南网站建设欧黎明成都旅游景点排名前十
  • 什么是网站开发设计与实现综合网站建设课程设计
  • .net网站内容管理系统中小学网站建设论文
  • 网站做图片的大小网站怎样获得利润
  • 代做广联达 的网站海口专注海南网站建设
  • 南京网站制作公司报价佛山企业建网站
  • 亿源科技网站建设网站建设哪里便宜