首页 > 其他分享 >2024.08.03米哈游秋招第一场

2024.08.03米哈游秋招第一场

时间:2024-09-04 21:38:24浏览次数:13  
标签:03 vector int 2024.08 互斥 米哈 relation 数组 米小游

1. 数组价值

米小游有一个长度为 n 的数组,其中第 i 个元素为 ai。现在定义数组的价值是最大的相邻数字的乘积。
例如数组为 [3,5,1,2] ,相邻元素的乘积分别是 35=15,51=5和1*2=2 ,则数组的价值是这些数字中的最大值,即 15。
现在米小游想要任选数组中的某两个相邻的元素进行交换(你必须使用这次交换机会),他想知道最大可以将数组的价值更改为多少?

观察计算相邻和间隔一位乘积最大值即可
int main() {
    int n;
    cin>>n;
    vector<int> nums(n);
    for(int i=0;i<n;i++)
        cin>>nums[i];
    long long res = 0;
    for(int i=0;i<n-1;i++){
        if(i<n-2) res = max(res,(long long)nums[i]*nums[i+2]);
        res = max(res,(long long)nums[i]*nums[i+1]);
    }
    cout<<res;
    return 0;
}

2. 米小游买商品

商店里有 n个商品,分别编号为 1~n ,每个商品都有一个价值 vali和体积 wi,米小游有一个有一个 m 容量的背包,他能够装得下任意多个体积之和不超过 m 的商品。
米小游认为有些东西一起购买会带来灾难,比如可莉的角色立牌和蹦蹦炸弹的小手办,
所以他设定了 k组互斥关系,每组关系给定两个数字 a,b,表示编号为 a 的商品和编号为 b的商品不能同时购买。
米小游希望装下的物品的价值之和最大,请你帮帮他求出最大价值。

暴力回溯搜索,注意撤回选择的时候,不能把另一个互斥关系撤回,所以要采用多重加锁

int main() {
    int n,m,k;//商品数量,背包容量,互斥关系
    cin>>n>>m>>k;
    vector<vector<int>> items(n,vector<int>(2));
    vector<vector<int>> relation(k,vector<int>(2));
    for(int i=0;i<n;i++)
        cin>>items[i][0]>>items[i][1];//体积和价值
    unordered_map<int,int> mp;//互斥关系1~n
    for(int i=0;i<k;i++){
        cin>>relation[i][0]>>relation[i][1];
        mp[relation[i][0]-1] = relation[i][1]-1;
        mp[relation[i][1]-1] = relation[i][0]-1;
    }
    //正常是背包动态规划,但由于数据量n很小,以及存在互斥,直接使用暴搜
    function<int(int,int,vector<int>&)> dfs = [&](int i,int capacity,vector<int>&h)->int{
        if(i==n) return 0;//访问完毕边界
        int res = 0;
        res = max(res,dfs(i+1,capacity,h));//不选
        if(h[i]==0&&items[i][0]<=capacity){//选
            h[mp[i]]++;
            res = max(res,items[i][1]+dfs(i+1,capacity-items[i][0],h));
            h[mp[i]]--;
        }
        return res;
    };
    vector<int> memo(n,0);
    cout<<dfs(0,m,memo);
    
    return 0;
}

3. 删点

米小游和派蒙在进行一场游戏。游戏在一个基环树(点数与边数相等的无向简单连通图)上进行,
定义图中一个点的度数为与其相连的边数,二人轮流进行以下操作:
选择图中一个度数为 1 的点,删除这个点以及与这个点相连的边。
图中有一个特殊的点 x ,删除了点 x 的玩家即获得胜利。现在,由米小游先进行操作。在双方都采取最优策略的情况下,胜者是谁?

拓扑排序,同时找出规律
也就是位于环上,即度不能为1,找不到,不位于环上,若是第一个,则玩家一胜利,否则看找到前能删除的点个数是奇数还是偶数

int main() {
    int T;
    cin>>T;
    while(T--){
        int n,x;
        cin>>n>>x;
        vector<vector<int>> graph(n+1);
        queue<int> q;//入度为1的队列
        vector<int> cnt(n+1);//入度的数量
        for(int i=0;i<n;i++){
            int from,to;
            cin>>from>>to;
            graph[from].push_back(to);
            graph[to].push_back(from);
            cnt[from]++;
            cnt[to]++;
        }
        for(int i=1;i<=n;i++)
            if(cnt[i]==1) q.push(i);
        bool find = false;
        bool first = true;
        int res = 0;
        while(!q.empty()){
            int cur = q.front();
            q.pop();
            if(cur==x){
                find = true;
                continue;
            }
            for(auto next:graph[cur]){
                if(next==x) first = false;
                cnt[next]--;
                if(cnt[next]==1) q.push(next);
            }
            res++;
        }
        if(find==false) cout<<"Draw";
        else{
            
            if(first||res%2==0) cout<<"Xiaoyo";
            else cout<<"Pyrmont";
        }
    }
    return 0;
}

