河南省第七届ACM大学生程序设计竞赛 解题报告
来源:互联网 发布:美团市场数据统计 编辑:程序博客网 时间:2024/04/30 05:21
这两天把去年省赛的题挂到了OJ上,顺便练手。
A.物资调度(易)
DP,类似01背包。dp(i,j)表示情况数,第一维表示考察到第i种物资,第二维表示总数量为j。显然,如果按照题目给的数据范围,答案会超出64位整型的范围,但是题目并没有要求取模,只能说数据太弱。
B.海岛争霸(易)
Floyd算法,稍微修改一下状态转移方程就可以了。Floyd是求和,这题是取最大。
C.机器人(难)
数论题,各种推。首先特判一下x=y=0的情况,必须s=t=0才能输出'Y'。接下来是x和y不全为0的情况,分析一下可以知道,用gcd()表示最大公约数,能跳到的最小不含0坐标是(gcd(x,y),gcd(x,y)),最小含一个0坐标是(2*gcd(x,y),0)。
这样我们就得到了三种基本的跳跃单位:
(x,y)--①
(gcd(x,y),gcd(x,y))--②
(2*gcd(x,y),0)--③
所以要拼出(s,t),最起码的要求是gcd(x,y)能整除s和t(s和t分别能用②跳到,但不一定同时满足),符合这个条件还不够,还需要满足下面两者之一:
(s-t)/gcd(x,y)是偶数(能用②和③跳到)。
或
((s+x)-(t+y))/gcd(x,y)是偶数(能用①和②和③跳到)。
D.山区修路(难)
DP+离散化。解题关键是要注意到不同的高度数并不多,无论使路段上升还是下降,总是可以调整到另一个已经存在的高度,使得结果最优。所以我们可以先将不同的高度离散化,再用DP解决。dp(i.j)表示已经考察到路段i,把路段i调整到离散化后的第j个高度情况下的最优解。注意调整后路段需要单调不增或单调不降。
E.世界之威(难)
图的遍历。首先是建图,如果u克制v,就连一条有向边uv。因为一种武器只能克制一种武器,所以图的结构可能出现链和环,还有可能多条边汇聚在一个点,不可能出现一个点引出多条边。首先我们找到所有入度为0的点,这些武器肯定是不能卖的,因为无法克制它们。如果u入度为0,我们就从u开始遍历,一定能得到一条链,这条链的贡献就是链长度/2。把所有入度为0的点处理完后,所有的链就处理完了,剩下的就是环。从每个环的任意一个点开始遍历,得到环的长度,这个环的贡献就是环长度/2。
F.Turing equation(易)
就是把一个表达式上的数各位反转一下,然后验证表达式的正确性。
G.Code the Tree(易)
还是模拟题。根据给的串建树,左括号进入下一层,右括号返回上一层。建树完成后,维护每个点的度,依次删除度为1的最小的点和它唯一的边,输出边连接的另一个点。注意树根也可以作为叶子,只要点的度为1,它就是叶子。
H.Rectangles(易)
记忆化搜索(DP),经典的DAG最长路问题。注意矩形是可以旋转的,是否可嵌套的判断不要写错。然后建图(不建图也可以,在搜索的时候扫一遍判断)对每个点dfs一次取最大结果就可以了。
I.Earthquake(难)
最大流最小割定理。把所有给总部打电话说过不去的村庄看成源,总部看成汇,“被破坏村庄的最少的数量”其实就是图的最小割,因为要使得源和汇之间无法连通,根据最大流=最小割,跑一下最大流即可求得。建图时,把每个村庄拆成2个点,一个入点,另一个出点,连接入->出,容量为1。如果u-v有边,就连接u出->v入和v出->u入,容量无穷大。建立一个超级源,流向所有通不到总部的点的出,流量无穷大,汇点即为总部的入点。跑最大流算法即可。
我已经无力吐槽了,感觉命题组一点也不负责任,出现了各种描述错误数据错误,出原题就算了,连起码的造数据的能力都没有。
- 河南省第七届ACM大学生程序设计竞赛 解题报告
- 2014年第七届河南省ACM大学生程序设计竞赛有感
- 关于河南省第七届ACM大学生程序设计竞赛的总结
- 我的河南省第七届ACM大学生程序设计竞赛总结
- 河南省第七届ACM大学生程序设计竞赛总结
- 山东省第七届ACM大学生程序设计竞赛
- 第七届 山东省ACM大学生程序设计竞赛
- 河南省第七届大学生程序设计竞赛 问题 B: 海岛争霸
- 河南省第七届大学生程序设计竞赛 物资调度
- 河南省第五届acm大学生程序设计竞赛总结
- 河南省第六届ACM大学生程序设计竞赛 排行榜
- 河南省第八届ACM大学生程序设计竞赛总结
- 河南省第八届ACM大学生程序设计竞赛的遗憾
- 2017河南省第十届ACM大学生程序设计竞赛总结
- 河南省第十届ACM大学生程序设计竞赛总结
- 河南省第十届ACM大学生程序设计竞赛总结
- 河南省第十届ACM大学生程序设计竞赛总结
- 第七届河南省ACM大学生程序设计大赛 A.物资调度
- hadoop参数优化
- 蓝桥杯 地宫取宝__dp
- 第四届程序设计大赛 序号互换
- Cocos2d-x中的字符串
- [转]让你的表单升级到CSS3和HTML5客户端验证
- 河南省第七届ACM大学生程序设计竞赛 解题报告
- nginx错误日志出现worker process 24939 exited on signal 11 (core dumped)
- Linux驱动程序编写演示----编译驱动程序
- haayaGuardV0---1---系统总述
- 源码安装postgresql
- fastcall 和 asmlinkage
- Generating SSH keys on OS X
- SCOI2015酱油记
- 【Java二十周年】我比Java大10岁