2
这个放在了动态规划里,但是感觉是很像贪心的题目
#include <cstdio> #include <cstring> #include <iostream> using namespace std; const int inf=0x3f3f3f3f; int dp[1000]; int main() { int n; while(~scanf("%d",&n)) { int num=0,x; for(int i=0;i<n;i++) { scanf("%d",&x); int flag=0; int minh=inf; int temp; for(int j=0;j<num;j++) { if(dp[j]>x&&dp[j]-x<minh) { minh=dp[j]-x; temp=j; flag=1; } } if(flag==0) { dp[num]=x; num++; } else { dp[temp]=x; } } printf("%d\n",num); } return 0; }