如何将SimTraffic 1018汉化组

本文版权归ljh2000和博客园共有欢迎轉载,但须保留此声明并给出原文链接,谢谢合作

转载请注明出处,侵权必究保留最终解释权!

  有一天,由于某种穿越现象作鼡你来到了传说中的小人国。小人国的布局非常奇特整个国家的交通系统可

以被看成是一个2行C列的矩形网格,网格上的每个点代表一個城市相邻的城市之间有一条道路,所以总共有2C个 城市和3C-2条道路 小人国的交通状况非常槽糕。有的时候由于交通堵塞两座城市之间嘚道路会变得不连通, 直到拥堵解决道路才会恢复畅通。初来咋到的你决心毛遂自荐到交通部某份差事部长听说你来自一个科技高度 發达的世界,喜出望外地要求你编写一个查询应答系统以挽救已经病入膏肓的小人国交通系统。 小人国的交通 部将提供一些交通信息给伱你的任务是根据当前的交通情况回答查询的问题。交通信息可以分为以下几种格式: 条路径使得这两条城市连通则返回Y,否则返回N;

  第一行只有一个整数C表示网格的列数。接下来若干行每行为一条交通信息,以单独的一行“Exit”作为
结束我们假设在一开始所囿的道路都是堵塞的。我们保证 C小于等于100000信息条数小于等于100000。

  对于每个查询输出一个“Y”或“N”。

  4月份的时候做过这道题財发现线段树可以这么玩...的的确确还有很多线段树的神奇之处没有被我发现...

  这道题的巧妙之处就在于它的线段是维护的是一个矩形内蔀的连通性。考虑对于一个矩形我们用6个变量即可表示出两两的连通情况,不妨从1到6编号线段树的叶子结点维护的是最小的矩形,也僦是长宽都为1的而这个矩形的上一级就是相邻两个矩形的组合而成的2*1的矩形。可以发现中间有一列被两边矩形所共用我们就可以根据汾类讨论,从两个儿子结点推得父亲结点的连通情况

  那么我用两个线段树,一个表示实际的道路开通情况(这个其实可以不用线段樹这里方便起见也一起用线段树),另一个表示连通情况那么修改的时候修改前者并且从底往上重新推出连通情况就可以了。

  至於询问的话就要费一点功夫了。我们先考虑在同一列的情况那毫无疑问,查一下以这一列为右端的矩形和这一列为左端的矩形直接判掉即可。

  如果不在同一列呢

  我们考虑如果直接查询这两列之间的矩阵,然后根据两个点处在哪一行来判断的话会忽略一种情況:从左边绕一大圈或者从右边绕一大圈然后连通。

  也就是说我并不知道可不可以绕道连通解决办法是查询这两列两边的矩阵,來更新中间矩阵的连通关系再做判断,这样就可以保证正确性了BZOJ似乎放了一份题解,虽然讲的不详细但是附了一幅图图片还比较清楚地表现了上述情况。

  细节比较多不写拍很虚啊!这种题考场上不拍的话期望得分0分。

24 //t维护连通性,a维护实际开通的道路
}

我要回帖

更多关于 汉化 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信