[JSOI2018]潛入行動

1464677-20190122212942831-1626081968.png

題解

一道思路不難但是寫起來很麻煩的樹形背包

我們發現每個節點有很多信息需要保留

所以就暴力的設\(f[u][j][0/1][0/1]\)表示點u的子樹分配了j個監察器,點u有沒有被控制,點u放沒放監察器

然后就分四種情況暴力討論就好了

注意背包的時候要卡常數

代碼

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
const int M = 100005 ;
const int N = 103 ;
const int mod = 1e9 + 7 ;
using namespace std ;
inline int read() {char c = getchar() ; int x = 0 , w = 1 ;while(c>'9'||c<'0') { if(c=='-') w = -1 ; c = getchar() ; }while(c>='0' && c<='9') { x=x*10+c-'0' ; c = getchar() ; }return x*w ;  
}int n , m , num , hea[M] ;
int f[M][N][2][2] , g[N][2][2] , size[M] ;
struct E { int nxt , to ; } edge[M * 2] ;
inline void add_edge(int from , int to) {edge[++num].nxt = hea[from] ; edge[num].to = to ; hea[from] = num ;
}
void dfs(int u , int father) {size[u] = 1 ; f[u][0][0][0] = f[u][1][0][1] = 1 ;for(int i = hea[u] ; i ; i = edge[i].nxt) {int v = edge[i].to ; if(v == father) continue ; dfs(v , u) ;for(int j = 0 ; j <= min(m , size[u]) ; j ++) {g[j][0][0] = f[u][j][0][0] ; f[u][j][0][0] = 0 ;g[j][0][1] = f[u][j][0][1] ; f[u][j][0][1] = 0 ;g[j][1][0] = f[u][j][1][0] ; f[u][j][1][0] = 0 ;g[j][1][1] = f[u][j][1][1] ; f[u][j][1][1] = 0 ;}for(int j = 0 ; j <= min(size[u] , m) ; j ++) {for(int k = 0 ; k <= size[v] && j + k <= m ; k ++) {f[u][j + k][0][0] = (f[u][j + k][0][0] + 1LL * g[j][0][0] * f[v][k][1][0]) % mod ;f[u][j + k][0][1] = (f[u][j + k][0][1] + 1LL * g[j][0][1] * (f[v][k][1][0] + f[v][k][0][0]) % mod) % mod ;f[u][j + k][1][0] = ((f[u][j + k][1][0] + 1LL * g[j][1][0] * (f[v][k][1][0] + f[v][k][1][1]) % mod) % mod + 1LL * g[j][0][0] * f[v][k][1][1] % mod) % mod ;f[u][j + k][1][1] = ((f[u][j + k][1][1] + 1LL * g[j][1][1] * (((f[v][k][1][0] + f[v][k][1][1]) % mod + f[v][k][0][0] ) % mod + f[v][k][0][1]) % mod ) % mod + 1LL * g[j][0][1] * (f[v][k][0][1] + f[v][k][1][1]) % mod) % mod ;}}size[u] += size[v] ;}
}
int main() {n = read() ; m = read() ; for(int i = 1 , u , v ; i < n ; i ++) {u = read() ; v = read() ;add_edge(u , v) ; add_edge(v , u) ;}dfs(1 , 1) ;printf("%d\n",(f[1][m][1][0] + f[1][m][1][1]) % mod) ;return 0 ;
}

轉載于:https://www.cnblogs.com/beretty/p/10306252.html

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

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

相關文章

css。元素樣式、邊框樣式

1.外邊距  margin 縮寫形式&#xff1a; margin&#xff1a;上邊距  右邊距  下邊距  左邊距 margin&#xff1a;上下邊距  左右邊距 margin&#xff1a;上邊距  左右邊距  下邊距 2.內邊距  padding 縮寫形式&#xff1a; padding&#xff1a;上邊距  右邊距…

html文本對齊6,HTML對齊文本

我要像以下列方式顯示頁面上的文本&#xff1a;HTML對齊文本My Text: Text HereMy Text: More Text Here.........................................................Text from line above continued here.我有以下的標記只是為了測試&#xff1a;body {font-family: arial;}fo…

vue底部跳轉_詳解Vue底部導航欄組件

不多說直接上代碼 BottomNav.vue&#xff1a;{{item.name}}export default{props:[idx],data(){return {items:[{cls:"home",name:"首頁",push:"/home",icon:"../static/home.png",iconSelect:"../static/home_select.png"}…

Android Studio環境搭建

Android Studio環境搭建 個人博客 歡迎大家多多關注該獨立博客。 ###[csdn博客]&#xff08;http://blog.csdn.net/peace1213&#xff09; 一直想把自己的經驗分享出來&#xff0c;記得上次寫博客還是ok6410的筆記。感覺時代久遠啊。記得那個時候我還一心想搞硬件了。如今又一次…

hacktoberfest_Hacktoberfest和其他有趣的事情將在本周末在freeCodeCamp

hacktoberfestby Quincy Larson昆西拉爾森(Quincy Larson) Hacktoberfest和其他有趣的事情將在本周末在freeCodeCamp (Hacktoberfest and other fun things going on this weekend at freeCodeCamp) Earlier this month, the freeCodeCamp community turned 3 years old. And …

C# 動態創建數據庫三(MySQL)

前面有說明使用EF動態新建數據庫與表&#xff0c;數據庫使用的是SQL SERVER2008的&#xff0c;在使用MYSQL的時候還是有所不同 一、添加 EntityFramework.dll &#xff0c;System.Data.Entity.dll &#xff0c;MySql.Data, MySql.Data.Entity.EF6 注意&#xff1a;Entity Frame…

