欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

yzo sgyq 贪心算法1

时间:2024-06-30 12:19 作者:admin 点击:
贪心算法 求最优方案的时候,每一个步骤都选择当前最优解,这样可以解决整体最优解,那么就可以使用贪心算法 最优子结构问题:全局最优解包含局部最优解 排队接水 1319 struct no

贪心算法

求最优方案的时候,每一个步骤都选择当前最优解,这样可以解决整体最优解,那么就可以使用贪心算法

最优子结构问题:全局最优解包含局部最优解

排队接水 1319

struct node{

int val;

int i;

};

bool cmp(node a,node b){

return a.val<b.val;

}

node k[1050];

int main(){

cin>...;

sort(k,k+n);

double sum=0;

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

cout<<k[i].i<<" ";

sum+=(n-i)*k[i].val;

}

cout<<sum;

}

电池的寿命 1229

输入过程获取最大电池的电量maxa,以及所有电池的电量suma

if(maxa>=suma-maxa){

cout<<suma-maxa;

}

else{

cout<<suma/2;

}

接水问题 1233

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

cin>>t;

sort(m,m+k);

m[0]+=t;

}

sort(m,m+k);

cout<<m[k-1];

金银岛 1225

int w,s;

double n[10050],v[10050];

while(w--){

cin>>s;

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

cin>>n[i]>>v[i];

}

}

struct node{

double n;

double v;

double p;

}k[10050];

bool cmp(node a,node b){

return a.p>b.p;

}

int w,s,t;

double n[10050],v[10050];

cin>>t;

while(t--){

cin>>w>>s;

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

cin>>n[i]>>v[i];

k[i].n=n[i];

k[i].v=v[i];

k[i].p=v[i]/n[i];

}

sort(k+1,k+1+s,cmp);

sy=w;

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

if(k[i].n>sy){

sum+=k[i].p*sy;

sy=0;

}

else {

sy-=k[i].n;

sum+=k[i].v;

}

if(sy==0) break;

}

cout<<

}

贪心算法进阶作业:

https://www.luogu.com.cn/problem/P1809

ybt.ssoier.cn:8088/problem_show.php?pid=1322


(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%