标签:03,vector,int,2024.08,互斥,米哈,relation,数组,米小游
From: https://www.cnblogs.com/929code/p/18397372

相关文章

  • 周贵尧研究员等《Nature Geoscience》!基于14038个全球变化控制实验发现全球变化因子数
    本文首发于“生态学者”微信公众号!作者投稿系列陆地生态系统同时受到全球变暖、干旱、氮沉降、火烧、过度放牧等众多气候变化和人类活动等因素的影响。过去关于单个全球变化因子对碳固存、土壤肥力和生物多样性等生态系统服务的影响具有较为全面地认识。然而,当前关于全球变......
  • fatal: unable to access 'https://aomedia.googlesource.com/aom.git/': Failed to c
     低版本的Mac安装PHP就是受罪brewinstallshivammathur/php/[email protected]:YouareusingmacOS11.We(andApple)donotprovidesupportforthisoldversion.Itisexpectedbehaviourthatsomeformulaewillfailtobuildinthisoldversion.Itisexpec......
  • Error: xz: undefined method `deny_network_access!' for Formulary::FormulaNamespa
      ==>Fetchingxz==>Downloadinghttps://raw.githubusercontent.com/Homebrew/homebrew-core/c7f385112a4c2b9eed76b346d11d333fa8954a89/Formula/x/xz.rbAlreadydownloaded:/Users/wboll/Library/Caches/Homebrew/downloads/049af374432798d3b924a0d36bdcd6......
  • Kubernetes从零到精通(03-资源对象)
    资源对象的种类今天我们开始研究Kubernetes中的资源对象,资源对象是Kubernetes这个软件定义的抽象逻辑概念,这些资源对象及其对应的属性(如资源对象之间的对应关系),都会保存到ectd数据库中并通过Kubernetes各控制组件实时更新,下面我们先看一下资源对象的分类和用途,然后再根据一个......
  • mac 上golang编译 安卓系统的so 错误 'android/log.h' file not found
    lib.gopackagemainimport"C"//exportSpeedTestfuncSpeedTest(config*C.char){ configContent:=C.GoString(config) run(configContent)}funcmain(){}需要安装NDK,用Androidstudio安装,在SDKManeger的SDKTool里选择安装NDK(sidebyside),成功后一般在......
  • 升级程序后报错 :Parse error: syntax error, unexpected ':', expecting
    当您看到类似“Parseerror:syntaxerror,unexpected':',expecting...”这样的错误时,这通常是因为PHP代码中存在语法错误。具体来说,这通常是因为某个语法特性在当前PHP版本中不被支持。常见原因PHP版本不兼容:新代码可能使用了较新版本的PHP语法特性,而当前服务器上......
  • MySQL 2003 - Can’t connect to MySQL server on ' '(10060)
    2003-Can’tconnecttoMySQLserveron''(10060) 一般是以下几个原因造成的:1.网络不通畅2.mysql服务未启动3.防火墙未开放端口4##云服务器的安全组规则未设置  一般是以下几个原因造成的:1.网络不通畅:【mysql-u-p,看看能不能登陆】2.mysql服务未启动:【mysql-u-p,......
  • 代替STM32L010 STM32G030 CMS8S6990 STM8S003的芯片CW32L010
    CW32L010作为一款可以代替STM32L010STM32G030CMS8S6990STM8S003部分型号可以兼容的芯片,其功能上能够和它们相匹配,并且在功能更优秀,其芯片特点在于超低功耗,高精度ADC和主频最高可达到48MHz。CW32L010是基于eFlash的单芯片低功耗微控制器,集成了主频高达48MHz的ARM®Cort......
  • 2-STM32F103+ML307(中移4G Cat1)基本控制篇(自建物联网平台)-整体运行测试-Android扫
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/ML307/my.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  说明这节测试一......
  • 20240904_121403 mysql 数据库的备份与恢复 命令篇
    对数据库进行备份操作通过cmd打开命令提示符关注当前的路径通过命令来实现备份备份my_school的库到bf2.sql备份的结果在当前的路径下C:\Users\Administrator会存在bf2.sql文件恢复备份提前建库进入mysql创建要恢复的库my_schoolcmd命令导入sql内容当前路径要......