iOS開發Swift篇—(七)函數(1)

一、函數的定義 &#xff08;1&#xff09;函數的定義格式 1 func 函數名(形參列表) -> 返回值類型 { 2 // 函數體... 3 4 } &#xff08;2&#xff09;形參列表的格式 形參名1: 形參類型1, 形參名2: 形參類型2, … &#xff08;3&#xff09;舉例&#xff1a;計算2個…

如何用計算機管理員權限,教你電腦使用代碼添加管理員權限的詳細教程

我們在使用電腦運行某些軟件的時候&#xff0c;可能需要用到管理員權限才能運行&#xff0c;通常來說直接點擊右鍵就會有管理員權限&#xff0c;但最近有用戶向小編反饋&#xff0c;在需要管理員權限的軟件上點擊右鍵沒有看到管理員取得所有權&#xff0c;那么究竟該如何才能獲…

activiti 5.22的demo運行

activiti 5.22的demo運行 從github上clon下來的activiti項目,運行demo項目activiti-webapp-explorer2時&#xff0c;在使用到流程設計工作區&#xff0c;選取activiti modeler作為設計器的時候報錯。 從下面的報錯信息中發現&#xff0c;請求路徑http://localhost:8080/activit…

宣布JavaScript 2017狀況調查

by Sacha Greif由Sacha Greif 宣布JavaScript 2017狀況調查 (Announcing the State of JavaScript 2017 Survey) 讓我們找出去年以來發生的變化&#xff01; (Let’s find out what’s changed since last year!) In a hurry? You can take the survey here.匆忙&#xff1f;…

內是不是半包圍結構_輕鋼別墅的體系結構

一、輕鋼別墅介紹1、輕鋼別墅的屋面系統輕鋼別墅屋面系統是由屋架、結構OSB面板、防水層、輕型屋面瓦&#xff08;金屬或瀝青瓦&#xff09;組成的。輕鋼結構的屋面&#xff0c;外觀可以有多種組合。材料也有多種。在保障了防水這一技術的前提下&#xff0c;外觀有了許多的選擇…

JavaScript call()函數的應用

call([thisObj[,arg1[, arg2[, [,.argN]]]]]) call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變為由 thisObj 指定的新對象。 thisObj 可選項。將被用作當前對象的對象。 arg1, arg2, , argN 可選項。將被傳遞方法參數序…

hive 去重 字符串_hive函數

Hive是建立在 Hadoop 上的數據倉庫基礎架構,定義了簡單的類 SQL 查詢語言(HQL)函數分類&#xff1a;簡單內置函數&#xff1a;數學函數&#xff0c;字符函數&#xff0c;日期函數&#xff0c;條件函數&#xff0c;聚合函數。高級內置函數&#xff1a;行列轉換函數&#xff0c;分…

python word

代碼&#xff1a; 1 #codingutf-82 __author__ zhm3 from win32com import client as wc4 import os5 import time6 import random7 import MySQLdb8 import re9 def wordsToHtml(dir):10 #批量把文件夾的word文檔轉換成html文件11 #金山WPS調用&#xff0c;搶先版的用KWPS&a…

aws lambda_如何為AWS Lambda實施日志聚合

aws lambdaby Yan Cui崔燕 如何為AWS Lambda實施日志聚合 (How to implement log aggregation for AWS Lambda) During the execution of a Lambda function, whatever you write to stdout (for example, using console.log in Node.js) will be captured by Lambda and sent…

【Python3爬蟲】為什么你的博客沒人看呢?

我相信對于很多愛好和習慣寫博客的人來說&#xff0c;如果自己的博客有很多人閱讀和評論的話&#xff0c;自己會非常開心&#xff0c;但是你發現自己用心寫的博客卻沒什么人看&#xff0c;多多少少會覺得有些傷心吧&#xff1f;我們今天就來看一下為什么你的博客沒人看呢&#…

泰安高考2021成績查詢,泰安高考成績查詢入口2021

高考結束之后&#xff0c;為了方便大家進行高考成績的查詢&#xff0c;下面跟著出國留學網小編來一起看看“泰安高考成績查詢入口2021”&#xff0c;僅供參考&#xff0c;希望對大家有幫助。2021山東高考成績查詢時間及志愿填報時間根據山東2021年夏季高考須知&#xff0c;2021…

用GitHub Issue取代多說,是不是很厲害?

2019獨角獸企業重金招聘Python工程師標準>>> 摘要: 別了&#xff0c;多說&#xff0c;擁抱Gitment。 2017年6月1日&#xff0c;多說正式下線&#xff0c;這多少讓人感覺有些遺憾。在比較了多個博客評論系統&#xff0c;我最終選擇了Gitment作為本站的博客評論系統&a…

mysql延時優化教程_Mysql優化之延遲索引和分頁優化_MySQL

什么是延遲索引&#xff1f;使用索引查詢出來數據&#xff0c;之后把查詢結果和同一張表中數據進行連接查詢&#xff0c;進而提高查詢速度!分頁是一個很常見功能&#xff0c;select ** from tableName limit ($page - 1 ) * $n ,$n通過一個存儲過程插入10000條數據進行測試&…

【動態規劃】Vijos P1313 金明的預算方案(NOIP2006提高組第二題)

題目鏈接&#xff1a; https://vijos.org/p/1313 題目大意&#xff1a; m(m<32000)金錢&#xff0c;n&#xff08;n<60&#xff09;個物品&#xff0c;花費vi&#xff0c;價值vi*ci,每個物品可能有不超過2個附件&#xff0c;附件沒有附件。 題目思路&#xff1a; 【動態規…