您的位置:首页 > 其它

自己的未解决问题集锦

2020-08-21 15:03 106 查看

1 函数:int kmp(int s[], int p[])
主函数中的: int xx = kmp(s + x, p);
错误:int xx = kmp(&[s + x], p); 已解决

2, kmp的循环节为什么是 len - next【len】???–已解决

并且判断的时候是用(i)% (i - next[i]) == 0 来判断? ------(1)
自己的想法:某一个数的长度记为len,则如果是存在这样的数组aaaXXXX…aaa,使得len % (len - next[len] = 0) ,则此时 (1) 判断是错误的,证:要使len - next[len] > len / 2的,则你会发现只有len = len - next[len] 的时候才会整除,即:从 len / 2 + 1 到 len 范围的数,只有len才能被整除。
以上证明说明了 (1)判断要想成立,必须是前缀和后缀是相邻的,或是有交集的,此时,有交集则证循环节就非常好证了。

3,二分图的最大匹配,当我们知道可以建二分图时,我们需要把每一条边都寻找他的匹配的值,但是当匹配的时候就会出现自己本来是已匹配了a(任意一个),然后再次匹配的时候有匹配了a,导致这个值是可行的, ???
想法:1match2 ,3match4 和 2match1, 4match3是等价的,所以在储存图的时候可以只储存有向的路,在匹配在的时候也是有1match2的时候没有2match1。 !!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