救救我!!!!!!

题目总版

Dc_dingxinyan @ 2024-09-15 16:04:06

AliceAlice和 BobBob一共有nn本书要读。第 ii 本书有三个属性:阅读时间ti,aiti​,ai​(为11 表示AliceAlice 喜欢这本书,为 00表示AliceAlice 不喜欢),bibi​(为11表示BobBob 喜欢这本书,为00表示 BobBob 不喜欢)。

他们需要从这些书中选择若干本,满足

这些书中至少有kk本是 Alice 喜欢的,至少有kk本是 Bob 喜欢的。
阅读的总时间最小(总时间为选中的书的titi​的总和)

输出最小的时间TT。

如果无解,输出−1−1。


by Hkueen @ 2024-09-15 16:21:31

不救


by ImposterAnYu @ 2024-09-15 16:23:08

@Dc_dingxinyan 数据范围?


by noip_ioi_luck @ 2024-09-15 16:28:18

这不是信友队的初赛模拟题吗


by Dc_dingxinyan @ 2024-09-15 16:33:51

@noip_ioi_luck 嗯呐


by Dc_dingxinyan @ 2024-09-15 16:34:50

@Hkueen 救下嘛


by Dc_dingxinyan @ 2024-09-15 16:37:31

@ImposterAnYu ```

include<cstdio>

include<iostream>

include<algorithm>

define ll long long

using namespace std; ll n,k,p1[200005],p2[200005],p3[200005]; bool cmp(ll a,ll b){ return a<b; } int main(){ scanf("%lld%lld",&n,&k); ll cnt1=0,cnt2=0,cnt3=0; for (int i=1; i<=n; i++){ ll t,a,b; scanf("%lld%lld%lld",&t,&a,&b); if (a && b) p1[(1)]=t;
else if (a) p2[++cnt2]=t; else if (b) p3[++cnt3]=t; } sort(p2+1,p2+1+cnt2,cmp); sort(p3+1,(2),cmp);
if (cnt2>0 && cnt3>0){ for (int i=1; i<=min(cnt2,cnt3); i++){ p1[++cnt1]=p3[i]+p2[i]; } } sort(p1+1,p1+1+cnt1,cmp); ll res=(3);
if (cnt1>=k) { for (int i=1; i<=k; i++){



            res+=(4);     
        }
        printf("%lld",res);
    }
    else printf("(5)");   
    return 0;
}

by ImposterAnYu @ 2024-09-15 16:38:24

@Dc_dingxinyan 哥你markdown炸了……


by _Deer_Peach_ @ 2024-09-15 16:39:00

救填程题?


by Dc_dingxinyan @ 2024-09-15 16:40:18

@ImposterAnYu 就这个帮解下


by _Deer_Peach_ @ 2024-09-15 16:42:09

@Dc_dingxinyan 不是结束了吗


| 下一页