hdu 4105 贪心思想「建议收藏」

hdu 4105 贪心思想

大家好,又见面了,我是全栈君。

淋漓尽致的贪心思想

波谷一定是一位数。波峰一位数不够大的时候加入到两位数就一定够大了的。

当在寻找波谷碰到零了就自然当成波谷。

当在寻找波峰时碰到零时,将前面的波谷加到前一个波峰上。让当前的零做波谷,使得波谷的值尽量小,这就是本题最关键的贪心思想。一直想不到。

代码中:a表示前一个值,b表示当前考虑的值,tag为偶数时表示正在寻找波谷,奇数时在寻找波峰。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>

using namespace std;

char data[5999];

int main()
{
	int n, m, k;

	while(scanf("%d", &n) != EOF)
	{
		scanf("%s", data);
		//cout<<data<<endl;
		int a, b, tag = 0;
		a = 11;
		b = 0;
		int ans = 0;
		for(int i = 0; i < n; i ++)
		{
			b = (data[i] - '0');
			if(tag % 2 == 0){
				if(b < a){		
					a = b;
				}
				else
				{	
					i ++;
					a = data[i]-'0';
				}
			}
			else
			{
				if(b > a)
				{
					a = b;
				}
				else
				{
					if(b == 0)
					{
						while(data[i] == '0'){
							i ++;
							if(i >= n) break;	
						}
						//贪心思想,有0就一定让他做波谷,把原先的波谷a给到他的前一个波峰上
						a = 0;	//0做波谷 
						b = data[i]-'0';
						a = b;
					}
					else
					{
						i ++;
						a = b*10 + (data[i] - '0');
					}
				}
			}
			if(i >= n) break;
			ans ++; tag ++;
		}
		printf("%d\n", ans-1);		
	}
	
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115971.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机试题及答案c语言版_只会c语言毕业设计能做什么

    51单片机试题及答案c语言版_只会c语言毕业设计能做什么51单片机毕业设计题目51单片机毕业设计题目篇一:51单片机毕业设计题目2  1、基于51单片机温湿度检测的设计  1、设计要求  1、采用51单片机(STC89C52RC)+LCD12864+SHT10设计。  2、湿度范围:0-100%RH温度:0-100摄氏度  3、4个发光二级管实现报警:高温报警、低温报警、高湿度报警、低湿度报警共8种报警状态。  4、3个按键实现温湿度上下限报警值的…

    2022年10月3日
  • iostat命令详解——linux性能分析[通俗易懂]

    iostat命令详解——linux性能分析[通俗易懂]之前总结uptime和free命令,今天继续来总结一下iostat。给自己留个笔记,同时也希望对大家有用。版本信息:         sysstatversion9.0.4         (C)SebastienGodard(sysstatorange.fr)基本使用:          iostat[-c][-d][-N][-n

    2022年10月6日
  • 猪脸识别!人工智能还能这么玩?

    猪脸识别!人工智能还能这么玩?黑马程序员视频库播妞微信号:heiniu526传智播客旗下互联网资讯、学习资源免费分享平台说到AI人工智能,很多人都会想到人脸识别,毕竟这是现实生活中接触最多的人工智能产品。只要轻轻一扫…

    2022年6月21日
  • Centos7安装Mysql5.7最全教程[通俗易懂]

    Centos7安装Mysql5.7最全教程[通俗易懂]最近需要在Linux系统上使用MySQL,记录一下安装过程吧,为后来的同学排除一些问题。更新yumyumupdate-y1.安装wget工具我安装到了/export/install这里可以进入你们所想要安装的地方cd/先进入你想安装的位置,此后全部在此文件夹进行操作。sudoyuminstall-ywget2.使用wget下载mysqlyum源:wgethttps://dev.mysql.com/get/mysql80-community-release-el

    2022年5月2日
  • C++ Vector Resize函数[通俗易懂]

    C++VectorResize函数ChangesizeResizesthecontainersothatitcontainsnelements.Ifnissmallerthanthecurrentcontainersize,thecontentisreducedtoitsfirstnelements,removingthosebeyond(anddestroyingthem).Ifnisgreaterthanthecu

    2022年4月8日
  • memory.h_MemoryMappedFile

    memory.h_MemoryMappedFile(转载)C#使用MemoryStream类读写内存MemoryStream和BufferedStream都派生自基类Stream,因此它们有很多共同的属性和方法,但是每一个类都有自己独特的用法。这两个类都是实现对内存进行数据读写的功能,而不是对持久性存储器进行读写。读写内存-MemoryStream类MemoryStream类用于向内存而不是磁盘读写数据。MemoryStr…

    2022年10月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号