基础贪心总结

本文概述了贪心算法在基础问题中的应用,如背包、装载问题、乘船问题及任务调度中的决策策略。通过性价比排序和权衡,展示了如何解决部分背包问题、最大化装载和任务调度的效率。同时涉及了其他领域的技术,如排序、项目选择等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* 基础贪心 - - 核心部分 */

/*
bool cmp ( const Wvs &x, const Wvs &y )
{
return x.v>y.v ;
}

for( int i = 1 ;i <= n; i++ )
{
cin >> wvs[i].w >> wvs[i].v ;
wvs[i].v /= wvs[i].w;
}

sort ( wvs + 1 ,wvs + n + 1 ,cmp ) ;

for( int i = 1 ;i <= n; i++ )
{

int x = min ( C, wvs[i].w);
ans += x * wvs[i].v;
C-=x;
if ( C<=0 ) break ;

}

cout << ans;

部分背包__
策略:以性价比的高低排序,再将物品可以带走的部分带走装进背包
*/

/*
for ( int i = 1; i <= n; i++ )cin >> v[i] ;
sort ( v + 1, v + n + 1 ) ;

for ( int i = 1; i <= n; i++ )
{
if( c >= v[i] ) k++, c-=v[i];
else break;
}

cout << k;

______装载问题
策略:尽可能装重量比较小的。
*/

/*

int n, C; cin >> n >> C ;
for ( int i = 1; i <= n; i++ ) cin >> v[i] ;
sort ( v + 1, v + n + 1 ) ;
int i = 1, j = n, ans = 0 ;
while ( i <= j )
{
ans ++;
if( v[i] + v[j]<=C ) i++, j-- ;
else j-- ;
}
cout << ans ;
___乘船问题
策略:将目前最重的人和最轻的人搭配,如果不能搭配就让重的人单独做一座船 。

*/

/*

bool used [N] ;

bool cmp ( const Rlg &r, const Rlg &l )
{
return r.money > l.money ;
}

sort ( rlg + 1, rlg + n + 1, cmp ) ;

for ( int i = 1; i <= n; i++ )
{

bool oks=true;
for ( int r = rlg[i].t; r >= 1; r-- ) 
{
	if ( !used[r] ){ used[r] = true; oks = false; break; }
}
if ( oks ) ans += rlg[i].money ;

}

任务调度问题______
策略:按罚款的金额排序,然后模拟一个日历的标记数组,尽量将时间安排的靠后,给那修需要完成时间比较早的任务留时间。
/*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

{∞}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值