摘要: 这题一开始确实会感觉很难,但是罗马数字的个位只有可能是{"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},同理,十位上的数字也永远都是固定的,所以还是简单吧,实现代码如下:#include <stdio.h>#include <stdlib.h>char num[4][10][5] = { {"", " 阅读全文
posted @ 2011-07-02 12:07 zqynux 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 这题值得好好探讨一下,因为其中的算法真的很巧妙,不过我也说不太清楚。 设l, r是最长NUM序列的左右坐标,r-l+1就是NUM序列的长度,开始一直读入,r不断的增加,当1-m的所有数字都出现后,就开始边循环边判断,如果num[l]出现了两次就可以把l向右移动了,大致的思路就是这样,看看代码吧:#include <stdio.h>#include <string.h>#include <stdlib.h>int used[200001];int num[200000];int l, r;int main(int argc, char **argv){ int 阅读全文
posted @ 2011-07-02 10:29 zqynux 阅读(258) 评论(0) 推荐(0) 编辑