[Dynamic Programming]Recursion/Non-recursion to find the max number
2013-05-13 16:03
471 查看
//国际大学生程序设计竞赛例题解(三)
//动态规划
//Page107
Recursion Version
#include <iostream>
#include <cstdio>
using namespace std;
int data[100];
int getMax(int left, int right)
{
if(left == right)
{
return data[left];
}
int t1 = getMax(left, (left + right) / 2);
int t2 = getMax((left + right) / 2 + 1, right);
return t1 >= t2 ? t1 : t2;
}
int main()
{
int n;
cin >> n;
for(int i = 1; i < n; i++)
{
cin >> data[i];
}
cout << getMax(1, n) << endl;
return 0;
}
Non-Recursion Version
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int data[100];
bool cmp(const int& a, const int& b)
{
if(a > b) return true;
else return false;
}
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> data[i];
}
sort(data, data + n, cmp);
cout << data[0] << endl;
return 0;
}
//动态规划
//Page107
Recursion Version
#include <iostream>
#include <cstdio>
using namespace std;
int data[100];
int getMax(int left, int right)
{
if(left == right)
{
return data[left];
}
int t1 = getMax(left, (left + right) / 2);
int t2 = getMax((left + right) / 2 + 1, right);
return t1 >= t2 ? t1 : t2;
}
int main()
{
int n;
cin >> n;
for(int i = 1; i < n; i++)
{
cin >> data[i];
}
cout << getMax(1, n) << endl;
return 0;
}
Non-Recursion Version
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int data[100];
bool cmp(const int& a, const int& b)
{
if(a > b) return true;
else return false;
}
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> data[i];
}
sort(data, data + n, cmp);
cout << data[0] << endl;
return 0;
}
相关文章推荐
- mysql5.7.12/13在安装新实例时报错:InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero
- Find the smallest number whose digits multiply to a given number n
- InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
- The power of recursion: Number-to-Text conversion
- perfect squares find the least number of perfect square numbers (1, 4, 9, 16, ...) which sum to n
- In a bunch of number to find out the biggest minimum value
- To find the first working day. Non-Holiday and Non Weekend
- Non-resolvable import POM: Failure to find Dalston.RC1 in was cached in the local repository
- DS:using Stack to arrange the array to get max number.
- InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pa
- hdu-2227-Find the nondecreasing subsequences(DP+离散化+树状数组)
- file_get_contents()获取https出现这个错误Unable to find the wrapper “https”
- VirtualBox安装VBoxLinuxAdditions错误:unable to find the sources of your current linux kernel
- POJ1050 To the Max
- hdu1081-To The Max
- poj 1050 To the Max (dp)
- sql server 2008 R2 Error 9003:The log scan number passed to log scan in database is not valid
- hdu1081-To The Max
- To the Max
- poj1050 To the Max (动态规划)