c++-一道题目,请大家帮帮忙,谢谢了

问题描述

一道题目,请大家帮帮忙,谢谢了

【问题描述】
  小山田心子是一只快乐的小白兔,某天她看到一座彩虹桥,彩虹桥长度为N,每个单位都有一个美观度,小山田心子一开始在单位1,并取走单位1的美观值,接下来她会在从下一格开始到N中选择一个最大美观度的单位跳过去(如果美观值相同取前面的),然后取走美观值,直到她走到N,请输出她取走的美观度之和。
【输入格式】
  第一行一个整数N(10<N<1000),接下来一行N个整数表示彩虹桥每个单位的美观度。
【输出格式】
  小山田心子取过的美观值之和。

【输入样例1】
  5
  5 4 3 2 1
【输出样例1】
  15

【输入样例2】
  10
  5 9 4 6 10 8 7 5 4 7
【输出样例2】
  37

【样例解释】
  样例1:(兔子一开始在单位1(取走美观度5),然后在2到5找最大,找到单位2的美观度4…一直找到单位N,美观度是15);
  样例2:(兔子先取单位1,在2到10中找最大找到单位5的美观度10,然后在6到10找最大找到单位6的美观度8,然后在7到10找最大找到单位7的美观度7,接下来在单位8到10找到单位10的美观度7,答案即为5+10+8+7+7=37)。

【数据范围】
  N=200000(注意这里)
其中一个 n=200000 的数据点 http://pan.baidu.com/s/1o6qrs2A
感谢大神

解决方案

虽然是从前往后跳,但是感觉求值应该从后来算。你看哈,从最后一位开始,肯定是可以取到的,然后将这位作为flag,向前搜索。如果比flag小,则略过,如果大于flag,则计入总和,并更新flag。如此往前搜索,直到第一位,当然第一位也计入总和。这样复杂度也就是O(1)。题主琢磨下是否可行?

解决方案二:

有人吗……
感谢喽
在线等
立即采纳

解决方案三:

有人吗……
感谢喽
在线等
立即采纳

解决方案四:

public class N { public static int total(int[] a) { if (a == null || a.length == 0) { return 0; } int start = 1; int total = a[0]; while (true) { start = findLargest(start + 1, a); if (start >= a.length) { break; } total += a[start]; } return total; } public static int findLargest(int start, int[] a) { if (start >= a.length) { return start; } int max = a[start], position = start; for (int ix = start; ix < a.length; ix++) { if (a[ix] > max) { max = a[ix]; position = ix; } } return position; } public static void main(String[] args) { System.out.println(total(new int[]{5, 9, 4, 6, 10, 8, 7, 5, 4, 7})); }}

解决方案五:

#include
int main()
{

 int i,n,sum,j,temp;
 int a[1001];
 scanf("%d",&n);
 for (i=n-1;i>=0;i--)
    scanf("%d",&a[i]);
    sum=a[0]+a[n-1];
    i=1;
    temp=a[0];//开头和末尾一定是
    for (j=i;j<=n-2;j++)//比到之前一个因为第一个一定是
        if (a[j]>=temp)
        {
        sum=sum+a[j];//找到之前一个比它大的数
        temp=a[j];//更新最小值
        }

        printf("%dn",sum);
    return 0;

}

解决方案六:

<?php

$a = array(5, 9, 4, 6, 10, 8, 7, 5, 4, 7,);
$flag = $a[count($a)-1];
$sum = $a[0] + $a[count($a)-1];
for($i = count($a)-2; $i > 0; $i--){
if($a[$i] >= $flag){
$flag = $a[$i];
$sum += $a[$i];
}
}
echo $sum;exit;

时间: 2024-11-02 21:28:17

c++-一道题目,请大家帮帮忙,谢谢了的相关文章

SQL Server2008r2 sqlexpress服务无法打开 请各位帮帮忙 谢谢!

问题描述 SQL Server2008r2 sqlexpress服务无法打开 请各位帮帮忙 谢谢! 下面是出错的日志文件 2016-05-15 10:03:21.91 Server Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) Mar 29 2009 10:27:29 Copyright (c) 1988-2008 Microsoft Corporation Express Edition on Windows NT 6.1

