贪心-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)

相关推荐

  • 什么叫奇数什么叫偶数,什么叫做偶数

    技术什么叫奇数什么叫偶数,什么叫做偶数定义什么叫奇数什么叫偶数:整数中,能够被2整除的数,叫做偶数. 若不能,它就是奇数特别提示:偶数包括正偶数、负偶数和0.
    所有整数不是奇数(又称单数),就是偶数(又称双数).若某数是

    生活 2021年10月23日
  • 晚安和安哪个更亲密,晚安和安有什么大的区别吗

    技术晚安和安哪个更亲密,晚安和安有什么大的区别吗晚安和安晚安和安哪个更亲密,从字面上理解都是一样的意思。 晚安:晚上向人问候礼貌用语或者晚上睡觉之前的温馨用语。 安:现代年轻人常用语,是晚安的省略版。 有更亲昵的成份。多

    生活 2021年10月23日
  • 怎么用python实现一个指数运算

    技术怎么用python实现一个指数运算本篇内容主要讲解“怎么用python实现一个指数运算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用python实现一个指数运算”吧

    攻略 2021年11月4日
  • 哪些前端组件库可以让你放弃jQuery UI

    技术哪些前端组件库可以让你放弃jQuery UI这篇文章给大家介绍哪些前端组件库可以让你放弃jQuery UI,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在建立Web应用时,通常都需要用到一些有用

    攻略 2021年11月16日
  • Oracle Study在AIX环境下如何构建主机信任关系

    技术Oracle Study在AIX环境下如何构建主机信任关系这篇文章主要介绍Oracle Study在AIX环境下如何构建主机信任关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在AIX环境下

    攻略 2021年11月24日
  • 哈尼族的传统节日风俗,哈尼族有哪些节日和风俗习惯

    技术哈尼族的传统节日风俗,哈尼族有哪些节日和风俗习惯居住习俗:哈尼族多居住在半山腰,依山势建立村寨。2.服装习俗:哈尼族一般用自己染织的藏青色土布做衣服。男人多穿对襟上衣和长裤,用黑布或白布裹头。妇女多穿右襟无领上衣,下

    生活 2021年10月21日