摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3761题目大意:给定n个位置的小球,小球的运动方向只能是水平或者竖直的。按一定方向推动某球,当行径上有其他球时,停留在被撞球的位置,被撞的球沿原小球运动方向运动,当行径路径上没有其他球时,该小球被剔除。问:只能通过小球的相撞来剔除小球,最少能留下几个小球。解题思路:首先,可以用并查集找出互相连通的小球集合个数。因为每一次推动的结果可以看成是被推动的小球被剔除了,其他位置上的小球不动,所以可以从每个集合中任选一个小球作DFS。选择推动小球的方向即为该球指向其父亲节 阅读全文
posted @ 2014-03-02 18:09 飞火扑蛾 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3757题意:根据所给的台球规则,按照每次的结果计算最终两人的得分单纯的模拟题,分支比较多写起来较繁琐注意区分犯规与进球得分的规则:只要有犯规行为,都要按照规则给对手加分。无论是否进球。当进球时,如果有犯规行为,不仅分要加给对手,还要加上犯规惩罚 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define maxn 10005 8 i... 阅读全文
posted @ 2014-03-02 17:55 飞火扑蛾 阅读(336) 评论(0) 推荐(0) 编辑