题目大意:给定一棵树,令一个点到所有点的距离与点权的乘积之和为b[i],求每个点的权值a[i]
首先如果给定a[i]我们可以很轻松的求出b[i] 但是反过来怎么搞?高斯消元?30W?
考虑已知a[i]求b[i]的情况 令这棵树的根为1 点i到根节点的距离为dis[i] 以i为根的子树的a值之和为size[i] 那么有递推式
b[1]=Σa[i]*dis[i]
b[x]=b[fa[x]]-2...
分类:
其他好文 时间:
2014-11-19 02:01:26
阅读次数:
166
有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。Input第一行一个整数n(1=B(i+1),即i+1个数不在前K大里的答案绝对不优于i个数不在前K大里的答案因此优先考虑0个数不在前K大里 即就是前K大的和 如果不为奇数,那么考虑只有1个数不在前K大里,显然通过以上方法一定能将和...
分类:
其他好文 时间:
2014-11-17 17:18:20
阅读次数:
220
3715: [PA2014]LustraTime Limit:10 SecMemory Limit:128 MBSubmit:237Solved:149[Submit][Status]DescriptionByteasar公司专门外包生产带有镜子的衣柜。刚刚举行的招标会上,有n个工厂参加竞标。所有镜...
分类:
其他好文 时间:
2014-11-16 08:13:58
阅读次数:
239
题目大意:桌面上倒扣着一些杯子,在这些杯子的有一些杯子底下有小球。可以询问i到j号杯子下面共有多少个小球的奇偶性,花费c[i][j],问至少花费多少可以得知杯子下面小球的存在情况。
思路:看这个题怎么看怎么想小胖的奇偶,其实是一样的,只不过这个题是利用了那个题的结论。没做过的可以先做做那个题,用并查集维护一下。那么这个题就很裸了,只是一个最小生成树的过程。
CODE:
#...
分类:
其他好文 时间:
2014-11-04 21:13:48
阅读次数:
221
考虑不限制奇偶的情况,那就是直接排序取前k个的和。加上奇偶限制:若排序后的前k个的和是偶数,则“显然地”:将其中的最小的奇数替换成未被选择的数中最大的偶数 或者将其中的最小的偶数替换成未被选择的数中最大的奇数 是最优的。那么排序之后 就可以预处理出 某个位置左侧最小的奇数、左侧最小的偶数、右侧最大的...
分类:
其他好文 时间:
2014-11-03 16:09:53
阅读次数:
290
题目3709: [PA2014]BohaterTime Limit:5 SecMemory Limit:128 MBSecSpecial JudgeSubmit:507Solved:163[Submit][Status]Description在一款电脑游戏中,你需要打败n只怪物(从1到n编号)。为了...
分类:
其他好文 时间:
2014-11-02 23:46:25
阅读次数:
249
对每种属性开一个set,只要某个厂家符合该属性的最值,就加进set,最后判断是否有某个厂家在4个set里都存在即可。 1 #include 2 #include 3 using namespace std; 4 int T,a[4][100001],EX[4],n; 5 setS[4]; 6 typ...
分类:
其他好文 时间:
2014-10-29 21:20:32
阅读次数:
156
把怪分成两类看:一、回血>损血 则若先杀损血少的再杀损血多的,则为当前这一步提供了更高的可能性。因为血量是单增的,所以尽量用较少的血量去干♂耗血较少的怪物。二、回血 2 #include 3 #include 4 using namespace std; 5 typedef long long ll...
分类:
其他好文 时间:
2014-10-29 21:01:52
阅读次数:
165
没什么好说的。 1 #include 2 using namespace std; 3 typedef long long ll; 4 int n,m;ll x,Fib[101]; 5 int main() 6 { 7 scanf("%d",&n); Fib[1]=1; 8 for(...
分类:
其他好文 时间:
2014-10-29 20:56:26
阅读次数:
194
Description魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品。花费c_ij元,魔术师就会告诉你杯子i,i+1,…,j底下藏有球的总数的奇偶性。采取最优的询问策略,你至少需要花费多少元,才能保证猜出哪些杯子底下...
分类:
其他好文 时间:
2014-10-27 22:43:33
阅读次数:
297