acgo题库
  • 首页
  • 题库
  • 学习
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情提交记录(0)
  • 6

    #include<bits/stdc++.h> using namespace std; int m,n,k,b[100001],c[100001],anss,ans,maxn,maxk=1e9,ti[100001]; pair<int,int>a[100001]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>m>>n>>k; for(int i=1;i<=n;i++){ cin>>a[i].second; ti[a[i].second]; }for(int i=1;i<=n;i){ cin>>a[i].first; }sort(a+1,a+n+1); for(int i=n;i>=1;i--){ if(b[a[i].second]<k){ b[a[i].second]+=a[i].first;//统计现在的经验值 if(b[a[i].second]>=k)anss++;//统计有多少个知识点达到了k ans++;//增加题数 c[a[i].second]++;//统计每个知识点的选择题数 if(maxn<c[a[i].second])maxn=c[a[i].second],maxk=ti[a[i].second];//统计选择最多题的知识点选择了的题数 else if(maxn==c[a[i].second])maxk=min(ti[a[i].second],maxk); //另外 maxk 存储选择了最多题的知识点总题数,以免没有足够的题去乱做,使无法让两道同样知识点的题不一起做。 } }if(anss!=m||maxn2-1>n||maxn>n-maxk)cout<<"-1";//输出 else cout<<max(maxn2-1,ans); return 0; }

    userId_undefined

    ༺ཌༀ凌驾于你之上ༀད༻

    时空双修者题解仙人数组·数组操作员快乐小狗秩序白银字符串·魔法使
    1阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页