HDU 1257 最少拦截系统
2015-08-28 17:32
309 查看
原题链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1257题目大意:
《中文题》思路:
这个问题中DP数组有些特别。它存放的是之前出现过的最小值。每一次输入后。将其与DP中存放的值做比较。如果找到比输入的值更大的DP[i]的值。就修改。否则系统+1。
代码如下:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int Min[30001]; int main() { int N; while( ~scanf("%d",&N) ) { int num,n,a,j; num = 0; Min[num] = 0; for( n = 0; n < N; n++ ) { scanf("%d",&a); for( j = 0; j < num; j++ ) //表示之前的系统可以拦截。修改那套系统的最小值 if( a <= Min[j] ) { Min[j] = a; break; } //之前的系统已经不可以拦截了。需要一套新系统。 if( j == num ) { Min[num] = a; num++; } } printf("%d\n",num); } return 0; }
相关文章推荐
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- LFC1.0.0 版本发布
- Android px、dp、sp之间相互转换
- android中像素单位dp、px、pt、sp的比较
- Android对px和dip进行尺寸转换的方法
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- DP问题各种模型的状态转移方程
- POJ-1695-Magazine Delivery-dp
- TYVJ1193 括号序列解题报告
- 对DP的一点感想
- TYVJ上一些DP的解题报告
- soj1005. Roll Playing Games
- 01背包问题
- LeetCode之Maximum Product Subarray
- DP Flow
- zoj3605 Find the Marble(三维dp)
- Word Break I,II, Triangle,Palindrome Partitioning 动态规划 DP
- Unique Paths I,II, Minimum Path Sum