| ||||||||||
| 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