UVa 12186 Another Crisis】的更多相关文章

链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3338 题意: 某公司里有一个老板和n(n≤1e5)个员工组成树状结构,除了老板之外每个员工都有唯一的直属上司.老板的编号为0,员工编号为1-n.工人们(即没有直接下属的员工)打算签署一项请愿书递给老板,但是不能跨级递,只能递给直属上司.当一个中级员工(不是工人的员工)的直属下属中不…
题意: 给出一个树状关系图,公司里只有一个老板编号为0,其他人员从1开始编号.除了老板,每个人都有一个直接上司,没有下属的员工成为工人. 工人们想写一份加工资的请愿书,只有当不少于员工的所有下属的T%人递交请愿书后,该员工才会将请愿书递交给他的直接上级.输出能递交到老板处,最少需要多少工人写请愿书 分析: d(u)表示让u给上级发信最少需要多少个工人.假设u有k个子节点,则至少需要c = (k*T - 1) / 100 + 1 个直接下级发信给他才行.把所有子节点的d从小到大排序,前c个和就是d…
思路:dp[i]表示让上司i签字至少需要多少工人签字.       转移方程:将i的所有节点根据所需工人数量升序排序,设i需要k个下属签字,dp[i] = sum{dp[v]| 0 <= v <k} AC代码: #include<cstdio> #include<algorithm> #include<cstring> #include<utility> #include<string> #include<iostream>…
题意:有一个老板和n个员工,除了老板每个员工都有唯一的上司,老板编号为0,员工们为1-n,工人(没有下属的员工),要交一份请愿书, 但是不能跨级,当一个不是工人的员工接受到直系下属不少于T%的签字时,自己也会签字,并交给上级,问你最少有多少工人签字,才能让老板收到请愿书. 析:题意比较简单,也好理解,很明显是一个动态规划的题目,d(u)表示u给上级要发信至少需要多少工人签字.假设u有k个结点,那么至少要 c = (kT-1)/100 + 1个工人,然后把每个结点排序,找出最少的工人即可,挺简单的…
c表示某上司上报的最少请愿下属,k表示总下属c=0.01T*k=kT/100(0.01T*k是整数)c=[0.01T*k]+1=[kT/100]+1(0.01T*k不是整数) kT=100 c=1 kT=101 c=2 因此c=[(kT-1)/100]+1 #include<cstdio> #include<vector> #include<algorithm> using namespace std; int n,t,ans; vector<]; int dp(…
题意:某公司有1个老板和n(n<=105)个员工组成树状结构,除了老板之外每个员工都有唯一的直属上司.老板的编号为0,员工编号为1~n.无下属的员工(叶子)打算签署一项请愿书递给老板,但不能跨级递,只能递给直属上司.当一个中级员工(非叶子)的直属下属中不小于T%的人签字时,他也会签字并且递给他的直属上司.问:要让公司老板收到请愿书,至少需要多少个工人签字? 分析: 1.dfs(u)表示让u给上级发信最少需要多少个工人. 2.需要在u的孩子结点中选择不小于T%的人数,这些人所需的工人签字越少越好,…
12186 - Another Crisis Time limit: 3.000 seconds A couple of years ago, a new world wide crisis started, leaving many people with economical problems. Some workers of a particular company are trying to ask for an increase in their salaries. The compa…
[Link]: [Description] 给你n个员工和一个boss; 这n个员工和boss之间的关系是一棵树; 然后,现在最底层的叶子节点,想要向上级写信; 每个叶子节点都会向上级写一封信; 然而,每个中级人员,只有在它的下属中的百分之T以上的人都给它写信,它才会往上一级写信; 问你boss收到信,最少需要多少个工人写信才够; [Solution] 设dp[x]表示x往上写信,最少需要有几个工人写信才够; cnt[x]为x的儿子节点的个数; 则在做dfs的时候,把儿子节点的dp值升序排,存在…
题目链接:https://uva.onlinejudge.org/external/121/12186.pdf 题意: 给出一个树状关系图,公司里只有一个老板编号为0,其他人员从1开始编号.除了老板,每个人都有一个直接上司,没有下属的员工成为工人. 工人们想写一份加工资的请愿书,只有当不少于员工的所有下属的T%人递交请愿书后,该员工才会将请愿书递交给他的直接上级.输出能递交到老板处,最少需要多少工人写请愿书. 分析: d(u) 表示让 u 放给上级的最优解, u 有 k 个子节点,那么至少需要…
题意  分析   白皮书 P282  例题9-12 AC代码 #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm> #include <string> #include <queue>…