题解 | #代理服务器#

代理服务器

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

简单贪心算法

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    int n, m;
    while (cin >> n) {
        vector<string> proxy;
        string s;
        while (n--) {
            cin >> s;
            proxy.push_back(s);
        }
        cin >> m;
        vector<string> ip;
        while (m--) {
            cin >> s;
            ip.push_back(s);
        }
        if (proxy.size() == 1) {    //处理代理服务器只有1个的情况
            int flag = false;
            for (int i = 0; i < ip.size(); i++) {
                if (ip[i] == proxy[0]) {
                    flag = true;
                    break;
                }
            }
            if (flag) {
                cout << "-1" << endl;
            }
            else {
                cout << "0" << endl;
            }
            continue;
        }
        int begin = 0, cnt = 0, pos = 0;
        int i, j;
        while (begin != ip.size()) {    //每次从所有代理服务器中选择一个可以到达最远的ip的位置
            for (i = 0; i < proxy.size(); i++) {
                for (j = begin; j < ip.size(); j++) {
                    if (proxy[i] == ip[j]) {
                        break;
                    }
                }
                pos = max(pos, j);   //可以到达最远的ip的position
            }
            begin = pos;  //下一次开始的位置从position处开始
            cnt++;    //这个位置处需要切换代理服务器了
        }
        cout << cnt - 1 << endl;
    }
    return 0;
}
全部评论

相关推荐

06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务