| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1458 人关注过本帖
标题:[练习题]给教室里的朋友们练练手的
只看楼主 加入收藏
RL720
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2005-11-6
收藏
得分:0 
英语爆烂~
理解错了别砸我~~

#include<iostream>

using namespace std;

void main()
{
int strength(0),jump(0),p(0),temp(0);
bool x(1);
cout<<\"Please enter P(1~150000):\t\";
while(1)
{
cin>>p;
if(p>=1 && p<=150000) break;
cout<<\"Overflow!!\nPlease reenter P(1~150000):\t\";
}
for(int i=0;i<p;i++)
{
cout<<\"Please enter strength(1~500) \"<<i+1<<\":\t\";
while(1)
{
cin>>strength;
if(strength>=1 && strength<=500) break;
cout<<\"Overflow!!\nPlease reenter strength(1~500) \"<<i+1<<\":\t\";
}
if(x)
{
if(strength<temp)
{
jump+=temp;
x=0;
}
else if(i==p-1) jump+=strength;
}
else
{
if(strength>temp)
{
jump-=temp;
x=1;
if(i==p-1) jump+=strength;
}
}
temp=strength;
}
cout<<\"The maximum possible jump is \"<<jump<<endl;
}


2006-03-17 00:50
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

[CODE]#include <iostream>
using namespace std;

int main()
{
//---------
int p;
cin>>p;

int *a = new int[p];
for(int i=0; i<p; i++)
cin>>a[i];
//---------
int max = 0;
int m = p-1;

while(m>0&&(a[m]<a[m-1]))
m--;

if(m < p-1)
{
int tmp = a[p-2] - a[p-1];
switch ((p-1) - m)
{
case 1 :if(tmp < a[p-1])
max = a[p-1];
else
max = tmp;
break;
default :if(tmp < a[p-1])
max = a[m] - tmp;
else
max = a[m] - a[p-1];
}
}
else
max = a[m];
//---------

for(int i=0; i<m; i++)
{
if(a[i]>a[i+1])
max += (a[i] - a[i+1]);
}

//---------
cout<<max<<endl;
delete[]a;
system("pause");
return 0;
}[/CODE]

先不管效率了,先看结果吧


2006-03-18 13:57
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 
kai 你也不用那么愤世嫉俗,这个是ACM的练习题,对于本身就是CS系的人来说当然不应该是难题,google的topcoder比赛什么的通常都是这类题目,而且为topcoder辩护一下,他出的题目没那么多废话,为什么看到英语题目要烦?没理由啊,你就当中文去看好了,怕了首先就是不对的。我的英语从来没及格过,我怎么看题目?翻字典呀。
后面我公布代码

2006-03-18 21:18
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 

#include<iostream>
int main(){
int n,in,oddtemp,eventemp,oddmax=0,evenmax=0;
cin>>n;
for(int i=0; i<n; i++){
cin>>in;
oddtemp=evenmax+in;
eventemp=oddmax-in;
if(oddtemp>oddmax) oddmax=oddtemp;
if(eventemp>evenmax) evenmax=eventemp;
}
cout<<oddmax<<endl;
}

woodhead你的代码还是不行。。。。
RL720的是对的

2006-03-18 21:34
buwanlelj
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-3-17
收藏
得分:0 
答案是简单啊,就是看不懂题目,真是郁闷啊!

才学C++!
2006-03-19 13:53
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

还是没理解题的意思,我以为要把结尾算进去.
测试的数据不够,...
你们都不缓存.

[CODE]#include <iostream>
using namespace std;

int main()
{
int p, tmp1=0,tmp2, max=0;
cin>>p;
//---------
for(int i=0; i<p; i++)
{
cin>>tmp2;
if(tmp1 > tmp2)
max += (tmp1 - tmp2);
tmp1 = tmp2;
}
max += tmp2;
//---------
cout<<max<<endl;
system("pause");
return 0;
}[/CODE]

再试试

[此贴子已经被作者于2006-3-19 14:31:49编辑过]


2006-03-19 14:12
快速回复:[练习题]给教室里的朋友们练练手的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015588 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved