HDU 1257 - 最少拦截系统
2017-09-06 15:25
239 查看
题目大意:中文题。。。
解题思路:贪心,dp。它拥有多套系统时,不一定要等一套系统用完再用第二套,而是可以同时准备着,第一套肯定需要面对第一枚导弹,所以第一套的最大高度就确定了,之后每一枚子弹来时都要选择那一套的高度最接近的系统,也就是高度最低,却高于等于导弹的系统来处理,如果都处理不了则新加一套导弹系统,这一套的最大高度为无法处理的高度。如果处理了就去改变选择的那一套系统的高度。
ac代码:
解题思路:贪心,dp。它拥有多套系统时,不一定要等一套系统用完再用第二套,而是可以同时准备着,第一套肯定需要面对第一枚导弹,所以第一套的最大高度就确定了,之后每一枚子弹来时都要选择那一套的高度最接近的系统,也就是高度最低,却高于等于导弹的系统来处理,如果都处理不了则新加一套导弹系统,这一套的最大高度为无法处理的高度。如果处理了就去改变选择的那一套系统的高度。
ac代码:
#include <iostream> #define INF 30010 using namespace std; int t[10005], dp[10005], n, Min, flag, cnt; int main() { while (scanf("%d", &n)!=EOF){ for (int i=0; i<n; i++) scanf("%d", &t[i]); cnt = 1; dp[0] = t[0]; for (int i=1; i<n; i++){ flag = -1, Min = INF; for (int j=0; j<cnt; j++) if (dp[j] >= t[i] && dp[j] < Min) flag = j, Min = dp[j]; if (flag == -1) dp[cnt++] = t[i]; else dp[flag] = t[i]; } printf("%d\n", cnt); } return 0; }
相关文章推荐
- HDU 1257 - 最少拦截系统
- HDU-1257 最少拦截系统(LIS)
- HDU 1257最少拦截系统【贪心】
- HDU 1257 最少拦截系统(最长上升子序列+贪心)
- HDU 1257 最少拦截系统
- HDU 1257 最少拦截系统
- HDU 1257 最少拦截系统 (贪心)
- Hdu 1257 最少拦截系统 程序参考
- HDU 1257 最少拦截系统(贪心)
- HDU 1257 最少拦截系统(dp)
- HDU 1257 最少拦截系统 贪心
- HDU 1257 最少拦截系统
- hdu 1257 最少拦截系统 dp
- 最少拦截系统 HDU - 1257
- 【HDU 1257 最少拦截系统】+ dp
- HDU 1257 - 最少拦截系统
- hdu 1257最少拦截系统(贪心)
- HDU - 1257----最少拦截系统
- HDU:1257 最少拦截系统(贪心+动态规划DP||LIS?)
- HDU 1257 最少拦截系统(最长上升子序列+贪心)