树形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.mzph.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…