首页 > 其他分享 >【计蒜课 每周三题】2023-02-25 唱歌

【计蒜课 每周三题】2023-02-25 唱歌

时间:2023-02-24 08:33:46浏览次数:49  
标签:02 25 每周三 int ame 首歌 leq 喜欢 输入

唱歌

题目描述

ame 是一个可爱的女孩子,她想要唱歌。

一共有 \(n\) 首歌,第 \(i\) 首歌的长度 \(a_i\),同时唱第 \(i\) 首歌的满意值为 \(b_i\)。

ame 喜欢的歌满足 \(a_i\leq m\),同时有 \(k\) 首歌 \(c_1,c_2,\ldots,c_k\) 是 ame 不喜欢的。

其中 \(1\leq c_i\leq n\),表示编号为 \(c_i\) 的歌曲 ame 是不喜欢的。

请求出 ame 喜欢的歌中满意值第 \(p\) 大的歌曲的编号,如果不存在输出 aaaaaaaaa

输入格式

输入共四行。

第一行输入 \(4\) 个正整数 \(n,m,k,p\)。

第二行输入 \(n\) 个正整数 \(a_1,a_2,...,a_n\)。

第三行输入 \(n\) 个正整数 \(b_1,b_2,...,b_n\)。

第四行输入 \(k\) 个正整数 \(c_1,c_2,...,c_k\)。

输出格式

输出共一行,输出满意值第 \(p\) 大的歌曲的编号;若不存在,则输出 aaaaaaaaa

数据范围

对于 \(40\%\) 的数据,有 \(1\leq n\leq 5,1\leq m\leq 10,1\leq a_i \leq m,k=0\)。

对于另外 \(30\%\) 的数据,有 \(1\leq n\leq 10,0\leq k \leq n,1\leq a_i,b_i,m\leq 100\)。

对于 \(100\%\) 的数据,有 \(1\leq n,p\leq 1000,0\leq k\leq n,1\leq c_i\leq n,1\leq a_i,b_i,m\leq 1000\),数据保证 \(b_i\) 互不相同。

题解

首先除去不喜欢的歌,将喜欢的歌曲放入结构体中,再对结构体按照满意程度从大到小排序即可。

参考代码


#include <bits/stdc++.h>

using namespace std;
const int N = 1010;
int a[N], b[N], c[N];
/*
测试用例:
5 5 0 1
1 2 3 4 5
1 2 3 4 5

n=5 首歌
m=5 喜欢的歌长度小于5
k=0 没有不喜欢的
p=1 满意值第一大的是哪首歌

输入每首歌的长度a[i]
输入每首歌的喜欢程度值b[i]

答案:
5
*/

struct Node {
    int id;
    int value;
    const bool operator<(const Node &b) const {
        return value > b.value;
    }
} d[N];
int dl;

int main() {
    // 必须符合计蒜客的输入输出要求,否则不能完成提交!
    freopen("song.in", "r", stdin);
    freopen("song.out", "w", stdout);

    // n首歌,m:喜欢歌的长度a[i]<m,k:不喜欢歌的数量,p:满意值第p大
    int n, m, k, p;
    cin >> n >> m >> k >> p;
    for (int i = 1; i <= n; i++) cin >> a[i]; // 歌的长度
    for (int i = 1; i <= n; i++) cin >> b[i]; // 满意值

    // 超过长度m限制不喜欢
    for (int i = 1; i <= n; i++)
        if (a[i] > m) c[i] = 1;

    // 特殊指定的不喜欢
    for (int i = 1; i <= k; i++) {
        int x;
        cin >> x;
        c[x] = 1; // 不喜欢,当桶用
    }

    for (int i = 1; i <= n; i++)
        if (!c[i]) d[dl++] = {i, b[i]};
    sort(d, d + dl);

    if (d[p - 1].value)
        printf("%d\n", d[p - 1].id);
    else
        puts("aaaaaaaaa");

    return 0;
}

标签:02,25,每周三,int,ame,首歌,leq,喜欢,输入
From: https://www.cnblogs.com/littlehb/p/17150080.html

相关文章

  • 【计蒜课 每周三题】2023-02-25 逛街
    逛街题目描述小蒜喜欢逛街。但是小蒜时间有限,只有\(T\)个单位时间。小蒜从\(1\)号店出发,从\(1\)号店走到第\(i\)号店需要花费\(a_{i}\)个单位的时间,这些店形成......
  • 2023-02-23 量学基础 平顶不过,双阴出货
    案例1:案例出自2023-02-15板枪加课1h23分002341和001339    ......
  • [LeetCode] 502. IPO
    SupposeLeetCodewillstartits IPO soon.InordertosellagoodpriceofitssharestoVentureCapital,LeetCodewouldliketoworkonsomeprojectstoinc......
  • Leetcode 2569 Handling Sum Queries After Update
    2569. HandlingSumQueriesAfterUpdatYouaregiventwo 0-indexed arrays nums1 and nums2 anda2Darray queries ofqueries.Therearethr......
  • 2560战法选股公式
    {2560条件:主升2560N天低量X天内上穿N天内五日均量线一直低于60日均量线日线上穿25日均线三天内五日均量线上穿60日均量线买点1:冲量买点2:做量,即日线回踩25日均线后反弹上......
  • misc----练习------2023.2.22
    ------------恢复内容开始------------1,心仪的公司---攻防世界打开发现是一个叫webshell的流量包,打开用httpcontains"shell"过滤,得到一个jpeg的流量,点开划到最下即有fl......
  • 蓝桥杯2022年第十三届省赛真题-回忆迷宫 (暴力加深搜)
    题目描述爱丽丝刚从一处地下迷宫中探险归来,你能根据她对于自己行动路径的回忆,帮她画出迷宫地图吗? 迷宫地图是基于二维网格的。爱丽丝会告诉你一系列她在迷宫中的......
  • 每日随笔2023/2/23
    今天就上了个体育课,然后就没了,体育课累得不行,考试了,考的不错,应该70多,没白练。然后回来打扫了下卫生,晚上就学习了AndroidStudio,学习了一些控件,边听边打,周六差不多可以学习......
  • day02-自己实现Mybatis底层机制-01
    自己实现Mybatis底层机制-01主要实现:封装SqlSession到执行器+Mapper接口和Mapper.xml+MapperBean+动态代理Mapper的方法1.Mybatis整体架构分析对上图的解读:1)mybatis......
  • 2022.2.23学习总结
     两天没有写博客了,最近一些生活和学习的安排也比较忙,但还是抽出了一些学习了一点编程,周二的时候,我配置了AndroidStudio,在新建模块的时候花费了一点的时间,许多同学们也......