1 条题解

  • 0
    @ 2025-8-24 22:47:41

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar yinzifan
    **

    搬运于2025-08-24 22:47:41,当前版本为作者最后更新于2025-05-22 17:08:13,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题面

    大意:给定 nn 个队伍的队员性别,让你求最小的花费(什么性别 26 个啊)。

    前置知识

    字符串,一定数学能力。

    算法分析

    只能同队住房,那就对每个输入进行处理。

    首先很容易就能发现有两个显而易见的方案:

    • 全买单间。
    • 全买双人间。

    取最小值即可。

    还有没有其他方案呢?

    当然,只要有两人性别相同,我们就可以让他们住进双人间,也就是一单一双的方案。

    有人就问了:没有两单一双的方案吗?

    双人间只住一人,那么如果双人便宜,我们就该全买单人(方案一);否则就全买双人(方案二)。所以我们已经处理过了这种情况。

    AC code

    #include<bits/stdc++.h>
    using namespace std;
    int n,ans=0,c1,c2;
    int main(){
    	cin>>n>>c1>>c2;
    	for(int i=1;i<=n;i++){
    		string s;
    		cin>>s;
    		int a1=min(c1,c2)*3,a2=0,a3=0;
    		if(s[0]==s[1]||s[0]==s[2]||s[1]==s[2]){
    			a2=c2+c1;
    			a3=c2*2;
    			ans+=min(a1,min(a2,a3));
    		} 
    		else{
    			ans+=a1;
    		}
    	}
    	cout<<ans;
    	return 0;
    } 
    
    • 1

    信息

    ID
    8788
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者