第三题我是用回溯,但只能过10% 不知道是超时还是解法错了 可能是超时,遇到重复的可以剪枝? 但超时的暴力算法也不应该只过10%吧 有大佬能说一下吗 public static int count(int n){ String code = "~Y"; ans = 0; for(int i=1;i<n;i++){ code += "O"; } dfs(2,n,code.toCharArray()); return ans; } public static void dfs(int i,int n,char[] code){ if(i == n+1) { ans += 1; test.add(String.valueOf(code)); return; } if(code[i] != 'O'){ dfs(i+1,n,code); return; } code[i] = 'Y'; dfs(i+1,n,code); code[i] = 'N'; int a=i*2; while(a<=n){ code[a] = 'N'; a+=i; } dfs(i+1,n,code); a=i*2; while(a<=n){ code[a] = 'O'; a +=i; } code[i] = 'O'; }
1 1

相关推荐

陌夏微秋:一线城市25w左右吧,17×15=255
点赞 评论 收藏
分享
牛马人的牛马人生:一开始看成了网吧
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务