题目描述
使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这 m 个服务器的 IP 地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它 IP地址相同的服务器(不然客户端信息很有可能就会被泄露)。在这样的条件下,找到一种使用代理服务器的方案,使得代理服务器切换的次数尽可能得少。
输入描述:
每个测试数据包括 n + m + 2 行。
第 1 行只包含一个整数 n,表示代理服务器的个数。
第 2行至第n + 1行每行是一个字符串,表示代理服务器的 IP地址。这n个 IP地址两两不相同。
第 n + 2 行只包含一个整数 m,表示要访问的服务器的个数。
第 n + 3 行至第 n + m + 2 行每行是一个字符串,表示要访问的服务器的 IP 地址,按照访问的顺序给出。
每个字符串都是合法的IP地址,形式为“xxx.yyy.zzz.www”,其中任何一部分均是0–255之间的整数。输入数据的任何一行都不包含空格字符。
其中,1<=n<=1000,1<=m<=5000。
输出描述:
可能有多组测试数据,对于每组输入数据, 输出数据只有一行,包含一个整数s,表示按照要求访问服务器的过程中切换代理服务器的最少次数。第一次使用的代理服务器不计入切换次数中。若没有符合要求的安排方式,则输出-1。
示例1
输入

3
166.111.4.100
162.105.131.113
202.112.128.69
6
72.14.235.104
166.111.4.100
207.46.19.190
202.112.128.69
162.105.131.113
118.214.226.52
输出

1

通过代码:


#include<stdio.h>
#include<string.h>int solve(char p[1000][16],int n,char s[5000][16],int m)
{//每次调用,在目标串中找最长可以访问到的结点,从该结点开始再往后找最长int i,j,max;max = -1;for(i = 0;i < n;i++){for(j=0;j<m;j++){if(!strcmp(p[i],s[j])) //匹配则返回0,代理服务器只在目标服务器中出现多次也可以{if(j > max)max = j;break;}}if(j == m)  return 0;}if(n == 1 && max != -1)  //只有一台代理且出现在待访问队列中,无法完成!return -1;return 1+solve(p,n,s+max,m-max);
}int main()
{int m,n,i;while(scanf("%d",&n) != EOF){char p[n][16];for(i = 0;i <n ;i++)scanf("%s",p[i]);scanf("%d",&m);char s[m][16];for(i =0;i < m;i++)scanf("%s",s[i]);printf("%d\n",solve(p,n,s,m));}return 0;
}

清华大学--代理服务器相关推荐

  1. 微课|Python编写代理服务器程序(48分钟)

    中国大学MOOC"Python程序设计基础"第5次开课 推荐教材: <Python网络程序设计(微课版)>,ISBN:978-7-3025-8312-7,董付国,清华大 ...

  2. NAT技术和代理服务器

    一.代理服务器 所谓"代理",就是代而劳之的意思.代理服务器就是代理网络用户去取得网络信息,形象的说:它是网络信息的中转站,使得一个网络终端和另一个网络终端不直接进行相连,代理网络 ...

  3. SQL Relay开源的数据库池连接代理服务器

    一.SQL Relay是什么? SQL Relay是一个开源的数据库池连接代理服务器 二.SQL Relay支持哪些数据库? * Oracle * MySQL * mSQL * PostgreSQL ...

  4. 清华计算机学院新成立,清华AI更进一步:清华大学成立人工智能国际治理研究院...

    清华AI更进一步:清华大学成立人工智能国际治理研究院 2020-06-28 15:19:39 4点赞 4收藏 7评论 集微网消息(文/小如)6月24日,清华大学人工智能国际治理研究院成立会议举行. 图 ...

  5. 反向代理服务器的工作原理

    最近接触了nginx,nginx可以作为一个反向代理服务器完成负载均衡,下面记录一下从网上学习到的一些知识. 一  概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Interne ...

  6. 会唱歌、会弹琴,清华大学 AI 学生华智冰火了

    整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 清华大学计算机系知识工程实验室,开发的中国首个原创虚拟学生--华智冰,与近日亮相.她的声音.肢体动作全部由人工智能完成. 今年6 ...

  7. 清华官宣:前百度总裁张亚勤正式加盟清华大学

    整理 | Jane 出品 | AI科技大本营(ID:rgznai100) 12月31日,2019 年的最后一天,在大家沉浸在「总结过去」.「展望未来」之时,清华大学刚刚官宣了一则消息:前百度总裁张亚勤 ...

  8. 清华大学提出APDrawingGAN,人脸照片秒变艺术肖像画

    作者 | 刘永进教授 来源 | 转载自数据派THU(ID:DatapiTHU) 清华大学提出APDrawingGAN,该项工作被CVPR 2019录取为oral paper.CVPR是计算机视觉和人工 ...

  9. 清华大学人工智能研究院成立听觉智能研究中心,将专注基础研究和成果产业化

    4月22日,清华大学人工智能研究院听觉智能研究中心(以下简称听觉中心)成立仪式暨学术前沿报告会在清华大学FIT楼举行. 清华大学副校长.人工智能研究院管委会主任尤政院士在致辞中表示,成立听觉中心是清华 ...

  10. 那个大战AlphaGo的柯洁,将免试入读清华大学工商管理专业

    日前,柯洁将免试入读清华大学的消息经媒体曝光了出来. <2019 年优秀运动员免试入学推荐名单>3 月 10 日开始公示,围棋世界冠军柯洁的名字出现在名单上,其中表明他将就读清华大学工商管 ...

最新文章

  1. 详解Oracle介质恢复的内部过程
  2. php strncmp函数用法,strncmp函数用法详解
  3. IntelliJ IDEA快捷键与使用小技巧
  4. 学好python薪水有多少笔画_Python学到什么程度可以面试工作?
  5. rust笔记2 OwnerShip基础概念
  6. Win11 恢复设置Win10任务栏、快速启动栏及右键菜单(Win11 22000.100版本测试通过)
  7. cfa英语不好的怎么学_考CFA,英语太差怎么办?
  8. Linux/debian/ubuntu/deepin 等系统禁用鼠标中键(滚轮)按下粘贴的方法
  9. ShareTechnote系列LTE(10):多小区多RAT之间的交互
  10. 领域驱动设计(1) DDD的一些基础概念
  11. 焦虑的时候听一听,分享我喜欢的一段话,心就安静很多
  12. ZTD 简单做十个好习惯总结
  13. TabLayout的Indicator自定义宽度
  14. ios闹钟铃声实现代码
  15. 泛泛而谈的菜鸟学习记录(四)—— Vorley噪声生成原理及噪声边缘提取
  16. PHP 警告 Warning: Unknown: Input variables exceeded 1000. 解决方法
  17. 北京WIFI密码,很强大
  18. 分享 Python 教学视频,从基础到爬虫、网页、数据分析、机器学习.....
  19. 英读廊——尬跑一英里
  20. 祖源分析相关链接推荐

热门文章

  1. 解决api打开显示“已取消到该网页的导航”问题或者api里面没有内容
  2. android TextView 异常换行问题
  3. 任务栏右键工具栏里的语言栏没有的修复.reg
  4. 5种尊重您隐私的替代搜索引擎
  5. Google Play开发者账号注册、GoogleWallet解封及收款教程
  6. CS模式,客户端页面加载
  7. Python效率之王之多进程和多线程详解
  8. chr计算机语言,Chr,ChrW函数
  9. c 语言rand()生成随机数
  10. keras的net中使用tensorflow函数, AttributeError: ‘NoneType‘ object has no attribute ‘_inbound_nodes‘