杭电ACM1003题目意思Problem DescriptionGiven a ...

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杭电ACM1003题目意思Problem DescriptionGiven a ...相关的知识,希望对你有一定的参考价值。

杭电ACM1003题目意思 Problem Description Given a sequence a[1],a[2],a[3].a[n],your job is to calculate the max sum of a sub-sequence.For example,given (6,-1,5,4,-7),the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The first line of the input contains an integer T(1

参考技术A 应该说是最大和的子序列,就是一个序列取它连续的一段数,要求和最大.你没有理解case1输入数据的意思啊~5
6
-1
5
4
-7第一个5是表示这个test的序列长度,于是后面就输入了6
-1
5
4
-7这5个数字~于是最大和是14,从6到4没有错.最大和子序列用动规求解.很经典的动规

题解报告:hdu 1032 The 3n + 1 problem

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1032

解题思路:这道题的意思就是输入一个区间i,j找出这里面的最长周期;周期是这样子:当这个数(不为1)是奇数时就变为3*n+1,为偶数时就变为n/2,并且用sum来计数周期,直到n为1就跳出。(水题!!!注意杭电oj出题的一些坑)

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int a,b,sum,t,maxn;
 6     bool f=false;//标记是否交换了
 7     while(cin>>a>>b){
 8         if(a>b){
 9             swap(a,b);//题目的陷井
10             f=true;
11         }
12         maxn=0;
13         for(int i=a;i<=b;i++){
14             sum=1,t=i;
15             while(t!=1){
16                 if(t%2)t=3*t+1;
17                 else t/=2;
18                 sum++;
19             }
20             maxn=max(sum,maxn);
21         }
22         if(f){
23             swap(a,b);//题目有说保持原来的数据输出,所以还得交换过来
24             f=false;//同时置f为false
25         }
26         cout<<a<< <<b<< <<maxn<<endl;
27     }
28     return 0;
29 }

 

以上是关于杭电ACM1003题目意思Problem DescriptionGiven a ...的主要内容,如果未能解决你的问题,请参考以下文章

杭电1022Train Problem I

杭电1023Train Problem II

GDUFE ACM-1003

杭电1003_Max Sum

Problem E. Matrix from Arrays(杭电2018年多校第四场+思维+打表找循环节)

杭电ACM 1005 Number Sequence