yzh的神仙題

U66905?zz題?

考慮一個點權值被計算了多少次。。。不知

所以對未來承諾,方便直接算上總數!

然后其實是給邊定向,即先刪除fa和son的哪一個

f[x][j],會計算j次

無法轉移

f[x][j][k],其中會從子樹計算k次。

當邊從兒子指向父親,枚舉就是O(n^4)的了,還不能sz剪枝

轉移是O(n^4)的

(其實這里記錄一個前綴和之類的就行了)

可以用f[i][j],僅往i子樹里選擇j個最大值

g[i][j],往i子樹外額外選擇j個最大值

然后就可以轉移了

?

注意:

權值有負數,而每個兒子強制必須選的,所以不能累計取max

// luogu-judger-enable-o2
#pragma GCC optimize("O3,Ofast,inline,unroll-all-loops,-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,popcnt")
#include<bits/stdc++.h>
#define reg register int
#define il inline
#define fi first
#define se second
#define mk(a,b) make_pair(a,b)
#define numb (ch^'0')
using namespace std;
typedef long long ll;
template<class T>il void rd(T &x){char ch;x=0;bool fl=false;while(!isdigit(ch=getchar()))(ch=='-')&&(fl=true);for(x=numb;isdigit(ch=getchar());x=x*10+numb);(fl==true)&&(x=-x);
}
template<class T>il void output(T x){if(x/10)output(x/10);putchar(x%10+'0');}
template<class T>il void ot(T x){if(x<0) putchar('-'),x=-x;output(x);putchar(' ');}
template<class T>il void prt(T a[],int st,int nd){for(reg i=st;i<=nd;++i) ot(a[i]);putchar('\n');}namespace Miracle{
const int N=401;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n;
struct node{int nxt,to;
}e[2*N];
int hd[N],cnt;
ll d[N];
void add(int x,int y){e[++cnt].nxt=hd[x];e[cnt].to=y;hd[x]=cnt;
}
ll h[N][N][N];
ll f[N][N],g[N][N];
int sz[N];
void dfs(int x){
//    cout<<" dfs "<<x<<endl;sz[x]=1;for(reg j=1;j<=n;++j){h[x][j][1]=d[x]*j;}
//    bool fl=false;for(reg i=hd[x];i;i=e[i].nxt){int y=e[i].to;dfs(y);
//        fl=true;for(reg j=1;j<=n;++j){for(reg k=min(j,sz[x]+sz[y]);k>=1;--k){ll old=h[x][j][k];h[x][j][k]=-0x3f3f3f3f3f3f3f3f;for(reg p=min(sz[x],k-1);p>=1;--p){h[x][j][k]=max(h[x][j][k],h[x][j][p]+f[y][k-p]);}h[x][j][k]=max(h[x][j][k],old+g[y][j]);}}sz[x]+=sz[y];}
//    cout<<" now "<<x<<endl;
//    if(!fl){
//        cout<<" leaf "<<endl;        
//        for(reg j=1;j<=n;++j){
//            h[x][j][1]=d[x]*j;
//        }
//    }for(reg j=1;j<=n;++j){
//            cout<<" jjj "<<j<<endl; f[x][j]=h[x][j][j];for(reg k=1;k<=sz[x]&&k+j<=n;++k){g[x][j]=max(g[x][j],h[x][j+k][k]);}
//            cout<<" f "<<f[x][j]<<" g "<<g[x][j]<<" "<<endl;
        }
}
int main(){rd(n);for(reg i=1;i<=n;++i) rd(d[i]);int y=0;for(reg x=2;x<=n;++x){rd(y);add(y,x);}memset(h,0xcf,sizeof h);memset(f,0xcf,sizeof f);memset(g,0xcf,sizeof g);dfs(1);ll ans=-0x3f3f3f3f3f3f3f3f;for(reg j=1;j<=n;++j){ans=max(ans,f[1][j]);}printf("%lld",ans);return 0;
}}
signed main(){
//    freopen("data.in","r",stdin);
//    freopen("my.out","w",stdout);
    Miracle::main();return 0;
}/*Author: *Miracle*Date: 2019/3/29 20:22:41
*/
View Code

?

轉載于:https://www.cnblogs.com/Miracevin/p/10624555.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387121.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387121.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387121.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

04 函數

內置函數 Python內置了很多有用的函數&#xff0c;可以直接調用。 要調用一個函數&#xff0c;需要知道函數的名稱和參數。 可以直接從Python的官方網站查看文檔&#xff1a;http://docs.python.org/2/library >>> abs(-20) >>> help(abs) >>>…

iview render的時候可以寫控件的基本格式

