专栏文章
题解:P12249 [科大国创杯初中组 2025] 果汁
P12249题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipjsmfc
- 此快照首次捕获于
- 2025/12/03 13:09 3 个月前
- 此快照最后确认于
- 2025/12/03 13:09 3 个月前
思路
考虑贪心。
我们读题可知, 单调递增,这可以让我们免去一些复杂的代码。
然后,我们换一个想法,我们把 看作是还能装下多少单位果汁,然后我们分类讨论三种可能:
- 均大于 ,那么我们倒后面的,因为后面的不可能再到前面了,这样果汁都会集中在一些杯子里。
- 大于 但是 不大于 或者 不大于 但是 大于 ,那么我们倒还能倒的那一杯。
- 均不大于 ,那么我们可爱的小奶龙就可以开喝了,也就是答案加 。
代码
CPP#include<bits/stdc++.h>
using namespace std;
const int N=3e4+7;
int T,n,m,v[N],a[N],ans;
int main()
{
cin>>T;
while(T--){
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
cin>>a[i];
ans=0;//记得多测清空
for(int i=1;i<=n;i++){
if(v[a[i]]&&v[a[i]+1])v[a[i]+1]--;
else if(v[a[i]])v[a[i]]--;
else if(v[a[i]+1])v[a[i]+1]--;
else ans++;
}
cout<<ans<<endl;
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...