BZOJ 1063 道路设计NOI2008】的更多相关文章

http://www.lydsy.com/JudgeOnline/problem.php?id=1063 题意:给你一棵树,也有可能是不连通的,把树分成几个链,求每个点到根经过的最大链数最小,而且要输出方案数. 思路:考虑dp,f[i][j]代表第i个节点,最大链数是j,那么有 f[i][j][0]代表已经向子树连接了0个链 f[i][j][1]代表已经向子树连接了1个链 f[i][j][2]代表已经向子树连接了2个链 这样转移就是 f1=f[pur][b][0]+f[pur][b][1] f2…
省选一试后的第一篇blog! Description Z国坐落于遥远而又神奇的东方半岛上,在小Z的统治时代,公路成为这里主要的交通手段.Z国共有n座城市,一些城市之间由双向的公路所连接.非常神奇的是Z国的每个城市所处的经度都不相同,并且最多只和一个位于它东边的城市直接通过公路相连.Z国的首都是Z国政治经济文化旅游的中心,每天都有成千上万的人从Z国的其他城市涌向首都.为了使Z国的交通更加便利顺畅,小Z决定在Z国的公路系统中确定若干条规划路线,将其中的公路全部改建为铁路.我们定义每条规划路线为一个长…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1063 题意:给出一个无环图( 也就是树,但是也有可能是森林),代表一个国家的城市.1是首都.每条边是一条公路.现在要在这些公路中选出一些修改成铁路.要求每个城市至多在一条铁路上.修改完后,每个城市到首都可能是铁路公路交叉着走.现在定义一个城市的“不便利度”为到达首都要走的公路的次数.定义国家的不便利度为所有城市不便利度的最大值.问国家的不便利度最小为多少?有多少种修改方案使得可以得到此…
@ACMLCZH学长出的毒瘤题T3.再也不是“善良”的出题人了. 题意:bzoj. 题解: 经典的树形DP题目,屡见不鲜了,然而我还是没有写出来. 这一类的题目有很多,例如这里的C题. 主要套路是把对儿子的枚举变成一个类似背包的转移方式,实现降复杂度. 需要注意的是某一个地方的DP值不能直接拿来判断是否有解,例如mod=1时,DP值全为0就没法判断了. 这里比较骚的操作是把mod的倍数变成mod,而0不变,这样就不会漏判. #include<bits/stdc++.h> #define F(i…
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1064 给一个有向图染色,每个点的后继必须相同,问至少&至多有多少种染色方案 sol:  图由多个联通块组成,对于每个联通块,考虑以下3种情况: 如果有环,分为3类讨论 对于第一种简单环,答案一定是环长的约数 对于第二种有反向边的环,答案一定是两条链长差的约数 trick:将有向边化为无向边,正向边权为1,反向为-1 这样1,2可以一起做 对于第三种大环套小环,将小环缩点即可(gcd(a,b)…
题解 可能是世界上最裸的一个单纯形 (话说全幺模矩阵是啥我到现在都不知道) 假装我们已经看过了算导,或者xxx的论文,知道了单纯形是怎么实现的 扔一个blog走掉..https://www.cnblogs.com/ECJTUACM-873284962/p/7097864.html 那么我们根据题意可以列出这样的方程 \(x_i\)表示第\(i\)类志愿者招募的个数 根据题目可列线性规划的式子 以样例为例 \(z = min 2x_1 + 5x_2 + 2x_3\) \(x_1 + 0 + 0 >…
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 表示想到某一种情况就不敢写下去了.... 就是找环的gcd...好可怕.. 于是膜拜了题解.. 和我想的差不多.. 首先发现这3种情况: 1.单链或者几条单链任意两条只相交于连续的一段的单链块.则最大的答案是$\sum |单链| + \sum |单链块种最长的链|$,最小答案是3. 2.环.环的长度是最大答案的倍数,因此我们取gcd,也可以看做是标号差(第一次访问和第二次访问的标号差). 3…
http://www.lydsy.com/JudgeOnline/problem.php?id=1061 好神的一题! 学会了一种建模方式: 当方程组内的任意变量都在其中两个方程出现且一正一负,可以建立网络模型(按方程的数目为节点),原理就是流量守恒,其中方程的常数可以就是限制方程成立的容量(即最大流可以满足方程),按符号向源和汇连边即可. orz 具体的详细数学建模看blog:https://www.byvoid.com/zhs/blog/noi-2008-employee/ 然后建图就是:…
dp练习. codevs 1048 石子归并 区间dp #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<iostream> using namespace std; ][],w[],sum[]; inline int read() { ,f = ;char ch = getchar(); ; + ch - '; return x * f…
1000-1009 1000A+B Problem 这个还要写??? 1001 狼抓兔子 平面图最小割转化为对偶图最短路 #include<bits/stdc++.h> #define id(i , j , k) ((k) * (N - 1) * (M - 1) + ((i) - 1) * (M - 1) + (j)) #define PII pair < int , int > #define st first #define nd second //This code is w…