这道题目我一开始一头雾水,怎么都数不对,参考了下网上的博文,才弄懂。

题意是这样的,如果是上升序列,上升序列的长度不是所有上升数字的,是这么规定的,如果它与前一个数字构成上升,那么这个数字算上长度。所以说,比如1 2 3 4 5 ,这个长度为4。(这里感觉蛮奇怪的,理解了这里就基本ok了),举个例子:

1 2 3 2 3 4 5,上升序列有1 2 3 , 2 3 4 5 ,长度为2 + 3 = 5,个数为2,所以输出5.0/2.0 = 2.5

如果有重复数字,比如4 4 4 3 3 3 3 ,那么这整个是下降序列;

再如4 4 4 3 3 3 4 ,则前6个是下降,后俩是上升。

见ac代码

#include <stdio.h>

int main()
{
int pre;
while(scanf("%d",&pre)!=EOF&&pre)
{
int now,up=,down=,num=,equ=,upNum=,downNum=,flag=;//flag标记分为0,1,2,3四种状态,0为初始状态 while(scanf("%d",&now)!=EOF&&now)
{ if(now>pre)
{
if(flag==)
{
up++;
}
else if(flag==||flag==)
{
up++;
flag=;
upNum++;
}
else if(flag==)
{
up+=equ;
up++;
equ=;
flag=;
upNum++;
}
}
else if(now<pre)
{
if(flag==||flag==)
{
down++;
flag=;
downNum++;
}
else if(flag==)
{
down++;
}
else if(flag==)
{
down+=equ;
down++;
equ=;
flag=;
downNum++;
}
}
else
{
if(flag==||flag==)
{
equ++;
flag=;
}
else if(flag==)
{
up++;
}
else if(flag==)
{
down++;
}
} num++;
pre=now;
} double uplen,downlen;
if(upNum==)
{
uplen=;
}
else
{
uplen=double(up)/upNum;
}
if(downNum==)
{
downlen=;
}
else
{
downlen=double(down)/downNum;
} printf("Nr values = %d: %.6lf %.6lf\n",num,uplen,downlen);
} return ;
}

ZOJ Problem Set - 1338 Up and Down Sequences 解释 ac代码的更多相关文章

  1. ZOJ Problem Set - 1394 Polar Explorer

    这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...

  2. ZOJ Problem Set - 1025解题报告

    ZOJ Problem Set - 1025 题目分类:基础题 原题地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=10 ...

  3. ZOJ Problem Set - 3829Known Notation(贪心)

    ZOJ Problem Set - 3829Known Notation(贪心) 题目链接 题目大意:给你一个后缀表达式(仅仅有数字和符号),可是这个后缀表达式的空格不幸丢失,如今给你一个这种后缀表达 ...

  4. ZOJ Problem Set - 2563 Long Dominoes 【如压力dp】

    称号:ZOJ Problem Set - 2563 Long Dominoes 题意:给出1*3的小矩形.求覆盖m*n的矩阵的最多的不同的方法数? 分析:有一道题目是1 * 2的.比較火.链接:这里 ...

  5. ZOJ Problem Set - 3593 拓展欧几里得 数学

    ZOJ Problem Set - 3593 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3593 One Person ...

  6. ZOJ Problem Set - 2297 Survival 【状压dp】

    题目:ZOJ Problem Set - 2297 Survival 题意:给出一些怪,有两个值,打他花费的血和能够添加的血,然后有一个boss,必须把小怪全部都打死之后才干打boss,血量小于0会死 ...

  7. ZOJ Problem Set - 3820 Building Fire Stations 【树的直径 + 操作 】

    题目:problemId=5374" target="_blank">ZOJ Problem Set - 3820 Building Fire Stations 题 ...

  8. ZOJ Problem Set - 3229 Shoot the Bullet 【有上下界网络流+流量输出】

    题目:problemId=3442" target="_blank">ZOJ Problem Set - 3229 Shoot the Bullet 分类:有源有汇 ...

  9. ZOJ Problem Set - 3822Domination(DP)

    ZOJ Problem Set - 3822Domination(DP) problemCode=3822">题目链接 题目大意: 给你一个n * m的棋盘,每天都在棋盘上面放一颗棋子 ...

随机推荐

  1. tabhost 下 setOnItemClickListener失效的问题

    分析了一下代码,应该是tabhost 的ontabchangedListener接管了下面应该由setOnItemClickListener接管的部分,导致不能相应setOnItemClickList ...

  2. php止刷新页面重复提交

    利用session来解决,首先新建一个session,并赋值,第一次提交后改变session的值,当第二次再此提交此内容时,如果不是我们的赋值,就不在处理传过来的数据.如:<?php sessi ...

  3. centos下python中添加easygui模块

    前提:python中要集成Tkinter,Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同 ...

  4. Oracle查询和问题简记

    现在做两个版本的系统,一个用的数据库是Access,另一个就是Oracle了.每个数据库支持的的查询SQL语句都有所区别,这里主要针对Access和Oracle做 记录. 首先贴出遇到问题最多的一条语 ...

  5. java类加载相关

    可参考一篇文章:http://www.tuicool.com/articles/QZnENv 下面题输出结果 package com.h3c.itac; public class Dervied ex ...

  6. 如何给GridView添加网格

    如何给gridview的单元格加上分割线 原文链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/1227/1582.html ...

  7. Des与3Des加密解密

    /// <summary> /// Des和3Des算法 /// </summary> public class Des { /// <summary> /// D ...

  8. C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误。

    本人今天遇到的错误,C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误. 测试了很久,才发现,是安全协议问题,把安全协议加上就可以了

  9. RecylerView完美实现瀑布流效果

    RecylerView包含三种布局管理器,分别是LinearLayoutManager,GridLayoutManager,StaggeredGridLayoutManager,对应实现单行列表,多行 ...

  10. Python黑帽编程2.2 数值类型

    Python黑帽编程2.2  数值类型 数值类型,说白了就是处理各种各样的数字,Python中的数值类型包括整型.长整型.布尔.双精度浮点.十进制浮点和复数,这些类型在很多方面与传统的C类型有很大的区 ...