传送门 题意简述:给出一棵树,求每个子树的重心. 首先通过画图可以观察出一个性质,我们从叶子结点向根节点递推重心的话重心的位置是不会下降的. 然后由于一个点的重心要么是自己,要么在重儿子子树内,因此如果重心不是自己,我们从重儿子子树的重心向自己爬统计答案就行了,由于重心不会下降因此时间复杂度O(n)O(n)O(n) 代码: #include<bits/stdc++.h> #define ri register int using namespace std; inline int read()…
D. Kay and Snowflake     After the piece of a devilish mirror hit the Kay's eye, he is no longer interested in the beauty of the roses. Now he likes to watch snowflakes. Once upon a time, he found a huge snowflake that has a form of the tree (connect…
传送门 整体二分好题. 题意简述:nnn种果汁,每种有三个属性:美味度,单位体积价格,购买体积上限. 现在有mmm个询问,每次问能否混合出总体积大于某个值,总价格小于某个值的果汁,如果能,求所有方案中用于混合的果汁的美味度的最小值的最大值. 思路: 首先考虑单次询问怎么做,看这个询问的类型应该可以二分答案. 接着思考如何checkcheckcheck,这个时候可以发现果汁可以按照美味度单调递减排列来让我们二分这个答案. 拍完序之后就可以采用贪心的方式,我们知道应该从单位体积从小到大买,因此我们建…
传送门 线段树合并菜题. 题意简述:nnn个点,支持连边以及查询一个点所在连通块中经过这个点的路径条数,保证这张图时刻为森林. 思路: 先建出所有操作完之后的树统计出dfsdfsdfs序 注意有可能是森林而不是树 然后用线段树合并维护每棵子树的sizesizesize即可. 为了方便,我们将每个节点的ininin作为下标插入线段树中,这样可以方便的统计出一棵子树在[inv,outv],v∈subtree[in_v,out_v],v\in subtree[inv​,outv​],v∈subtree…
传送门 线段树菜题. 题意简述:给一条nnn个点的链,链有边权,支持区间修改边权,查询在一段区间内随机选择不同的起点和终点路径的期望总边权和. 思路:考虑每条边的贡献. 考虑对于一段区间[l,r][l,r][l,r]其中的一条边权为vvv的边[i−1,i][i-1,i][i−1,i]计算贡献次数. 显然对于所有方案,这条边的起点在[l,i−1][l,i-1][l,i−1],终点在[i,r][i,r][i,r],因此总贡献为(i−l)(r−i+1)v(i-l)(r-i+1)v(i−l)(r−i+1…
传送门 kd−treekd-treekd−tree模板题. 题意简述:支持在平面上插入一个点,求对于一个点的最近点对. 思路:cdqcdqcdq是一种很不错的分治方法 只是好像码量有点窒息 所以我用了kd−treekd-treekd−tree来做. 其实就是两个维度分别作为键值来建立二叉搜索树即可. 这道题在查询时可以通过判断下一层的有没有可能对答案有贡献来剪个枝. 由于蒟蒻暂时没写过方差划分因此时间很慢. 代码: #include<bits/stdc++.h> #define mid (l+…
题目:https://www.luogu.org/problemnew/show/P5291 考场上写了 16 分的.不过只得了 4 分. 对于一个救援范围,其中合法的点集也是一个连通块. 2n 枚举一个救援范围,然后换根 DP 一下范围内的每个点开始的最长链,那些最长链 <=L 的点就是该范围的合法点集. 这样得到每个合法点集出现的方案, 与卷积 k 次即可.卷积的时候先 FWT 成点值,然后快速幂一样乘 k 次,再 FWT 回来即可. 但只有 4 分.过不了大样例. #include<cs…
传送门 题意简述: 给一个n∗mn*mn∗m的有障碍的网格图,问你从左上角走到左下角并覆盖所有可行格子的路径条数. 思路: 路径不是很好算. 将图改造一下,在最前面添两列,第一列全部能通过,第二列只有最上面的和最下面的可以通过,就转化成了求回路方案数. 代码: #include<bits/stdc++.h> #define ri register int #define change (f[cur].insert(stat,sum)) using namespace std; typedef…
传送门 轮廓线dpdpdp模板题. 题意简述:给一个放有障碍的网格图,问有多少种方法能使所有非障碍格子都在同一条哈密顿回路上面. 考虑用括号序列的写法来状压这个轮廓线. 用000表示没有插头,111表示有插头,且是左括号,222表示有插头,且是右括号. 然后分类讨论一波: 对于当前的格子左边,上边都有插头. 只有左边有插头. 只有上边有插头. 左边,上边都没有插头. 其中第一种还要分类讨论一波: 两个插头都是左括号. 两个插头都是右括号 左边的是左括号,右边的是右括号 左边的是右括号,右边的是左…
传送门 生成函数基础题. 题意:给出nnn个数以及它们的数量,求从所有数中选出i∣i∈[L,R]i|i\in[L,R]i∣i∈[L,R]个数来可能组成的集合的数量. 直接构造生成函数然后乘起来f(x)=∏i=1n(1+x+x2+...+xtimei)f(x)=\prod_{i=1}^n(1+x+x^2+...+x^{time_i})f(x)=∏i=1n​(1+x+x2+...+xtimei​)然后求出系数即可. 由于模数是1e61e61e6无法nttnttntt,考虑到数据很小可以直接用dpdp…
题目链接: 题目 D. Kay and Snowflake time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output 问题描述 After the piece of a devilish mirror hit the Kay's eye, he is no longer interested in the beauty of the r…
在app中有时候是需要添加聊天服务,在这里谈谈曾经开发聊天服务的经验: (1)聊天服务端选的openfire,这是一个基于xmpp协议的聊天服务器(XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性.因此,基于XMPP的应用具有超强的可扩展性.经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序.而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配…
CF685B Kay and Snowflake 链接 CF 题目大意 给你一颗树,询问子树的重心 思路 贪心? 重心肯定是向上走的,所以直接向上跳就好了. 不优秀的时候就不要跳了 ,因为以后也不能更新了. 复杂度O(n)(没大仔细想过) 代码 #include <bits/stdc++.h> using namespace std; const int N=3e5+7; int read() { int x=0,f=1;char s=getchar(); for(;s>'9'||s&l…
tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱.random.shuffle() 在训练数据上推断模型:得到输出 计算损失:loss(X, Y)多种损失函数 调整模型参数:最小化损失 SGD等优化方法. 评估:70%:30% 分训练集和校验集 代码框架: 首先模型参数初始化, 然后为每个训练闭环中的运算定义一个方法:读取训练数据input,计算…
tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集,反过来,S2是S1的子集. 张量形状: 固定长度: [],() 0阶次:[3],(2,3) 1/2阶次 不定长度:[None] 表示任意长度的向量,(None,3) 表示行数任意,3列的矩阵 获取Op:tf.shape(tensor, name="tensor_shape&qu…
2019.4.14 第1001题:Sum Problem Problem DescriptionHey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.InputThe input will consist of a series of integers n, one integer…
时间:2019.01.09地点:北京国际饭店…
D - Kay and Snowflake 题目大意:给你一棵数q个询问,每个询问给你一个顶点编号,要你求以这个点为根的子树的重心是哪个节点. 定义:一棵树的顶点数为n,将重心去掉了以后所有子树的顶点的个数的两倍不会超过n. 性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样. 性质 2 :把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上. 性质 3 :一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置.…
D - Kay and Snowflake 思路: 树的重心 利用重心的一个推论,树的重心必定在子树重心的连线上. 然后利用重心的性质,可知,如果有一颗子树的大小超过整棵树的大小的1/2,那么树的重心一定在这颗子树上. 利用以上两条,可知: 如果没有一颗子树的大小超过整棵树的大小的1/2,那么就可以以根节点为树的重心, 不然就从 超过1/2大小的子树 的重心 到 根节点 之间找整棵树的重心. 因为不会找重复的点,所以退化的复杂度为O(n) #include<bits/stdc++.h> usi…
觉得django项目把本地更新push到gitlab,再执行fabric脚本从gitlab更新服务器项目挺方便的,当然从本地直接到服务器就比较灵活. 2019/01/17 基于windows使用fabric将gitlab的文件远程同步到服务器 # -*- coding: utf-8 -*- from fabric.api import env, run from fabric.operations import sudo GIT_REPO = "gitlab-project地址" en…
D. Two Paths 题目连接: http://codeforces.com/contest/14/problem/D Description As you know, Bob's brother lives in Flatland. In Flatland there are n cities, connected by n - 1 two-way roads. The cities are numbered from 1 to n. You can get from one city t…
B. Kay and Snowflake 题目连接: http://www.codeforces.com/contest/685/problem/B Description After the piece of a devilish mirror hit the Kay's eye, he is no longer interested in the beauty of the roses. Now he likes to watch snowflakes. Once upon a time,…
$ \color{#0066ff}{ 题目描述 }$ 某地方有N个工厂,有N-1条路连接它们,且它们两两都可达.每个工厂都有一个产量值和一个污染值.现在工厂要进行规划,拆除其中的M个工厂,使得剩下的工厂依然连成一片且 总产量/总污染 的值最大. \(\color{#0066ff}{输入格式}\) 第一行N M(1<N<100,1<=M<N),表示工厂个数和要拆除的个数. 第二行N个正整数,表示每个工厂的产值[1..10000] 第三行N个正整数,表示每个工厂的污染值[1..1000…
You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It is actually a huge cavern, which consists of many rooms connected with tunnels. Each room is occupied by some bugs, and their brains hide…
题目链接: D. Kay and Snowflake time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output After the piece of a devilish mirror hit the Kay's eye, he is no longer interested in the beauty of the roses. No…
Kay and Snowflake CodeForces - 686D 题意:给一棵有根树,有很多查询(100000级别的),查询是求以任意一点为根的子树的任意重心. 方法很多,但是我一个都不会 重心几个定义/性质: 1.从树中去掉某点以及和该点相连的所有边后,整棵树变为许多"块".去掉任意一个重心(相比于去掉其他点)可以使得生成的各个"块"的节点数的最大值最少. 类似的一个:对于一棵树n个节点的无根树,找到一个点,使得把树变成以该点为根的有根树时,最大子树的结点数…
https://nanti.jisuanke.com/t/41403 2019沈阳网络赛D题 树形dp.一棵树,求任意两个点的距离之和.u-v和v-u算两次.两点之间的距离分为三类,模3等于0,1,2三类,最后输出这三类的总和. 第一种方法.直接累加.遍历到一个点的时候.先计算答案.答案加上所有已经遍历过得点到他的距离之和.同时该点也要加上这个值,同时要加上数量.每次先搜到底统计往下遍历的值,然后回溯的时候统计 回溯的值.因为每次只计算了之前的点到他的距离之和,所以最后的结果要乘以2,因为u-v…
Codeforce 685 B. Kay and Snowflake 解析(思維.DFS.DP.重心) 今天我們來看看CF685B 題目連結 題目 給你一棵樹,要求你求出每棵子樹的重心. 前言 完全不知道我怎麼想到的 @copyright petjelinux 版權所有 觀看更多正版原始文章請至petjelinux的blog 想法 首先會感覺是樹狀DP,並且狀態是每個子樹的重心. 在建重心剖分樹的時候,我們找根為\(v\)的樹的重心的方法是看看目前節點有沒有大小大於目前樹的一半(\(size[v…
树的重心,树形$dp$. 记录以$x$为$root$的子树的节点个数为$sz[x]$,重儿子为$son[x]$,重心为$ans[x]$. 首先要知道一个结论:以$x$为$root$的子树的重心$ans[x]$,一定在$ans[son[x]]$到$x$的路径上,即以$x$的重儿子为根的子树的重心到$x$的路径上. 因此,只要从节点$ans[son[x]]$依次往$father$枚举就可以了. 如果枚举到节点$g$,发现$g$节点满足$sz\left[ {son\left[ g \right]} \…
传送门 题意:给一个无向连通图,问给它加边形成仙人掌的方案数. 思路: 先考虑给一棵树加边形成仙人掌的方案数. 这个显然可以做树形dp. fif_ifi​表示把iii为根的子树加边形成仙人掌的方案数. 然后有两种情况: iii点没有父亲 iii点有父亲 对于第一种情况即iii是树根的情况,显然fi=(∏fv)∗g∣sonp∣f_i=(\prod f_v)*g_{|son_p|}fi​=(∏fv​)∗g∣sonp​∣​,其中gig_igi​表示给iii个儿子两两配对(每个儿子可配可不配的方案数).…