[训练指南]3.1.1.Examples UVA 11995 11991 1203 11997 1160 1329
来源:互联网 发布:潭州seo视频教程92期 编辑:程序博客网 时间:2024/06/15 08:23
3.1.1.Examples
Root :: AOAPC I: Beginning Algorithm Contests – Training Guide (Rujia Liu) :: Chapter 3. Data Structures :: Fundamental Data Structures :: Examples
下面题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=497
所有代码地址:https://github.com/illuz/WayToACM/tree/master/ACM_CODE/lrj_Training_Guide/3_Data_Structures/3.1.1.Examples
11995 - I Can Guess the Data Structure!
题目地址
SOLUTION CODE(代码点此)
题意:
一个容器,可能是stack,queue,priority queue输入n对数,每对数的第一个数代表操作符,如果是1,第二个数就是增加元素,第二个就是移除元素。问可能是上面容器。
分析:
很容易,以前模拟过,这次直接用STL模拟,当做练手。
11991 - Easy Problem from Rujia Liu?
题目地址
SOLUTION CODE(代码点此)
题意:
给出一个包含n个数的数组,每次询问第k个v的下标。
分析:
用STL里面的map<int, vector<int> >
模拟即可。
1203 - Argus
题目地址
SOLUTION CODE(代码点此)
题意:
一个系统支持:Register Q_num Period命令,这样就产生一个触发器,每Period秒会发生一个事件Q_num。
输入多个触发器,然后问前n个事件的Q_num。如果事件同时发生,就先进行Q_num小的事件。
分析:
这其实跟多路归并问题一样。只要用优先队列处理下就行了。
11997 - K Smallest Sums
题目地址
SOLUTION CODE(代码点此)
题意:
有k个整数数组,各包含k个元素,在每个数组中取一个元素加起来,求出这些和中最小的k个。
分析: 如果是求最小的那个和,直接把每个数组排序,取最小的那个就行了,但是需要取多个,所以需要思考一下。我们已经知道最小的那个了,那第二小的那个就是最小的那些中换掉一个元素,所以只要找到那个元素即可,后面前k小都能这样求出来。
问题是如何找出这个数,因为我们是要求接下去小数,所以只要知道所取的数和同数组中下一个数(排过序)的差最小就行了。
由于数据范围是750,如果每次找那个符合的数,复杂度是O(n^3),4e8的复杂度是无法接受的。所以我们可以用优先队列维护那个最小的就行了。
代码·WA。。
事实证明刚开始的思路是错的…orz
那样的话每次只能判断在最小的基础上换掉哪个数能得到第二小…
没办法,不能偷懒,只能好好研究大白的算法了。
我发现打败的方法和我的差不多。
它先考虑只有2组k个数的情况,可以用多路归并的思路去解,然后从2组推到k组,只要两两归并就行了,太神了….
总结:
这又是一道从小问题推大问题的题目….
1160 - X-Plosives
题目地址
SOLUTION CODE(代码点此)
题意:
有多个化合物,每个化合物都由两种元素组成,每次拿一个化合物,如果和车上的化合物满足了(有k种化合物包含k种元素)这一条件就会爆炸,就要拒绝装箱。
问一路装下来有几个没装上去的。
分析:
一眼看过去差点理解错题意了…k是当前车上的所有化合物种类数…
原来是只要满足有k个就不行了。
发现化合物由两种元素组成,那么考虑爆炸的情况:
如果k=2,那么化合物可能为AB,BA;
k=3,AB,BC,CA;
k=4,AB,BC,CD,DA;
…..
所以把每个化合物的两种元素连成一条线,只要在图中出现了环,那这个环边上的元素便会构成爆炸物。用并查集就可以了。
1329 - Corporative Network
题目地址
SOLUTION CODE(代码点此)
题意:
有n个节点,初始时每个节点的父节点都不存在。每次执行有两种格式:
I u v: 把节点u的父亲设置为v,距离为|u-v|mod1000,保证此时u没有父节点;
E u:询问u到根节点的距离。
分析:
很明显的并查集既然保证u没有父亲,那么不用判断直接f[u] = v就能建出一棵树了。
但是寻找距离的时候最坏的情况是O(n^2),会超时,很明显,需要另开一个数组记录距离,在查找路径的时候,进行路径压缩并维护。
- [训练指南]3.1.1.Examples UVA 11995 11991 1203 11997 1160 1329
- 训练指南uva 11464
- 入门经典训练指南第三章例题1.UVa 11995 I Can Guess the Data Structure!
- UVa 11997 K个最小和(训练指南)
- uva 11168 Airport(训练指南)
- 《算法竞赛-训练指南》1.14-UVa 11520
- 训练指南 uva 11729 重载运算符比较vector大小
- uva 11178 - Morley's Theorem(训练指南)
- 《算法竞赛-训练指南》第一章-1.7——UVa 11464
- 《算法竞赛-训练指南》第一章-1.11——Uva 10795
- 《算法竞赛-训练指南》第一章-1.24-UVa 10755
- 《算法竞赛-训练指南》第一章-1.27-UVa 10635
- UVa 11426--算法竞赛入门经典训练指南
- UVA 10652 Board Wrapping(凸包求面积 刘汝佳训练指南模板)
- 训练指南
- UVa 二分图匹配 Examples
- Uva 11235 频繁出现的数值(RMQ-Sparse Table 算法)(训练指南)
- [训练指南] 第一章 例题3 分金币 (Spreading the wealth,Uva 11300)
- AVA基础——图形化界面(GUI)
- Unix与Linux区别、联系
- iOS真机测试的过程
- 还是没爱够,还是没看透,十个美梦盖过了天空
- 苹果App Store审核指南中文翻译
- [训练指南]3.1.1.Examples UVA 11995 11991 1203 11997 1160 1329
- 如何在fish中添加PATH路径(环境变量)
- 数字三角形IV
- 网络传输时,Java中byte[]转String问题
- JAVA面试题:问答部分
- 高手速成android开源项目【导航篇】
- 非码农也能看懂的“机器学习”原理
- VMWARE TOOLS安装提示THE PATH IS NOT A VALID PATH TO THE GENERIC KERNEL HEADERS
- 【C/C++】构造函数的初始化列表