render: (h, params) > {return h(div, [h(Button, {props: {type: id,size: small},style: {marginRight: 5px},on: {click: () > {this.pojectshow(this.datatable[params.index].id)}}}, 詳情),h(Button, {props: {type: id,size: small},style: {marginRight: 5px},o…

ES6基本使用

var let 度可用于聲明變量. 區別&#xff1a;1、let&#xff1a;只在let命令所在代碼塊內有效 2、let 不存在變量提升&#xff08;內部影響不到外部&#xff09; var b [];for(var j0;j<10;j){let dj;b[j]function(){console.log(d);};}b[3]() //3 3、let 不允許在相同作用…

Axios的Vue插件(添加全局請求/響應攔截器)

/*** file Axios的Vue插件&#xff08;添加全局請求/響應攔截器&#xff09;*/// https://github.com/mzabriskie/axios import axios from axios// 攔截request,設置全局請求為ajax請求 axios.interceptors.request.use((config) > {config.headers[X-Requested-With] XML…

05 切片、迭代、列表生成

切片 >>> L [Adam, Lisa, Bart, Paul] >>> L[0:3] #取前3個元素 >>> L[:3] >>> L[1:3] >>> L[:] >>> L[::2] #第三個參數表示每2個元素取一個元素&#xff0c;也就是隔一個取一個 [Adam,Bart] >>>…

一個例子徹底搞懂C++的虛函數和純虛函數

學習C的多態性&#xff0c;你必然聽過虛函數的概念&#xff0c;你必然知道有關她的種種語法&#xff0c;但你未必了解她為什么要那樣做&#xff0c;未必了解她種種行為背后的所思所想。深知你不想在流于表面語法上的蜻蜓點水似是而非&#xff0c;今天我們就一起來揭開擋在你和虛…

利用Caffe實現mnist的數據訓練

阿里云的參考文檔&#xff1a;https://help.aliyun.com/document_detail/49571.html在文檔里提供了caffe的一個案例&#xff0c;利用Caffe實現mnist的數據訓練。準備的數據源可以在“深度學習案例代碼及數據下載”頁找到Caffe數據下載并解壓。要訓練自己的圖片&#xff0c;還是…

06 函數式編程

1 函數式編程簡介 函數&#xff1a;function 函數式&#xff1a;functional 一種編程范式 特點&#xff1a; 把計算視為函數而非指令 純函數式編程&#xff1a;不需要變量&#xff0c;沒有副作用&#xff0c;測試簡單 支持高階函數&#xff0c;代碼簡潔 Python支持的函數式…

Android SDK開發

目前我們的應用內使用了 ArcFace 的人臉檢測功能&#xff0c;其他的我們并不了解&#xff0c;所以這里就和大家分享一下我們的集成過程和一些使用心得 集成 ArcFace FD 的集成過程非常簡單 在 ArcFace FD 的文檔上有說明支持的系統為 5.0 及以上系統&#xff0c;但其實在 4.4 系…

jQuery WeUI 上傳

jQuery WeUI 是專為微信公眾賬號開發而設計的一個框架&#xff0c;jQuery WeUI的官網&#xff1a;http://jqweui.com/ 需求&#xff1a;需要在微信公眾號網頁添加上傳圖片功能 技術選型&#xff1a;實現上傳圖片功能可選百度的WebUploader、餓了么的Element和微信的jQuery WeUI…

07 模塊

模塊和包的概念 等同于java中的Package 模塊名文件名&#xff08;無后綴&#xff09; 在文件系統中&#xff0c;包就是文件夾&#xff0c;模塊就是xxx.py文件 每層包下面都有__init__.py文件 導入模塊 >>> import math >>> math.pow(2, 0.5) >>…

1.rabbitmq 集群版安裝及使用nginx進行四層負載均衡設置

1.安裝erlang 需要注意erlang的版本是否滿足rabbitmq的需求 這里用到的版本是&#xff1a;Erlang 19.0.4 RabbitMQ 3.6.15 wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpmrpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm yum -y inst…

使用WEUI uploader上傳圖片

使用WEUI uploader上傳圖片&#xff0c;博主費了很大的勁總算找到完整的了&#xff0c;并且帶后臺接收代碼&#xff0c;有需要的朋友拿去吧&#xff0c;親測可用&#xff01; 一、html代碼<link rel"stylesheet" href"https://res.wx.qq.com/open/libs/weui/…

08 面向對象編程

1 介紹 面向對象編程是一種程序設計范式 把程序看做不同對象的相互調用&#xff0c;對現實世界建立對象模型。 面向對象編程的基本思想&#xff1a; 類和實例&#xff1a; 類用于定義抽象類型 實例根據類的定義被創建出來 2 定義類并創建實例 類通過class關鍵字定義&…

H5+jqweui實現手機端圖片壓縮上傳 Base64

H5jqweui實現手機端圖片壓縮上傳主要功能&#xff0c;使用H5的formData上傳base64格式的圖片&#xff0c;canvas壓縮圖片&#xff0c;前端樣式使用weui&#xff0c;為方便起見&#xff0c;使用了jquery封裝過的weui&#xff0c;jqweui。話不多少&#xff0c;開始上代碼。前端代…

09 類的繼承

繼承一個類 class Person(object): def __init__(self, name, gender): self.name name self.gender gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score score 判斷類型 isinstance()可以…

vue 中v-if 與v-show 的區別

相同點或者說功能&#xff0c;都可以動態操作dom元素的顯示隱藏 不同點&#xff1a; 1.手段&#xff1a;v-if是動態的向DOM樹內添加或者刪除DOM元素&#xff1b;v-show是通過設置DOM元素的display樣式屬性控制顯隱&#xff1b;2.編譯過程&#xff1a;v-if切換有一個局部編譯/卸…

vue打包后放在 nginx部署時候的配置文件

部署了三套程序,默認的&#xff0c;admin和design#user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include …

淘淘商城之技術選型、開發工具和環境、人員配置

一、技術選型 1&#xff09;Spring、SpringMVC、Mybatis 2&#xff09;JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor&#xff08;富文本編輯器&#xff09;、CSSDIV 3&#xff09;Redis&#xff08;緩存服務器&#xff09; 4&#xff09;Solr&#xff08;搜索&#x…