贪心
一些贪心方面的编程题
NeverMoreH
^_^
展开
-
uvalive5986(贪心)
题意: n个人,每两个人要比一次赛,赢了得一分,输了不得分,给出一种比完赛之后每个人的分数,你可以给一个人加上一些分,或者减去一些分,使得分数序列合法,求最小花费(加一分或者减一分花费就是1)。 思路: 给分数序列从小到大排序,只考虑前i个人是否合法,前i个人的总分应该是tmpfen=(i-1)*i/2,如果总分大于tmpfen,那么我们不做修改,如果小于,我们就给第i个人加上差值,原创 2015-08-29 11:04:37 · 514 阅读 · 0 评论 -
uvalive5990(坑点蛮多的一道题。。)
题意: 给出一个数列,我们定义如下两种数列: ①、substring:原数列的一个连续子数列,要包含原数列的最大值和最小值至少各一个。 ②、subsequence:原数列的一个子数列,要包含原数列的最大值和最小值至少各一个。 问substring和subsequence的个数。 思路: 我们在读入数据的时候,记录出最大值和最小值,然后遍历一次数组,记录出每个最大值和最小值的位置原创 2015-08-29 11:21:09 · 404 阅读 · 0 评论 -
hdu3697(贪心+暴力)
题意: 一个人要选课,现在给出每门课的选课开始时间和选课截止时间,这个人会每隔5分钟选一次课,问他最多可以选多少门课。 思路: 我们把没门课按结束时间从小到大排序,结束时间相同按开始时间从小到大排序,这样我们按顺序选一定是最优的。 由题意可知,这个人开始选课的时间只有可能是0,、1、2、3、4,因为他第一次选课的时间定了之后,以后的选课时间就固定了,所以暴力一下即可。 代原创 2015-08-12 16:56:37 · 872 阅读 · 0 评论 -
uvalive4840(n*n方阵的最小花费)
题意: 给出一个n*m的地图,图中有n*n个人,每行都有且只有n个人,每个人都只可以左右移动,现给出这n个人的位置,问如何移动这些人使得他们构成一个n*n的方阵且花费最小。 思路: 首先明确一点,构成方阵之后每个人的相对位置一定不变,这样是最优的。这样大家就知道咋做了吧。 代码: #include #include #include #include #include #原创 2015-08-29 20:31:28 · 379 阅读 · 0 评论