题解 | #代理服务器#

代理服务器

https://www.nowcoder.com/practice/1284469ee94a4762848816a42281a9e0

贪心策略:
量度标准:每次使用一个能够访问最多服务器(按顺序)即在服务器中最晚出现的代理服务器;


#include <iostream>
#include <vector>
using namespace std;
vector<string> agents;
vector<string> severs;
int minChange(vector<string> agents,vector<string> severs,int n,int m){
    vector<bool> flag(n,false);//用来标记代理是否出现在访问序列中
    int res=0;
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            if(agents[j]==severs[i]){//访问的服务器是某个代理服务器
                if(n==1){//若只有一个,则无法完成访问。
                    return -1;
                }
                else{
                    flag[j]=true;//标记该代理
                    bool is_all=true;//作为是否所有代理被标记的标记
                    for(int k=0;k<n;k++){
                        if(flag[k]==false){//存在未被标记的代理
                            is_all=false;
                            break;
                            }
                        }
                    if(is_all==true){//如果全部呗标记就说明刚被标记的是最晚被标记的,此时需要切换下一个最晚被标记的
                        res++;
                        for(int k=0;k<n;k++){
                            flag[k]=false;
                        }
                        flag[j]=true;//若全部被标记,从头开始时,agent[j]仍要保持被标记的状态
                    }
                }
                break;
            }
        }
    }
    return res;
}
int main(){
    int n=0,m=0;
    int res=0;
    string data;//获取输入数据
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>data;
        agents.push_back(data);
    }
    cin>>m;
    for(int i=0;i<m;i++){
        cin>>data;
        severs.push_back(data);
    }
    res=minChange(agents,severs,n,m);
    cout<<res<<endl;
    
}

全部评论

相关推荐

10-30 10:16
南京大学 Java
永远的鹅孝子:给南大✌️跪了
点赞 评论 收藏
分享
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
439565次浏览 4481人参与
# 春招别灰心,我们一人来一句鼓励 #
41297次浏览 523人参与
# 阿里云管培生offer #
119505次浏览 2219人参与
# 地方国企笔面经互助 #
7904次浏览 18人参与
# 虾皮求职进展汇总 #
113037次浏览 878人参与
# 实习,投递多份简历没人回复怎么办 #
2453508次浏览 34845人参与
# 北方华创开奖 #
107179次浏览 598人参与
# 实习必须要去大厂吗? #
55545次浏览 959人参与
# 同bg的你秋招战况如何? #
74881次浏览 544人参与
# 提前批简历挂麻了怎么办 #
149742次浏览 1975人参与
# 投递实习岗位前的准备 #
1195546次浏览 18545人参与
# 你投递的公司有几家约面了? #
33155次浏览 188人参与
# 双非本科求职如何逆袭 #
661700次浏览 7392人参与
# 机械人春招想让哪家公司来捞你? #
157576次浏览 2267人参与
# 如果公司给你放一天假,你会怎么度过? #
4705次浏览 53人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11170次浏览 252人参与
# 发工资后,你做的第一件事是什么 #
12320次浏览 60人参与
# 工作中,努力重要还是选择重要? #
35479次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20062次浏览 240人参与
# 实习想申请秋招offer,能不能argue薪资 #
39188次浏览 314人参与
# 我的上岸简历长这样 #
451841次浏览 8086人参与
# 非技术岗是怎么找实习的 #
155825次浏览 2120人参与
牛客网
牛客企业服务