sql-有关数据库查询的一个问题请大家帮帮忙谢谢!!

问题描述 有关数据库查询的一个问题请大家帮帮忙谢谢!! 写一个查询SQL 将 oal_tb_waybill 表中创建时间近三个月 statee字段为2或5的数据查询出来 该怎么写呢 用的是MySql数据库 解决方案 日期间隔返回月数http://dodomail.iteye.com/blog/883422 解决方案二: SELECT * FROM oal_tb_waybill WHERE created > DATE_SUB(NOW(),INTERVAL 3 MONTH) AND created

请问大家,为什么value的值是空指针呢?程序很简单,请大家帮帮忙!!谢谢

问题描述 importjava.io.IOException;importjava.io.StringReader;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importorg.xml.sax.InputSource;importorg.xml.sax.SAXE

安装时出错 请大家帮帮忙

问题描述 安装一半的时候出现此窗口!请大家帮帮忙谢谢feature;defaultfeaturecomponent;newcomponent4file;c;programfiles......data1.2libdependenciesorojaka28c8.rraerror;系统找不到指定的文件, 解决方案 解决方案二:安装什么的?解决方案三:安eclipse解决方案四:卸干净了再重装吧解决方案五:关键是没安上怎么卸载啊

javaweb-myeclipse开启weblogic时报了如下错误,请各位帮帮忙,谢谢了

问题描述 myeclipse开启weblogic时报了如下错误,请各位帮帮忙,谢谢了 2016-2-29 21:37:30 com.sun.faces.config.ConfigureListener contextInitialized 信息: Initializing Sun's JavaServer Faces implementation (1.2_03-b04-FCS) for context '/console' 2016-2-29 21:37:30 com.sun.faces.co

sql查询问题,请大家帮帮忙,谢谢了

问题描述 sql查询问题,请大家帮帮忙,谢谢了 有两列数据,数据结构如下 用户号 类型 a 1 b 1 b 2 c 1 c 2 c 3 d 1 d 2 e 2 e 3 f 3 我想查询类型只是1的用户号,或者类型只是1,2的用户号,或者类型同时为1,2,3的用户号 谢谢大家 解决方案 可以像下面这样,统计一下每个用户不同类型的数量,限定类型数量和类型值来过滤 select * from 表名 a,(select count(distinct *) cnt,用户号 from 表名 group by

android-关于Android的问题,请各位帮帮忙,谢谢

问题描述 关于Android的问题,请各位帮帮忙,谢谢 开发Android应用一定要在eclipse for java ee上吗,可不可以用eclipse for java se,还有可不可以在后者上安装adt插件 解决方案 建议用android studio 毕竟是google的亲儿子 解决方案二: 这个是可以的,但是建议用ee 解决方案三: 是可以的,不过现在大部分开始转studio开发了 解决方案四: 还是用Android Studio吧 解决方案五: 都可以 .用eclipse比较麻烦,

VB问题。请大家帮帮忙!我自己做的VB贪吃蛇小程序

问题描述 VB问题.请大家帮帮忙!我自己做的VB贪吃蛇小程序 请大家帮帮忙!我自己做的VB贪吃蛇小程序,它能运动,用键盘上下左右都可以,但是吃食物的时候,食物不能消失.蛇直接穿过了食物. 不知道是否属性设置的问题,还是键盘输入的问题.下面有两个程序,一个是正确的,一个错误的,求大家帮忙调试一下.http://pan.baidu.com/s/1dE6HLAh 无需密码,直接下载下来,调试即可.谢谢大家!谢谢啊.C币不够,发个支付宝账号过来.直接支付.(10-20元都是可以接受的) 解决方案 htt

请高手帮帮忙,是有关session的问题?

问题描述 我的程序在上传到服务器上去之后,运行几下就会丢失session,在上传文件时更是丢失,在局域网中测试也是一样的.可见不是服务器的原因,可是又是什么原因呢?请大家帮帮忙,刚做好的程序就因为这个问题而不能使,郁闷呀!我想是不是程序的问题还是什么原因呀?谢谢! 解决方案 解决方案二:你的session是如何设置的?不写出来怎么知道错吗?