2017-9-24离线赛总结
来源:互联网 发布:js toobject方法 编辑:程序博客网 时间:2024/05/24 07:30
这是这段时间的第一次离线赛
失分小结:
估分:200
实际分数:100
原因:第二题炸零 内存超限
收获:以后写完程序之后,要计算空间复杂度(这比时间超限更恐怖!)
还有,水完分之后不要划水!仔细检查,找bug!
思路不完善
第二题应把记忆化搜索改成dp,这样可以实现滚动数组
知识漏洞
最小生成树不会打
看到第三题后一脸懵逼qwq
一分也水不到
题解
感觉前两道都是水题
最后一道仔细分析一下也就是 最小生成树预处理+LCA(倍增)
题目描述:
GeassCode凭借自己在topcoder上的超凡表现,赢得了国王的喜爱,国王赏赐他一座城池。这座城池里有n个村子,m条路连接这些村子。坐上城主的GeassCode决定要修路,他打算用最少的代价把所以的村子连在一起。据探子回报,有些村子之间虽然原来没有路径,但是可以强行的去建一条路。GeassCode想知道,如果强行在某两个村子之间建一条路,最后的总花费是多少?
输入 :
输入一行三个整数n,m,表示有n个村子,m条可建路径。
2..m+1行,每行3个整数a,b,c(a≠b),表示可以在a和b村庄建一条花费为c的路径。
第m+2行一个整数q,表示有多少个询问。
接下来q个询问,每行3个整数a,b,c(a≠b),表示如果可以另外在a和b村庄建一条花费为c的路径,最终需要多少花费?
输出:
对于每个询问输出,输出最少的花费。
数据范围:
30%的数据,n的范围[2,200],m的范围[2,2000],q的范围[1,1000]。
50%的数据,n的范围[2,2000],m的范围[2,20000],q的范围[1,10000]。
100%的数据,n的范围[2,50000],m的范围[2,100000],q的范围[1,50000]。
输入的m条边保证可以把所有村庄连在一起。输入的边权范围[1,106]
分析题目:使花费最少,就是让我们建一个最小生成树
当我们在询问中在最小生成树中添加一条边时
这个最小生成树上就会形成一个环
求环可以用LCA
然后用贪心的思想删去这个环上的最大值
显然O(n)的枚举是一定会超时的
所以用一些数据结构维护就好了
因为最小生成树不会时刻改变,所以可以用倍增
然后就AC了ni
- 2017-9-24离线赛总结
- 2017-10-24离线赛总结
- 2017-9-25离线赛总结
- 2017-9-26离线赛总结
- 2017-9-28离线赛总结
- 2017-9-29离线赛总结
- 2017-10-9离线赛总结
- 2017-11-9离线赛总结
- 2017.10.24离线赛总结
- 2017.10.9离线赛总结
- 2017/7/29 离线赛 总结
- 2017-10-4离线赛总结
- 2017-10-6离线赛总结
- 2017-10-7离线赛总结
- 2017-10-8离线赛总结
- 2017-10-10离线赛总结
- 2017-10-12离线赛总结
- 2017-10-15离线赛总结
- mybatis入门(一)——初试mybatis
- 怎样理解阻抗匹配?---非常好
- 【python 数据报表】发送带有样式和附件的邮件
- java lock
- 第四周总结
- 2017-9-24离线赛总结
- 动态规划
- .NET常用术语表
- shell编程总结
- 用C写的json解析工具(逐步完善中)
- ContextMenu和OptionsMenu主要区别
- 笔试题II
- 吴恩达DeepLearning.ai系列课后编程题实践总结week3
- PHP使用WebSocket