Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:应该是测试数据中有负数所以 temp = 0;/////!!!不对了!

Posted by Aqyz at 2007-07-24 15:21:53 on Problem 2533
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator