贪心算法小记——代理服务器
贪心策略用于求解最优化问题,基本原理是:总是选择当前状态中最优的策略。
当然,每一个局部最优
加起来可能并不等于全局最优
。
这也是使用贪心前最需要搞清楚的问题:确定某个状态以前的过程不会影响以后的状态。
代理服务器:题目链接
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<string>
#include<iostream>
#include<vector>
using namespace std;int main()
{int n,m;while(cin >> n){string t;vector<string> ser;for(int i=0;i<n;i++){cin >> t;ser.push_back(t);}cin >> m;vector<string> vis;for(int i=0;i<m;i++){cin >> t;vis.push_back(t);}int ans = 0;while(true){int max = 0;//对每个服务器,计算其能够访问的最远距离 for(int i=0;i<ser.size();i++){int j; for(j=0;j<vis.size();j++){if(ser[i] == vis[j]){ //地址相同,无法访问 if(j > max){max = j;cout << "max change to:" << max << endl;}break;} elsecout << "visit " << vis[j] << " with " << ser[i] << endl;}if(j == vis.size()) {//可能1:已经访问完所有网站,输出并结束即可 cout << ans << endl;return 0; }else{} //可能2:由于ip地址相同,break到这里,但此时还没有计算完max值,需进入下个循环 }ans++; //由贪心算法,此时的局部最优解就是全局最优解,所以将已访问的地址删去 cout << "max: " << max << ",the last erase IP is: " << *(vis.begin()+max-1)<< endl;vis.erase(vis.begin(),vis.begin()+max); //左闭右开 if(max == 0){ // 所有服务器都无法再前进一步,无解 cout << -1 << endl;return 0;}}}
}
贪心算法小记——代理服务器相关推荐
- 算法设计与分析第3章 贪心算法
第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...
- 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...
问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...
- 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码
1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...
- 一份贪心算法区间调度问题解法攻略,拿走不谢
作者 | labuladong 来源 | labuladong(ID:labuladong) [导读]什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多 ...
- 漫画:五分钟学会贪心算法!
假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些"局部最优解"叠起来,就"当作&qu ...
- 下载插件(贪心算法)
小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载.假定每分钟选择以下两种策略之一: 使用当前带宽下载插件 将带宽加倍(下载插件数量随之加倍) 请返回小扣完 ...
- Runnable接口和贪心算法
1 Runnable接口 Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现.设计该接口的目的是为希望在活动时执行代码的对象提供一个公共协议.激活的意思是说某个线程已启动并且尚未停止 ...
- 拜托,别再问我贪心算法了!
来自:码海 前言 上篇一文学会动态规划解题技巧 被不少号转载了,其中发现有一位读者提了一个疑惑,在求三角形最短路径和时,能否用贪心算法求解.所以本文打算对贪心算法进行简单地介绍,介绍完之后我们再来看看 ...
- Dijkstra 贪心算法 动态规划
我认为 Dijkstra算法 的本质是 广度优先搜索, 而此处的广度是定义在路程的cost之上的. (就好比从圆心处向外扩散一个圆环,首次碰到的就是最近) 动态规划泛指,重叠子问题与原问题的推算关系( ...
- 三十六、贪心算法--集合覆盖问题
一.贪心算法介绍 1.贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 2.贪心算法不是对所有问题都 ...
最新文章
- Dubbo 负载均衡的实现
- 测试php连接mysql
- python之禅中文-「翻译」Python之禅
- 双11,2分钟狂挣20亿的神秘大厂,急招.NET!
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]45.描述一些对抗RSA侧信道攻击的防御方法
- java集合框架中contains(),containsKey()和containsValue()的用法
- 分治算法——快速排序
- RHEL7 -- 使用Chrony设置时间与时钟服务器同步
- ## 2018-2019-1 《信息安全系统设计基础》 20165232 20165231 20165235 实验五 通信协议设计...
- Facebook F8|闲鱼高级技术专家参会分享
- 移动边缘计算环境下边缘服务器放置方法研究
- STM8 捕获模式HS0038 红外遥控解码
- 拉普拉斯变换的本质意义(好文!通俗易懂)
- html的长度单位的选择,html中常见长度单位有哪些?
- 【MQTT】使用MQTT.fx上报温度到腾讯云
- 漫画:网站访问缓慢怎么办?
- 位图文件存储空间的计算
- php中的逻辑运算符优先级,PHP运算符优先级 运算符分类
- C++文件流fstream相关操作
- 数字藏品的交易平台有哪些 nft数字藏品