博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
贪心算法1001
阅读量:4331 次
发布时间:2019-06-06

本文共 1167 字,大约阅读时间需要 3 分钟。

简单题意:给定若干木棒,有长度和宽度,第一根木棒加工需要一分钟,如果第二根木棒的长度和宽度都大于或者等于第一根木棒,则不需要消耗另外的时间,以此类推;

解题思路:

首先对木棒进行排序,按照长度从小到大排序,如果长度相同,则按照重量排序,从第一根开始,以此与下一根木棒的重量比较,定义变量min=0;如果符合条件,min++;由于存在重复比较的问题,在数组里定义两个判断变量来判断该木棒是否已经进行比较过。最后比较完成,n-min=所需时间;

ac代码:

#include 
#include
struct mm{ int l; int w; int x; int v;}a[5001];int cmp( mm a,mm b){ if(a.l==b.l) return a.w
>N; while(N-->0) { cin>>n; for(i=0;i
>a[i].l>>a[i].w; a[i].x=0; a[i].v=0; }int m=0; sort(a,a+n,cmp); for(i=0;i
a[j].w||a[j].x==1) { j++; continue; } if(a[i].w<=a[j].w&&a[j].x!=1) { if(a[i].x==1) {j++; continue; } min++; i=j; a[j].v=1;j=i+1; continue; } } for( y=0;y

感想:当有多次重复比较是,可以设置相关变量来判断是否符合比较条件;

转载于:https://www.cnblogs.com/Sikaozhe/p/5294629.html

你可能感兴趣的文章
ACM学习历程—BestCoder 2015百度之星资格赛1004 放盘子(策略 && 计算几何)
查看>>
nginx代理服务
查看>>
HDU5183 hash 表
查看>>
Ambari修改主页面方法
查看>>
javascript学习笔记
查看>>
Nginx自带的变量
查看>>
[编程珠玑]取样问题
查看>>
PHP sprintf() 函数
查看>>
003为什么shell的配置文件那么繁琐?
查看>>
python面向对象
查看>>
腾讯2019实习面试题
查看>>
stm32_CAN总线知识(转)
查看>>
USB 协议分析之 HID 设备(转)
查看>>
寒假训练——搜索 K - Cycle
查看>>
idea中deployment点击加号没有出现artifact
查看>>
在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法...
查看>>
Servlet学习
查看>>
Go - 循环
查看>>
数据结构-图-经典算法(三)
查看>>
你行你上啊——新炬拓展疯狂秀厨艺篇
查看>>