贪心
文章平均质量分 61
谢符宝
业精于勤,荒于嬉行成于思,毁于随。
展开
-
Foj 2147 A-B Game
题意:给出两个数A,B(A>B),每次操作A-(A%x),x任选,问至少需要几次操作能够使得A 解法:简单贪心。每次x都取A/2+1。 代码:#include #include using namespace std; int main() { int t;long long A,B;int an=1; cin>>t;while(t--) {原创 2014-01-23 23:22:54 · 629 阅读 · 0 评论 -
poj2054(贪心)
题意:有一棵树,每个节点都有一个代价基值Ci。现在要给每个点染色,第一个染根节点,其余的节点染色的时候其父节点必须已染色。每个节点染色会用掉一个时间单位,每个节点染色的代价是染完此节点时的总时间T*Ci。问染完全部节点所需要的最小代价。 解法:这道题真的略吊,不过最终我还是看了网上的题解才会做的。每次基值最大的节点一定会是在父节点染完色后马上进行染色的,然后可以假想此节点就可以和父节点合原创 2014-01-18 20:59:52 · 3009 阅读 · 0 评论 -
poj1018 枚举加贪心
题意:一套通讯系统由一些设备组成,每种设备由不同的供应商供应,每个供应商供应的同种设备有各自的带宽(bandwidth)和价格(prices)。通讯系统的带宽(B)指的是组成该系统的所有设备的带宽的最小值,通讯系统的价格(P)指的是组成该系统的所有设备的价格之和。求最大的 (B / P)。 解法:先将每种产品的供应情况排序,按带宽从小到大,然后记录一个后缀价格的最小值。枚举所有的带宽,当原创 2014-03-07 22:22:31 · 823 阅读 · 0 评论 -
poj1456(贪心加并查集)
题意:给出一些物品的利润和卖出的截至日期(即过了这个日期此物品就不能再卖出),每一天最多只能卖一件物品。问能获得的最大利润是多少。 解题思路:大体就是贪心吧。其中用到了类似于并查集的工具; 先按照物品的利润从大到小排序,然后从利润大的开始将其卖出时间定为截至日期之前最近的那个未被利用的一天(当然包括截止日期本天)。在寻找之前最近未被利用的一天时用到了parent这个数组,有点像并查集,及时维护能原创 2014-01-16 16:38:55 · 530 阅读 · 0 评论 -
poj3991(括号匹配-贪心)
题意:给一个长度为偶数的括号序列,问至少要改变多少个可以使得此括号序列合法; 解法:贪心的思想,遍历过程中如果前缀中有右括号没有匹配那么此右括号一定要变成左括号,如果右括号左边有没有匹配的左括号,则一定可以找左边最近的那个左括号匹配上。最后再加上剩余左括号数量的一半; 代码:/***********************************************原创 2014-04-10 23:58:29 · 1307 阅读 · 0 评论 -
CF(437C)The Child and Toy(贪心)
题意:给出一个无向图,每个点有点权,操作是一个一个将所有点揪走直至剩下一个点,揪走一个点的代价是剩下点中与其连边的点的点权和。求完成操作所需花费的最小代价。 解法:贪心的思想,每次将剩余点中点权最大的点揪出,这样可以保证每条边都是会选择相对小的点权被消耗掉。所以直接输出所有边的边权和即可。 代码:/****************************************原创 2014-06-02 00:23:42 · 1211 阅读 · 0 评论