贪心-Doing Homework again HDU

技术贪心-Doing Homework again HDU 贪心-Doing Homework again HDU – 1789题目
https://vjudge.net/problem/HDU-178

贪心-又在做作业了HDU – 1789年年

题目

https://vjudge.net/problem/HDU-1789

思路一

思路一是,让价值尽量大的作业,尽量往后安排。

为了实现思路一,我们需要从后往前遍历”时间”,在每个时间节点选择满足当前条件的最大值,其中最大值我们使用优先队列实现。

以样例3为例,如图所示

1 4 6 4 2 4 3

3 2 1 7 6 5 4

从右往左看,黄色表示选择做的作业,灰色表示已经做了,绿色是最后没做的

代码

#包括牡蛎

#包括

#包括算法

使用命名空间标准;

结构节点{

国际时间,价格;

朋友布尔运算符(结构节点一个,结构节点b)

{

如果价格!=b.price)返回价格。

否则返回时间。

}//使用小于号,对于优先队列,效果是价格大的靠近顶部;对于分类函数,会把价格小的排在数组前面

};

bool cmp(节点一个,节点b){ 0

返回时间。

}

int main(void){ 0

int T=0;

CINT;

而(T-){ 0

priority _ queue节点Q;

节点arr[1005];

int N,total=0,DDL=0;

cin北部;

for(int I=0;I N;I){ 0

cin arr[i].时间;

ddl=ddl arr[i].时间ddl : arr[i].时间;

}

for(int I=0;I N;I){ 0

cin arr[i].价格;

总计=arr[i].价格;

}

排序(arr,arr N,CMP);

int j=0;

for(int I=DDL;I=1;i – ) {//错误:i=0

for(;arr[j].时间=I j N;j ) {//错误:1.时间=ddl 2 .缺少日本

//printf(‘%d ‘已被推送\n ‘,arr[j].时间);

q . push(arr[j]);

}

if(!q . empty()){ 0

//printf(‘总计是%d,Qtop是%d\n ‘,总计,Q.top().价格);

total -=Q.top().价格;

q . pop();

}

}

标准输出总恩德尔

}

返回0;

}

思路二

思路二的核心其实和思路一一样——让价值尽量大的作业,尽量往后安排。但是实现的方法不一样,既然我们想要让价值大的往后排,那我们不是只要让它在最后一天完成就好了但这样可能会有重复,没关系,那就让它往前一天,还是不行就两天,以此类推。为此我们需要将价值从大到小排序。

还是以样例3为例子,价值从大到小,如图所示

1 4 6 4 2 4 3

3 2 1 7 6 5 4

代码

#包括牡蛎

#包括

#包括算法

# includecstring

使用命名空间标准;

结构节点{

国际时间,价格;

};

bool cmp(节点一个,节点b){ 0

返回价格。

}

int main(void){ 0

int T=0;

CINT;

而(T-){ 0

priority _ queue节点Q;

节点arr[1005];

int vis[1005];

memset(vis,0,sizeof(vis));

int N,total=0,wave=0,DDL=0;

cin北部;

for(int I=0;I N;I){ 0

cin arr[i].时间;

ddl=ddl arr[i].时间ddl : arr[i].时间;

}

for(int I=0;I N;I){ 0

cin arr[i].价格;

总计=arr[i].价格;

}

排序(arr,arr N,CMP);

for(int I=0;I N;I){ 0

//for(int k=1;k=ddlk )printf(‘%d ‘,vis[k]);cout endl

int j;

for (j=arr[i]).时间;j=1 vis[j]!=0;j – ){}//这里很多我啊j啊,一定要沉下心来理清逻辑

vis[j]=arr[i].价格;

}

//for(int k=1;k=ddlk )printf(‘%d ‘,vis[k]);cout endl

for(int I=1;i=ddlI)花费=vis[I];

总支出;

}

返回0;

}

参考博客

https://www.cnblogs.com/blumia/p/hdu1789.html

https://blog.csdn.net/liluoyu_1016/article/details/78938559

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/103403.html

(0)

相关推荐

  • vue如何获取dom元素

    技术vue如何获取dom元素这篇文章将为大家详细讲解有关vue如何获取dom元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 vue获取dom元素的方法:

    攻略 2021年10月27日
  • Redis的底层数据结构-压缩列表

    技术Redis的底层数据结构-压缩列表 Redis的底层数据结构-压缩列表压缩列表(ziplist)是Redis为了节省内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可以

    礼包 2021年11月11日
  • 写朋友深厚友情的诗句,朋友之间感情深厚的诗句

    技术写朋友深厚友情的诗句,朋友之间感情深厚的诗句1写朋友深厚友情的诗句、黄鹤楼送孟浩然之广陵唐代:李白
    故人西辞黄鹤楼,烟花三月下扬州。
    孤帆远影碧空尽,唯见长江天际流。 (唯 通:惟)
    译文:老朋友向我频频挥手,告别了

    生活 2021年10月29日
  • 怎样看出仓鼠喜欢主人,仓鼠信任主人的表现有哪些

    技术怎样看出仓鼠喜欢主人,仓鼠信任主人的表现有哪些1怎样看出仓鼠喜欢主人、主人开笼子的时候,仓鼠只是抬头看看不会躲藏。 2、打开笼子手伸过去也没有躲闪。
    3、用手抓仓鼠,它没有明显的反抗,甚至很舒适的躺在手里。
    4、在

    生活 2021年10月30日
  • SQL服务启动错误代码3414的解决方法

    技术SQL服务启动错误代码3414的解决方法SQL服务启动错误代码3414的解决方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一个客户联系我,说他们

    攻略 2021年11月30日
  • css如何实现鼠标点击表格变色效果

    技术css如何实现鼠标点击表格变色效果这篇文章主要介绍了css如何实现鼠标点击表格变色效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    攻略 2021年11月26日