第三届河南省大学生程序设计竞赛题型简要分析
来源:互联网 发布:docker web mysql 编辑:程序博客网 时间:2024/05/16 15:17
所有的题目 时间限制: 1秒
概览:
题数
类型
1
线段树;区间树
2
动态规划;枚举
3
图论
4
图论
5
动态规划
6
模拟
7
贪心;(树形)动态规划
8
线段树
【试题一】 房间安排
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=168
类型:线段树;区间树
解法:普通的做法时间复杂度为O(n) ,每次需要遍历区间内所有的数,但用线段树可以做到O(log n)。普通的做法是统计每天占用的房间总数,最大值即解。
【试题二】 素 数
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=169
类型:动态规划;枚举
解法:动态规划,求出X前的第一个素数以及其后的第一个素数,取其较近者。枚举(牺牲内存,换取时间),先离线求出范围内的所有素数(168个),存储起来,再找出离X最近且较大的那个素数即可。
【试题三】 网络的可靠性
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=170
类型:图论
解法:在给出图的基础上求出闭合环,边数与原始边数差值即解。
【试题四】 虚拟城市之旅
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=247
类型:图论
解法:求出由源点能到达的强连通分量,然后搜索求最优解。
【试题五】 聪明的“KK”
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=171
类型:动态规划
解法:类似“TheTriangle”(http://acm.nyist.net/JudgeOnline/problem.php?pid=18),这个题利用数塔,数塔的思想就是从下往上来进行运算,不断的更新数组,最终求出最大和。有些细节要注意,当KK走倒最后一列是只能向下走,当KK走到最后一行时,只能向右走。
【试题六】 AMAZING AUCTION
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=251
http://acm.zju.edu.cn/na_public/showProblem.do?problemCode=2613
类型:模拟
解法:先剔除无效竞价,再取最低竞价,为了保证先入为主,在求最小值的过程中应该使用条件min > p[i]而非min>= p[i].
【试题七】 BUYING FEED
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=248
http://202.120.106.94/onlinejudge/problemshow.php?pro_id=440(条件不同)
类型:贪心;(树形)动态规划
解法:贪心,求出每个商店(每一点)每买一磅食物需要的价钱,价钱中包括从这点运到终点需要的运费。
DP,转移方程(条件不同)
DP[I][J]=MIN{DP[I-1][K]+K*K*(D[I]-D[I-1])+(J-K)*C[I]} J-F[I]<=K<=J
根据题目数据给的范围,500(I的范围)*10000(J的范围)*500(K的范围)肯定要超时。
于是用单调队列优化。
关于单调队列:队头的元素肯定是最小的(最大的)
取元素操作:从队头取出元素,直到该元素在要求的范围内(本题即为J-F[I]<=K<=J)
插入元素操作:若队尾元素比插入的元素要大,则删除。直到比待插入的元素小为止,然后再插入元素。
另外通过本题明确了队列的用法,头指针指向第一个元素,尾指针指向最后一个元素的后一位。若头尾指针相等则队列为空。
【试题八】 ROOM ASSIGNATION
练习处:http://acm.nyist.net/JudgeOnline/problem.php?pid=250
类型:线段树
题意:题目的意思很简单,问你有没有连续的n的房间,如果有,就输出以那个房间开始(最小的)。如果没有就输出0;还有一种情况:客人要退房间,然后退掉n——n+len-1这些房间。
给出M(M<= 50000)组操作,每组操作的形式如下:
1 D: 询问是否有长度为D的连续区间,如果存在输出最左边的,否则输出0,并且将这块连续的区间占据。
2 X D:将从X开始的连续D块空间释放掉。
解法:线段树染色问题,和ZJU2301 Color the Ball类似,也是寻找最长连续区间。记录左右端点的连续情况。
赛题见:http://download.csdn.net/download/wujun8/4218470
- 第三届河南省大学生程序设计竞赛题型简要分析
- 第三届河南省大学生程序设计竞赛题型简要分析
- 第一届河南省大学生程序设计竞赛题型简要分析
- 第二届河南省大学生程序设计竞赛题型简要分析
- 第三届河南省大学生程序设计竞赛 房间安排
- 第三届河南省大学生程序设计竞赛 聪明的“KK”
- 第五届河南省大学生程序设计竞赛 题解
- 河南省第九届大学生程序设计竞赛 题解
- 河南省第十届大学生程序设计竞赛
- 河南省第十届大学生程序设计竞赛 年终奖金
- 河南省第五届acm大学生程序设计竞赛总结
- 关于举办河南省第六届大学生程序设计竞赛的通知
- 河南省第六届ACM大学生程序设计竞赛 排行榜
- 2014年第七届河南省ACM大学生程序设计竞赛有感
- 关于河南省第七届ACM大学生程序设计竞赛的总结
- 我的河南省第七届ACM大学生程序设计竞赛总结
- 河南省第七届ACM大学生程序设计竞赛总结
- 河南省第六届大学生程序设计竞赛--异形卵
- centos 7 红帽认证 tigervnc服务搭建
- XStream简单实例
- 采用opencv读取xtion pro live的数据
- 高光谱遥感图像处理(14)-----ENVI使用教程之监督分类与非监督分类
- mycat ShareJoin后少了2条记录的问题剖析详细过程
- 第三届河南省大学生程序设计竞赛题型简要分析
- HDU 1395 2^x mod n = 1(快速幂取模)
- 技术周报 Gif图片 LoadingView
- js 实现数字的进制转换
- bzoj3224普通平衡树 Splay
- ubuntu网络
- Java学习笔记之继承和接口(一) super关键字、final关键字、abstract类和方法
- 图说HashMap多线程并发问题分析
- 剑指offer 面试题24:二叉搜索树BST的后序遍历序列(的判断) 题解