摘要: 比赛的时候不知道怎么写。。。 太弱了。看了别人的代码,觉得这个是个经典的知识点吧。 gcd的巧妙运用自己想的时候苦苦思考怎么用dp求解。 无奈字符串太长而想不出好的算法。其实在把a和b字符串都分成以gcd(a,b)长度为单位的字符串时。 设为la=a/gcd(a,b) ,lb=b/gcd(a,b) . 明显可以知道的是gcd(la,lb)==1, 所以la与lb长度的字符串要分别拼接lb和la次才能拼成两个相等的串. 这样就有了解法. for(int i=0;i<lena;i++) dpa[i%k][a[i]-'a']++; // 统计在a串 在gcd(a,b)长度某一位 阅读全文
posted @ 2013-10-16 15:37 chenhuan001 阅读(478) 评论(0) 推荐(0) 编辑