首页 > 其他分享 >E - Set Meal

E - Set Meal

时间:2023-12-04 22:11:44浏览次数:29  
标签:Set int abc331 100005 cost dish Meal

E - Set Meal

https://atcoder.jp/contests/abc331/tasks/abc331_e

 

思路

定义 vector<int> v[100005];

对于 c d 对进行group操作, 得到每个ai dish 对应不可能的 bj dish的cost值的集合

 

对b dish cost数组进行排序, 小的在前,大的在后,

对于每一个a dish, 使用v寻找第一个排除 “此dish对应不可能的 bj dish的cost值的集合 ”后的 最大cost值, 更新到 max_ab_product.

 

Code

https://atcoder.jp/contests/abc331/submissions/48194364

 

int N,M,L;

int a[100005], b[100005];

vector<int> v[100005];

int main()
{
    cin >> N >> M >> L;

    for(int i=1; i<=N; i++){
        cin >> a[i];
    }

    for(int i=1; i<=M; i++){
        cin >> b[i];
    }

    for(int i=1; i<=L; i++){
        int c, d;
        cin >> c >> d;
        
        v[c].push_back(b[d]);
    }

    for(int i=1;i<=N;i++){
        sort(v[i].begin(),v[i].end());
//        reverse(v[i].begin(),v[i].end());
    }
    
    sort(b+1,b+M+1);
    
    int max_ab_product=-1;
    for(int i=1;i<=N;i++){
        int ai = a[i];
//        cout << "i=" << i << "; ai=" << ai << endl;
        
        for(int j=M;j;j--){
            int bj = b[j];
            cerr << "bj=" << bj << endl;
            
            bool bj_invalid = false;
            for(int k=0; k<v[i].size(); k++){
//                cout << "k=" << k << "; val=" << v[i][k] << endl;
                if (v[i][k] == bj){
                    v[i].erase(v[i].begin()+k);
                    bj_invalid = true;
                    break;
                }
            }
            
            if (bj_invalid){
                // compare with next biggest bj
                continue;
            }
            
            // valid bj found
            int product = ai + bj;
            if (max_ab_product < product) {
                max_ab_product = product;
            }

//            cout << "i=" << i << "; j="<< j << endl;
//            cout << "ai=" << a[i] << "; bj="<< b[j] << endl;
//            cout << "product = " << product << endl;

            break;
        }
    }
    
    cout << max_ab_product << endl;
    
    return 0;
}

 

标签:Set,int,abc331,100005,cost,dish,Meal
From: https://www.cnblogs.com/lightsong/p/17876146.html

相关文章

  • vue3 setup 父组件向子组件传递参数、方法|子组件向父组件传递数据,函数
    https://blog.csdn.net/qq_27517377/article/details/123163381https://blog.csdn.net/qq_27517377/article/details/123166367vue3setup父组件向子组件传递参数参数<template><el-rowclass="mb-4"> <el-buttontype="danger">props.vue传......
  • Solution Set 2023.12.4
    来衡实了,感觉良好。[NOIP2023]三值逻辑一直以为是写假了,结果是写挂了,没有判自环的同时\(u,v\)输入反了。考虑对于每个变量的每个版本均开一个节点,那么赋值关系可以用有向边表示,可以发现最终得到的一定是若干外向基环树和若干外向树组成的图。且被\(\tt{T,F,U}\)三种指令......
  • 手写类似于BetterScroll样式的左右联动菜单 uni-app+vue3+ts (使用了script setup语法
     注意:在模拟器用鼠标滚动是不会切换光标的,因为使用的是触摸滑动。【自定义类型贴在最后了】script部分如下:import{onMounted}from'vue'importtype{orderDetail}from'@/types/category'importtype{mainArr}from'@/types/main-arr'import{nextTick,ref}......
  • python 属性装饰器和对应的setter方法,属性的封装和安全性控制
    当我们在类中定义属性时,通常希望能够对属性的读取和写入进行控制,以确保数据的完整性和安全性。属性装饰器和对应的setter方法提供了一种实现属性封装和安全性控制的方法。属性装饰器是Python的一种语法特性,用于修饰类的方法,使其表现为一个属性而不是一个普通的方法。通过使用属性......
  • 关于函数宏offset_of 和 container_of的学习
    #defineoffset_of(type,member)((unsignedint)&((type*)0)->member)#definecontainer_of(ptr,type,member)((type*)((char*)(ptr)-offset_of(type,member)))offset_of(type,member)用途:用于获取获取结构体某一个成员在该结构体中的位置参数1:type,表示......
  • 1.Java集合(List、Set、Queue)
    1.集合概述Java集合也被称为容器。主要由两个接口组成,一个是Collection接口,主要存放单一元素;一个是Map接口,主要存放键值对。Collection下面还有三个子接口,分别是List、Set、Queue。Java框架如下图所示:1.1List、Set、Queue、Map简介List(对付顺序的好帮手):存储的元素有序、......
  • 最新Unity DOTS教程之BlobAsset核心机制分析
    最近DOTS发布了正式的版本,我们来分享一下DOTS里面BlobAsset机制,方便大家上手学习掌握UnityDOTS开发。BlobAsset 概叙DOTS提供了BlobAsset机制来把数据生成高效的二进制数据。BlobAsset的数据是不可变的。BlobAsset只支持非托管类型数据。支持Burst编译器编译出来的类型。同......
  • 你真的了解HashSet 和HashMap的区别、优缺点、使用场景吗?
     HashSet和HashMap是Java集合框架中的两个常用类,它们都用于存储和管理数据,但在使用方式、功能和性能上有很大的区别。HashSet和HashMap的区别区别一:用途不同HashSet: HashSet是一个基于哈希表的集合,用于存储不重复的元素,它不存储键值对。它实际上是基于HashMap......
  • setTimeout 函数在前端延迟搜索实现中的作用
    看这段代码:SmartFilterBar.prototype._regularTriggerSearch=function(iDelay){ if(this.getSuppressSelection()){ return; } this._clearDelayedSearch(); this._iDelayedSearchId=setTimeout(function(){ varaPromises=this._getVisibleControlsL......
  • 关于 SAP 标准 OData 服务 /sap/bc/adt/ato/settings 的作用
    SAPODataService/sap/bc/adt/ato/settings介绍简介/sap/bc/adt/ato/settings是SAP中一个标准的OData服务,用于处理与ABAPDevelopmentTools(ADT)相关的设置。ADT提供了开发、维护和管理ABAP程序的工具,而这个OData服务允许通过HTTP协议访问ADT设置的相关信......