FZU 2043 Social Network

题意

能拿出勇气挑战这种题,首先给你致敬。首先请确保你已经读懂了题面,我不会在这里翻译。我会说一些你可能没注意到的地方或者是这个题没有说明白的地方。

注意点

  • 数据是以空行分割的(也就是说保证没有多余空行),并且保证一行一命令,每个case的开头和结尾分别是启动和关机命令。但是,数据并没有保证没有多余空格,所以建议处理命令的时候过滤空格。
  • 关于消息机制,要知道当用户登录的时候显示的消息是未读消息,这一点题面说的很隐晦,而且还有一点,每次登陆和刷新之后,所有消息都会被读掉,也就是说上次显示过的消息,下次就不会显示。更为坑人的一点是,当两个人加为好友之后,一个人说话,系统会向另外一个人发通知,在加好友之前说过的话并不会推送到另外一个人那里。所以这里我们应该才用stack来实现这个消息系统,给每一个用户带一个stack,相当于收件箱,显示完就弹出,完全符合这个题的意图。
  • 关于个人界面的输出,这几乎是本题最大的坑点,首先你要注意排版,强烈建议跑完sample之后使用diff完全比较以防悲剧,同时,你很可能处理错了收件箱为空时的情况。
    你可能以为当收件箱为空时,输出应该是这样的:

    然而答案他却长这样:

    我想你应该知道咋改了。
  • 然后还有一个比较那啥的错误,就是你忘了实现refresh功能,你也没发现,因为sample没有。
  • 常规错误也要查一下,就是执行命令的判断不到位(你应该判断系统开机与否,用户注册情况,用户登录情况,用户重名情况)。

额外测试数据

不妨试一下这个数据。时间戳是我随便写的(因为没影响),如果你用了时间戳排序(虽然并没有需要),可能会有差异。

接下来上代码

模拟题的话注意点到位就不会错,其实代码本体的意义不大。

Leave a Reply

Scroll to top