点分治
青烟绕指柔!
我不怕千万人阻挡,只怕自己投降。
展开
-
Awesome Shawarma
题目链接:Awesome Shawarma显然链接一条边,产生环,然后非环上的都是桥。所以其实就是求距离在 [n-r-1,n-l]区间的路径个数。直接点分治即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longu...原创 2020-04-22 23:25:14 · 216 阅读 · 0 评论 -
HDU - 4918
题目链接:HDU - 4918显然这种带修改的距离问题,我们可以想到动态点分治,也是就树分治。首先对重心重新建树,之后。对每个点存当前分治重心的答案,和当前分治重心的父亲节点的答案。然后计算答案的时候,暴力往上跳统计即可,修改同理。因为分治最多log层,所以树高也是log的,暴力即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-...原创 2020-04-20 12:27:31 · 346 阅读 · 0 评论 -
HDU - 5977
题目链接:HDU - 5977分治重心,然后对根经过的不同颜色之和状态压缩。之后容斥统计答案。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define int long longusing namespace std;const int N=5e4+1...原创 2020-03-18 18:58:32 · 275 阅读 · 0 评论 -
Codeforces - GCD Counting
题目链接:Codeforces - GCD Counting显然,做法很多。我就直接点分治暴力了。每次分治重心,然后对每个数,分解质因数。对重心的每个质因数都求一下答案,取max即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int ...原创 2020-02-21 13:57:46 · 267 阅读 · 0 评论 -
Codeforces - Close Vertices
题目链接:Codeforces - Close Vertices以前写点分治的时候,都是直接计算而不是用容斥统计。碰到这道题就有点麻烦了,需要树套树统计。。。。只有路径长度的容斥:sort(sth+1,sth+Cnt+1);while(l<r){ if(sth[l]+sth[r]<=k){ ret+=r-l; l++; }els...原创 2020-02-06 21:25:24 · 216 阅读 · 0 评论 -
Tree
题目描述给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K输入格式N(n<=40000) 接下来n-1行边描述管道,按照题目中写的输入 接下来是k输出格式一行,有多少对点之间的距离小于等于k输入输出样例输入 #1复制71 6 136 3 93 5 74 1 32 4 204 7 210输出 #1复制5说明/提示k\leq 20...原创 2019-12-12 14:49:24 · 212 阅读 · 0 评论 -
[IOI2011]Race
题目描述给一棵树,每条边有权。求一条简单路径,权值和等于 KK,且边的数量最小。输入格式第一行包含两个整数 n, Kn,K。接下来 n - 1n−1 行,每行包含三个整数,表示一条无向边的两端和权值。注意点的编号从 00 开始。输出格式输出一个整数,表示最小边数量。如果不存在这样的路径,输出 -1−1。输入输出样例输入 #1复制4 30 1 11 2 21 3 4输出...原创 2019-12-11 19:45:11 · 367 阅读 · 0 评论 -
[国家集训队]聪聪可可
题目描述聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数...原创 2019-12-11 13:48:25 · 268 阅读 · 0 评论 -
树上长度为k的路径
题目描述给定一棵有n个点的树询问树上距离为k的点对是否存在。输入格式n,m 接下来n-1条边a,b,c描述a到b有一条长度为c的路径接下来m行每行询问一个K输出格式对于每个K每行输出一个答案,存在输出“AYE”,否则输出”NAY”(不包含引号)输入输出样例输入 #1复制2 11 2 22输出 #1复制AYE说明/提示对于30%的数据n<=100对于60%的数...原创 2019-12-10 14:30:03 · 649 阅读 · 0 评论