Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:应该是测试数据中有负数所以 temp = 0;/////!!!不对了!In Reply To:为什么加了//后面的这个&& num_val[j] > temp, 就不正确了呢? 难道能找到比该数小又比它长的? Posted by:Aqyz at 2007-07-24 13:16:28 > #include <iostream> > using namespace std; > > int main() > { > int N; > int *num_val, *num_sum; > int i; > > while(cin >> N) > { > num_val = new int[N]; > num_sum = new int[N]; > > for(i = 0; i < N; i++) > { > scanf("%d", &num_val[i]); > num_sum[i] = 1;//置一 > } > > int temp, max; > > for(i = 1; i < N; i++) > { > max = 0; temp = 0;/////!!! > for(int j = i-1; j >= 0; j--) > { > if(num_val[j] < num_val[i] ) //&& num_val[j] > temp) ///////疑问! > { > if(num_sum[j] > max) > { > temp = num_val[j];//WA是用于标记的数 > max = num_sum[j]; > } > } > } > num_sum[i] += max;//算出该数为结尾的最长子序列 > } > max = 0; > /* > for(i = 0 ; i < N; i++) > { > cout << num_sum[i] << " "; > } > cout << endl;//观看 > */ > > for(i=0; i < N; i++) > { > if(num_sum[i] > max) > max = num_sum[i]; > }//搜出最大的子序列数 > cout << max << endl; > } > > delete[]num_val; > delete[]num_sum; > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator