0
施巧稚
初级守护
初级守护
#include<iostream>
#include<algorithm>
using namespace std;
struct tree{
int dj,js;
}a[110000];
bool cmp(tree a,tree b){
if(a.dj!=b.dj) return a.dj<b.dj;
}
int main()
{
int w,n,ans=0;
cin>>w>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].dj;
}
for(int i=1;i<=n;i++)
{
cin>>a[i].js;
}
sort(a+1,a+1+w,cmp);
for(int i=1;i<=n;i++)
{
w-=a[i].dj*a[i].js;
if(w>0)//可以直接购买
{
ans++;
ans+=a[i].dj*a[i].js;//直接购买
}
if(w<=0)
{
ans+=a[i].dj*a[i].js;
n-=a[i].js;//如果不够,先算出最大可以供给的,再减去所需要的。
}
}
cout<<ans;
return 0;
}
这个输出不对啊,求大佬改代码
施巧稚在2020-06-14 11:55:23追加了内容
再求助一下4186,我的输出是20
#include<bits/stdc++.h>
using namespace std;
int a[1000],c[1000];
int main()
{
int n,rs;
cin>>n>>rs;
int sum=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+1+n);
for(int i=1;i<=rs;i++)
c[i]=a[i];
for(int i=rs+1;i<=n;i++) //第rs+1个人所需的时间就是打水+排队时间
c[i]=c[i-rs]+a[i];
for(int i=1;i<=n;i++)
sum+=+c[i]; //存
cout<<sum<<endl;
return 0;
}
0
0
0
0
0
0
蔡乐毅
高级光能
高级光能
- for(int i=1;i<=w;i++){
- if(n>a[i].js){
- ans+=a[i].dj*a[i].js;
- n-=a[i].js;
- }
- else{
- ans+=n*s[i].dj;
- break;
- }
- if(n>a[i].js){
- }
把23~36行改成这样
就AC了
蔡乐毅在2020-10-12 09:14:55追加了内容
1267
0
蔡乐毅
高级光能
高级光能
4186
把16~17行换成
- for(int i=m+1;i<=n;i++){
- minn=0x3f3f3f;
- for(int j=1;j<=m;j++){
- if(f[j]<minn){
- minn=f[j];
- pos=j;
- }
- if(f[j]<minn){
- }
- sum+=f[pos];
- f[pos]+=a[i];
- }
- f数组就是c数组
0
0
0
0
张皓轩
中级光能
中级光能
核心:
struct p{
int dj,js;
}a[100001];
bool cmp(p x,p y){
return x.dj<y.dj;
}
int w,n,ans;
int main(){
cin>>w>>n;
for(int i=1;i<=n;i++){
cin>>a[i].dj;
}
for(int i=1;i<=n;i++){
cin>>a[i].js;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
if(w-a[i].js>=0){
w-=a[i].js;
ans+=a[i].dj*a[i].js;
}else{
ans+=w*a[i].dj;
break;
}
}
cout<<ans;
return 0;
}
0
0
0