樹形DP+樹狀數組 HDU 5877 Weak Pair

 1 //樹形DP+樹狀數組 HDU 5877  Weak Pair
 2 // 思路:用樹狀數組每次加k/a[i],每個節點ans+=Sum(a[i]) 表示每次加大于等于a[i]的值
 3 // 這道題要離散化
 4 
 5 #include <bits/stdc++.h>
 6 using namespace std;
 7 #define LL long long
 8 typedef pair<int,int> pii;
 9 const double inf = 123456789012345.0;
10 const LL MOD =100000000LL;
11 const int N = 2e5+10;
12 const int maxx = 200010; 
13 #define clc(a,b) memset(a,b,sizeof(a))
14 const double eps = 1e-7;
15 void fre() {freopen("in.txt","r",stdin);}
16 void freout() {freopen("out.txt","w",stdout);}
17 inline int read() {int x=0,f=1;char ch=getchar();while(ch>'9'||ch<'0') {if(ch=='-') f=-1; ch=getchar();}while(ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f;}
18 
19 map<LL,LL> ma;
20 LL a[N];
21 LL c[N],b[N];
22 LL in[N];
23 vector<LL> g[N];
24 LL lowbit(LL x){ return x&(-x);}
25 LL add(LL x,int t){
26     while(x>0){
27        c[x]+=t;
28        x-=lowbit(x);
29     }
30 }
31 LL Sum(LL x){
32     LL sum=0;
33     while(x<maxx){
34         sum+=c[x];
35         x+=lowbit(x);
36     }
37     return sum;
38 }
39 
40 LL ans=0;
41 LL n,k;
42 void dfs(LL rt){
43      for(LL i=0;i<(int)g[rt].size();i++){
44          LL v=g[rt][i];
45          ans+=Sum(ma[a[v]]);
46          if(a[v]==0) add(maxx,1);
47          else add(ma[k/a[v]],1);
48          dfs(v);
49          if(a[v]==0) add(maxx,-1);
50          else add(ma[k/a[v]],-1);
51      }
52 }
53 int main(){
54     int T;
55     scanf("%d",&T);
56     while(T--){
57         ma.clear();
58         memset(c,0,sizeof(c));
59         scanf("%I64d%I64d",&n,&k);
60         for(int i=1;i<=n;i++){
61             scanf("%I64d",&a[i]);
62             b[i*2-2]=a[i];
63             if(a[i]!=0) b[i*2-1]=k/a[i];
64             g[i].clear();
65             in[i]=0;
66         }
67         sort(b,b+2*n);
68         int K=unique(b,b+2*n)-b;
69         int cxt=0;
70         for(int i=0;i<K;i++){
71             ma[b[i]]=++cxt;
72         }
73         for(LL i=0;i<n-1;i++){
74             LL u,v;
75             scanf("%I64d%I64d",&u,&v);
76             g[u].push_back(v);
77             in[v]++;
78         }
79         LL rt;
80         for(LL i=1;i<=n;i++){
81             if(in[i]==0){
82                 rt=i;
83                 break;
84             }
85         }
86         ans=0;
87         if(a[rt]==0) add(maxx,1);
88         else add(ma[k/a[rt]],1);
89         dfs(rt);
90         printf("%I64d\n",ans);
91     }
92     return 0;
93 }

?

轉載于:https://www.cnblogs.com/ITUPC/p/5861453.html

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

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

相關文章

mysql一直拒絕登錄_mysql 登錄錯誤:1045 (28000)訪問被拒問題

關鍵條目&#xff1a;ERROR 1045(28000): Access deniedforuserrootlocalhost(using password: YES)這個錯誤1045(28000)的本質其實就是訪問被拒絕&#xff0c;問題原因也很簡單&#xff0c;就是用戶密碼不適用&#xff0c;也可以理解為用戶或密碼錯誤。Access deniedforuserro…

SQLServer書寫規范梳理

今天給大家分享SQLServer書寫規范筆記&#xff0c;希望對大家能有所幫助!1、在名稱中僅使用字母、數字和下劃線要在名稱中僅使用字母、數字和下劃線&#xff0c;主要是因為這些字符可以被方便的移植到編程語言中。在應用程序的數據庫和編程語言中能夠使用相同的屬性字段名稱&am…

android 屏幕旋轉不重新加載,Android webview旋轉屏幕導致頁面重新加載問題解決辦法...

Android webview旋轉屏幕導致頁面重新加載問題解決辦法1. 在create時候加個狀態判斷protected void onCreate(Bundle savedInstanceState){...if (savedInstanceState null){mWebView.loadUrl("your_url");}...}2. 重載保存狀態的函數&#xff1a;Overrideprotected…

visio調整形狀位置_VISIO繪圖技巧—三相橋式全控整流電路繪制

前些天有網友留言詢問如何畫三相橋式全控整流電路&#xff0c;一直沒時間回復。今天得閑在家&#xff0c;給大家介紹一下如何來畫。上圖是一個三相橋式全控整流電路原理圖&#xff0c;大部分圖形元件在VISIO自帶的圖形庫中都能找到&#xff0c;下面來看看如何找出我們需要的繪圖…

計算機組成原理——關于數據對齊存儲

計算機組成原理——關于數據對齊存儲 1. 綜述 博客&#xff1a;http://blog.csdn.net/cyxcw1/article/details/9080519(C/C數據邊界對齊的注意事項) 對齊&#xff1a;變量的起始地址為其大小的整數倍。如short型占兩個字節&#xff0c;其起始地址就要從偶數地址開始。 對齊可以…

電腦術語科普:什么是“顯卡交火”?

有時候看到別人在討論顯卡交火的話題&#xff0c;相信大家對顯卡交火這個術語了解得也比較少&#xff0c;那么它是什么意思呢? 顯卡交火簡單的說就是&#xff1a;讓兩塊或者多塊顯卡在一臺機子上協同工作&#xff0c;相比于使用一張顯卡圖形性能有所提升。 目前主流顯卡交火有…

Mac查看本機ip地址

Mac查看本機ip地址 ifconfig | grep "inet" 箭頭處為ip地址

python3.4 pip安裝_python3.4的pycurl pip安裝

我正在安裝pycurl for python3.4如果我運行“pip install pycurl”&#xff0c;我有&#xff1a;Downloading/unpacking pycurlRunning setup.py (path:C:\Users\kkw\AppData\Local\Temp\pip_build_kkw\pycurl\setup.py) egg_info for package pycurlPlease specify --curl-dir…

html頁面整體變灰,css實現網站整體變灰(兼容火狐)

天下興亡&#xff0c;匹夫有責。有時候我們可能需要將網站整體變灰&#xff0c;實現方法也很簡單。將下面代碼加入到 wordpress 主題目錄下的 style.css 文件中即可&#xff1a;/* 網站變灰代碼 */html{ filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filte…

SQL Azure與SQL Server兩者的對比介紹,看完你就懂了!

今天給大家SQL Azure與SQL Server兩者的對比介紹&#xff0c;看完你就懂了&#xff01;1、SQL Server介紹SQL Server數據庫服務方式是安裝在客戶提供的服務器內。客戶負責硬件、、軟件安裝、安全性、數據庫備份、災難恢復等相關的運維工作。需要較高的人為運維成本。2、SQL Azu…

如何用HTML語言設計進度條,html5代碼如何實現進度條功能?(示例)

本篇文章主要介紹html5代碼如何實現進度條功能&#xff0c;希望對大家有所幫助。html5代碼實現進度條功能具體代碼示例如下&#xff1a;/*實現進度條的功能*/下載進度&#xff1a;/*js代碼*/var pgdocument.getElementById(pg);setInterval(function(e){if(pg.value!100) pg.va…

Flink是什么

一&#xff1a;Flink是什么

sublime插件 TortioseSVN

TortioseSVN 可以安裝在sublime中&#xff0c;實現svn文件的增加、刪除、更新、提交等功能&#xff08;TortioseSVN用在window系統中&#xff0c;linux安裝svn&#xff09; 安裝&#xff1a; 首先在sublime中搜索安裝TortioseSVN&#xff0c;&#xff08;前提是安裝了package c…

python腳本 游戲賺金幣兌換錢_一種王者榮耀刷金幣方法(python腳本)

所用工具環境python3.6.5 和 支持自動鼠標鍵盤點擊等編程的pyautogui功能包windows PC&#xff0c;安卓模擬器bluestacks&#xff0c;安裝王者榮耀基本思路王者榮耀有闖關任務模式可以獲得金幣&#xff0c;任務兩三分鐘一般就可以完成&#xff0c;支持自動模式&#xff0c;一次…

SQL Server數據庫架構與對象相關知識筆記

1、數據庫架構簡介數據庫架構是從SQL Server2005版本之后引入的概念。數據庫架構獨立于創建它的數據厙用戶而存在&#xff0c;每個對象都屬于一個數據庫架構&#xff08;對象包括表、視圖、存儲過程、函數、觸發器等&#xff09;2、 數據庫、架構和數據庫對象數據庫架構是一個獨…

html ajax 數據傳送,HTML AJAX 簡單數據JS

ajax請求var xmlhttp;var data;//Mozilla ,chmore瀏覽器(將XMLHttpRequest對象作為本地瀏覽器對象來創建)if(window.XMLHttpRequest){ //Mozilla 瀏覽器xmlhttp new XMLHttpRequest();}else if(window.ActiveXObject) { //IE瀏覽器//IE瀏覽器(將XMLHttpRequest對象作為ActiveX…

轉換

1024字節1K 1024*10241M 1024K1M 1024M1G 字

蒙提霍爾悖論(三門問題)終極分析(補充)附完整源碼

上一篇文章分析了經典的蒙提霍爾問題&#xff0c;最后的結論是更換選擇后有2/3的機會中獎。蒙提霍爾問題到此已經完結&#xff0c;但事實卻并非如此。 在蒙提霍爾問題中&#xff0c;主持人事先知道汽車在哪個門后面&#xff0c;并且他一定會選擇沒有汽車的那扇門。如果我們稍稍…

超融合和服務器關系_超融合與傳統服務器區別

超融合與傳統服務器的區別1.1概述雖然超融合架構以其為用戶帶來的巨大價值&#xff0c;已經被越來越廣泛地接受&#xff0c;但市場上對超融合仍然有諸多不清晰的概念和疑問&#xff0c;本系列文章將力求對這些概念進行逐一解釋。本篇解釋大家經常問到和混淆的一個概念&#xff…

電腦技巧:整理電腦鍵盤上每個鍵的含義

電腦鍵盤是把文字信息的控制信息輸入電腦的通道&#xff0c;從英文打字機的鍵盤演變而來的。它最早出現在電腦上的時候&#xff0c;還是一種叫做“電傳打字機”的部件。那些陌生的鍵盤按鍵都有什么用途? 很多新手不知道鍵盤上功能鍵和字母數字鍵以外的鍵盤按鍵有什么用&#x…