不行,因为有剩余无法利用
by tallnut @ 2023-10-29 08:40:38
可以的话早就有人写了
by ragwort @ 2023-10-29 08:42:15
这是不行的,谢谢
by DJRicher @ 2023-10-29 08:57:44
@[DARKER2000](/user/996601) 不怕死就贪
```
10 3
8 9
4 4
3 3
```
by zym0325 @ 2023-10-29 09:10:01
@[tallnut](/user/1037586)
什么叫“有剩余无法利用”
by zzx1228 @ 2023-10-29 19:39:44
@[DARKER2000](/user/996601) 参考@[zym0325](/user/804115) 大佬的数据
by tallnut @ 2023-10-29 20:46:50
@[DARKER2000](/user/996601) 不可以,局部最优无法达到整体最优,这个我试过了
by sususu_123 @ 2023-11-08 21:20:52
贪心是错误的,因为药材是没办法分割的
by youzimo @ 2023-12-18 20:23:58
贪心只能90分,我就是
代码:
```
#include<bits/stdc++.h>
using namespace std;
struct c
{
double jz=0;
int sj=0,zj=0;
};
int main()
{
long long n,m,n1,n2,n3=1,ans=0;
cin>>n>>m;
c a[m+1];int j2=m;
for(int i=1;i<=m;i++)
{
cin>>n1>>n2;
if(n2!=0&&n1!=0)
{a[n3].sj=n1;
a[n3].jz=1.0*n2/n1;
a[n3].zj=n2;
n3++;
}
}
for(int i=1;i<=m;i++)
{
for(int j=i+1;j<=m;j++)
{
if(a[j].jz<a[j-1].jz)
{
swap(a[j].jz,a[j-1].jz);
swap(a[j].zj,a[j-1].zj);
swap(a[j].sj,a[j-1].sj);
}
while(j2>=1)
{
ans+=(n/a[j2].sj)*(a[j2].zj);
n%=a[j2].sj;
j2--;
}
cout<<ans;
return 0;
}
```
}
cout<<ans;
return 0;
}
~~~
by qusia_MC @ 2024-01-28 07:25:08