Anagramic squares

By replacing each of the letters in the word CARE with 1, 2, 9, and 6 respectively, we form a square number: 1296 = 362. What is remarkable is that, by using the same digital substitutions, the anagram, RACE, also forms a square number: 9216 = 962. We shall call CARE (and RACE) a square anagram word pair and specify further that leading zeroes are not permitted, neither may a different letter have the same digital value as another letter.

Using words.txt (right click and ‘Save Link/Target As…’), a 16K text file containing nearly two-thousand common English words, find all the square anagram word pairs (a palindromic word is NOT considered to be an anagram of itself).

What is the largest square number formed by any member of such a pair?

NOTE: All anagrams formed must be contained in the given text file.


重排平方数

将单词CARE中的四个字母依次赋值为1、2、9、6,我们得到了一个平方数:1296 = 362。神奇的是,使用同样的数字赋值,重排后的单词RACE同样构成了一个平方数:9216 = 962。我们称CARE和RACE为重排平方单词对,同时规定这样的单词对不允许有前导零或是不同的字母赋相同的值。

在这个16K的文本文件words.txt(右击并选择“目标另存为……”)中包含了将近两千个常见英文单词,找出所有的重排平方单词对(一个回文单词不视为它自己的重排)。

重排平方单词对所给出的最大平方数是多少?

注意:所有的重排单词必须出现在给定的文本文件中。

解题

先说下自己的思路:

1.words文件中找出又相同字母组成的单词对

2.构造平方数,筛选由相同数字组成的平方数

3.关键的就是单词和数字的映射关系,特别是位置要做到对应,但是我只能保证字母和数字映射后,可以组成的数字是平方数,但是数字的顺序字母映射的顺序不一样,造成输出的结果比较多。

Java

  1. package Level3;
  2.  
  3. import java.io.BufferedReader;
  4.  
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7.  
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10.  
  11. public class PE098{
  12.  
  13. // 下面结果输出的比较多,其实求最大值也是不对的,但是但是,答案就在输出的结果中
  14. // 输出的两个单词由相同字母组成,输出的两个数字是两个平方数并且含有相同的数字,但是但是,两个单词字母的位置和数字的位置不是对应的
  15. // 如果能够让他们一一对应,答案应该就是唯一的了。在对两个单词和数字匹配的时候,程序还需要完善
  16. public static void run() throws IOException{
  17. // 相同字母的单词对
  18. ArrayList<ArrayList<String>> dicts = getAnagramic();
  19. // 相同数字的平方数
  20. ArrayList<ArrayList<Integer>> anagNum = AnagNum();
  21. for(int i=0;i<dicts.size();i++){
  22. ArrayList<String> dict = new ArrayList<String>();
  23. dict = dicts.get(i);
  24. for(int j=0;j<anagNum.size();j++){
  25. ArrayList<Integer> num = new ArrayList<Integer>();
  26. num = anagNum.get(j);
  27. if(isReplace(dict.get(0),dict.get(1),num.get(0)) && isReplace(dict.get(1),dict.get(0),num.get(1)))
  28. System.out.println(dict.get(0)+"\t"+dict.get(1)+"\t"+num.get(0)+"\t" + num.get(1));
  29. }
  30. }
  31. }
  32. // str1 str2 是相同字母组成的单词,看看是否都和num可以匹配
  33. public static boolean isReplace(String str1,String str2,int num1){
  34. int strlen = str1.length();
  35. int numlen = String.valueOf(num1).length();
  36. if(numlen!= strlen)
  37. return false;
  38. int[] A = new int[strlen];
  39. String[] B = new String[10];
  40. int tmp = num1;
  41. HashMap<Character,Integer> mapraw = new HashMap<Character,Integer>();
  42. HashMap<Character,Integer> mapall = new HashMap<Character,Integer>();
  43. for(int i=strlen-1;i>=0;i--){
  44. char ch = str1.charAt(i);
  45. //相同字母不能有相同的value
  46. if(mapraw.containsValue(num1%10) == true)
  47. return false;
  48. mapraw.put(ch, num1%10);
  49. if(mapall.containsKey(ch)==false)
  50. mapall.put(ch, num1%10);
  51. else{
  52. mapall.put(ch, mapall.get(ch)+num1%10);
  53. }
  54. num1/=10;
  55. }
  56. for(int i=0;i<strlen;i++){
  57. char ch = str2.charAt(i);
  58. if(mapall.containsKey(ch) == false)
  59. return false;
  60. else{
  61. mapall.put(ch,mapall.get(ch) - mapraw.get(ch));
  62. }
  63. }
  64. for(int i=0;i<strlen;i++){
  65. char ch = str1.charAt(i);
  66. int value = mapall.get(ch);
  67. if(value!=0)
  68. return false;
  69. }
  70. // 上面的程序只是判断了str1 和num1进行映射后 str2也可以这样搞,
  71. return true;
  72.  
  73. }
  74. // 获取相同数字的平方数对
  75. public static ArrayList<ArrayList<Integer>> AnagNum(){
  76. ArrayList<ArrayList<Integer>> anagNum = new ArrayList<ArrayList<Integer>>();
  77. ArrayList<Integer> squares = new ArrayList<Integer>();
  78. int MAX = 999999;
  79. int i = 11;
  80. // 构造平方数
  81. while(true){
  82. if(i*i>=MAX)
  83. break;
  84. squares.add(i*i);
  85. i++;
  86. }
  87. //寻找相同数字的数
  88. for(i=0;i<squares.size();i++){
  89. int num1 = squares.get(i);
  90.  
  91. for(int j=i+1;j<squares.size();j++){
  92. int num2 = squares.get(j);
  93. if(isDiff(num1,num2)){
  94. // 相同数字的平方数,两个两个数的保存
  95. ArrayList<Integer> num = new ArrayList<Integer>();
  96. num.add(num1);
  97. num.add(num2);
  98. anagNum.add(num);
  99. }
  100.  
  101. }
  102. }
  103.  
  104. // System.out.println(anagNum.size());
  105. // for(i=0;i<anagNum.size();i++){
  106. // ArrayList<Integer> num = new ArrayList<Integer>();
  107. // num = anagNum.get(i);
  108. // for(int j =0;j<num.size();j++){
  109. // System.out.print(num.get(j)+"\t");
  110. // }
  111. // System.out.println();
  112. // }
  113.  
  114. return anagNum;
  115. }
  116.  
  117. public static ArrayList<ArrayList<String>> getAnagramic() throws IOException {
  118. ArrayList<String> words = getWords();
  119. ArrayList<ArrayList<String>> dicts = new ArrayList<ArrayList<String>>();
  120. //暴力遍历,找到相同字母的单词
  121. for(int i=0;i<words.size();i++){
  122. String tmp1 = words.get(i);
  123.  
  124. for(int j=i+1;j<words.size();j++){
  125. String tmp2 = words.get(j);
  126. if(isDiff(tmp1,tmp2)){
  127. // 相同字母的单词,两个两个的保存
  128. ArrayList<String> dict = new ArrayList<String>();
  129. dict.add(tmp1);
  130. dict.add(tmp2);
  131. dicts.add(dict);
  132. }
  133. }
  134. // 相同字母单词的个数 大于 1
  135. // if(dict.size()>=2)
  136. // dicts.add(dict);
  137. }
  138. int size = dicts.size();
  139. // 输出相同字母的单词对
  140. // for(int i=0;i<dicts.size(); i++){
  141. // ArrayList<String> dict = new ArrayList<String>();
  142. // dict = dicts.get(i);
  143. // for(int j=0;j<dict.size();j++){
  144. // System.out.print(dict.get(j)+"\t");
  145. // }
  146. // System.out.println();
  147. // }
  148. // System.out.println(size);
  149. return dicts;
  150. }
  151. // 读取单词表
  152. public static ArrayList<String> getWords() throws IOException{
  153. String filename = "src/Level3/p098_words.txt";
  154. ArrayList<String> words = new ArrayList<String>();
  155. BufferedReader reader = new BufferedReader(new FileReader(filename));
  156. String data = reader.readLine();
  157. data = data.replace("\"", "");
  158. // System.out.println(data);
  159. String[] dictArray = data.split(",");
  160. for(int i=0;i<dictArray.length;i++){
  161. // System.out.println(dictArray[i]);
  162. words.add(dictArray[i]);
  163. }
  164. // System.out.println(dictArray.length);
  165.  
  166. return words;
  167. }
  168. public static boolean isDiff(String str1,String str2){
  169. int len1 = str1.length();
  170. int len2 = str2.length();
  171. if(len1!=len2)
  172. return false;
  173. int diff[] = new int[26];
  174. for(int i=0;i<len1;i++){
  175. diff[str1.charAt(i) - 'A']++;
  176. diff[str2.charAt(i) - 'A']--;
  177. }
  178. for(int i=0;i<26;i++)
  179. if(diff[i]!=0)
  180. return false;
  181. return true;
  182. }
  183. public static boolean isDiff(int num1,int num2){
  184.  
  185. int len1 = (num1+"").length();
  186. int len2 = (num2+"").length();
  187. if(len1!=len2)
  188. return false;
  189. int diff[] = new int[10];
  190. while(num1!=0 ||num2!=0){
  191. diff[num1%10]++;
  192. diff[num2%10]--;
  193. num1/=10;
  194. num2/=10;
  195. }
  196. for(int i=0;i<10;i++)
  197. if(diff[i]!=0)
  198. return false;
  199. return true;
  200. }
  201. public static void main(String[] args) throws IOException {
  202. long t0 = System.currentTimeMillis();
  203. run();
  204. long t1 = System.currentTimeMillis();
  205. long t = t1 - t0;
  206. System.out.println("running time="+t/1000+"s"+t%1000+"ms");
  207.  
  208. }
  209. }

输出结果

  1. ACT CAT 169 196
  2. ACT CAT 169 961
  3. ACT CAT 196 961
  4. ACT CAT 256 625
  5. ARISE RAISE 12769 96721
  6. ARISE RAISE 16384 31684
  7. ARISE RAISE 16384 36481
  8. ARISE RAISE 16384 38416
  9. ARISE RAISE 16384 43681
  10. ARISE RAISE 17689 18769
  11. ARISE RAISE 17689 78961
  12. ARISE RAISE 17689 81796
  13. ARISE RAISE 18769 78961
  14. ARISE RAISE 18769 81796
  15. ARISE RAISE 20736 30276
  16. ARISE RAISE 21904 41209
  17. ARISE RAISE 21904 91204
  18. ARISE RAISE 23104 32041
  19. ARISE RAISE 23409 39204
  20. ARISE RAISE 23716 32761
  21. ARISE RAISE 23716 72361
  22. ARISE RAISE 29584 54289
  23. ARISE RAISE 31684 36481
  24. ARISE RAISE 31684 38416
  25. ARISE RAISE 31684 43681
  26. ARISE RAISE 32761 72361
  27. ARISE RAISE 34596 45369
  28. ARISE RAISE 36481 38416
  29. ARISE RAISE 36481 43681
  30. ARISE RAISE 38416 43681
  31. ARISE RAISE 41209 91204
  32. ARISE RAISE 50176 51076
  33. ARISE RAISE 51984 95481
  34. ARISE RAISE 74529 79524
  35. ARISE RAISE 78961 81796
  36. BOARD BROAD 12769 96721
  37. BOARD BROAD 16384 31684
  38. BOARD BROAD 16384 36481
  39. BOARD BROAD 16384 38416
  40. BOARD BROAD 16384 43681
  41. BOARD BROAD 17689 18769
  42. BOARD BROAD 17689 78961
  43. BOARD BROAD 17689 81796
  44. BOARD BROAD 18769 78961
  45. BOARD BROAD 18769 81796
  46. BOARD BROAD 20736 30276
  47. BOARD BROAD 21904 41209
  48. BOARD BROAD 21904 91204
  49. BOARD BROAD 23104 32041
  50. BOARD BROAD 23409 39204
  51. BOARD BROAD 23716 32761
  52. BOARD BROAD 23716 72361
  53. BOARD BROAD 29584 54289
  54. BOARD BROAD 31684 36481
  55. BOARD BROAD 31684 38416
  56. BOARD BROAD 31684 43681
  57. BOARD BROAD 32761 72361
  58. BOARD BROAD 34596 45369
  59. BOARD BROAD 36481 38416
  60. BOARD BROAD 36481 43681
  61. BOARD BROAD 38416 43681
  62. BOARD BROAD 41209 91204
  63. BOARD BROAD 50176 51076
  64. BOARD BROAD 51984 95481
  65. BOARD BROAD 74529 79524
  66. BOARD BROAD 78961 81796
  67. CARE RACE 1024 2401
  68. CARE RACE 1089 9801
  69. CARE RACE 1296 2916
  70. CARE RACE 1296 9216
  71. CARE RACE 1369 1936
  72. CARE RACE 1764 4761
  73. CARE RACE 2916 9216
  74. CARE RACE 4096 9604
  75. COURSE SOURCE 103684 638401
  76. COURSE SOURCE 103684 813604
  77. COURSE SOURCE 103684 863041
  78. COURSE SOURCE 104329 123904
  79. COURSE SOURCE 104329 310249
  80. COURSE SOURCE 104976 710649
  81. COURSE SOURCE 123904 310249
  82. COURSE SOURCE 124609 162409
  83. COURSE SOURCE 132496 214369
  84. COURSE SOURCE 132496 346921
  85. COURSE SOURCE 132496 436921
  86. COURSE SOURCE 139876 391876
  87. COURSE SOURCE 140625 164025
  88. COURSE SOURCE 140625 254016
  89. COURSE SOURCE 140625 416025
  90. COURSE SOURCE 140625 501264
  91. COURSE SOURCE 157609 170569
  92. COURSE SOURCE 164025 254016
  93. COURSE SOURCE 164025 416025
  94. COURSE SOURCE 164025 501264
  95. COURSE SOURCE 180625 502681
  96. COURSE SOURCE 195364 351649
  97. COURSE SOURCE 195364 395641
  98. COURSE SOURCE 195364 543169
  99. COURSE SOURCE 198025 259081
  100. COURSE SOURCE 198025 819025
  101. COURSE SOURCE 207936 603729
  102. COURSE SOURCE 214369 346921
  103. COURSE SOURCE 214369 436921
  104. COURSE SOURCE 237169 729316
  105. COURSE SOURCE 254016 416025
  106. COURSE SOURCE 254016 501264
  107. COURSE SOURCE 257049 497025
  108. COURSE SOURCE 257049 725904
  109. COURSE SOURCE 258064 605284
  110. COURSE SOURCE 258064 648025
  111. COURSE SOURCE 259081 819025
  112. COURSE SOURCE 293764 329476
  113. COURSE SOURCE 318096 613089
  114. COURSE SOURCE 321489 349281
  115. COURSE SOURCE 321489 381924
  116. COURSE SOURCE 346921 436921
  117. COURSE SOURCE 349281 381924
  118. COURSE SOURCE 351649 395641
  119. COURSE SOURCE 351649 543169
  120. COURSE SOURCE 390625 635209
  121. COURSE SOURCE 395641 543169
  122. COURSE SOURCE 405769 470596
  123. COURSE SOURCE 408321 423801
  124. COURSE SOURCE 416025 501264
  125. COURSE SOURCE 497025 725904
  126. COURSE SOURCE 508369 839056
  127. COURSE SOURCE 514089 549081
  128. COURSE SOURCE 514089 815409
  129. COURSE SOURCE 549081 815409
  130. COURSE SOURCE 605284 648025
  131. COURSE SOURCE 638401 813604
  132. COURSE SOURCE 638401 863041
  133. COURSE SOURCE 703921 790321
  134. COURSE SOURCE 758641 781456
  135. COURSE SOURCE 813604 863041
  136. CREDIT DIRECT 103684 638401
  137. CREDIT DIRECT 103684 813604
  138. CREDIT DIRECT 103684 863041
  139. CREDIT DIRECT 104329 123904
  140. CREDIT DIRECT 104329 310249
  141. CREDIT DIRECT 104976 710649
  142. CREDIT DIRECT 123904 310249
  143. CREDIT DIRECT 124609 162409
  144. CREDIT DIRECT 132496 214369
  145. CREDIT DIRECT 132496 346921
  146. CREDIT DIRECT 132496 436921
  147. CREDIT DIRECT 139876 391876
  148. CREDIT DIRECT 140625 164025
  149. CREDIT DIRECT 140625 254016
  150. CREDIT DIRECT 140625 416025
  151. CREDIT DIRECT 140625 501264
  152. CREDIT DIRECT 157609 170569
  153. CREDIT DIRECT 164025 254016
  154. CREDIT DIRECT 164025 416025
  155. CREDIT DIRECT 164025 501264
  156. CREDIT DIRECT 180625 502681
  157. CREDIT DIRECT 195364 351649
  158. CREDIT DIRECT 195364 395641
  159. CREDIT DIRECT 195364 543169
  160. CREDIT DIRECT 198025 259081
  161. CREDIT DIRECT 198025 819025
  162. CREDIT DIRECT 207936 603729
  163. CREDIT DIRECT 214369 346921
  164. CREDIT DIRECT 214369 436921
  165. CREDIT DIRECT 237169 729316
  166. CREDIT DIRECT 254016 416025
  167. CREDIT DIRECT 254016 501264
  168. CREDIT DIRECT 257049 497025
  169. CREDIT DIRECT 257049 725904
  170. CREDIT DIRECT 258064 605284
  171. CREDIT DIRECT 258064 648025
  172. CREDIT DIRECT 259081 819025
  173. CREDIT DIRECT 293764 329476
  174. CREDIT DIRECT 318096 613089
  175. CREDIT DIRECT 321489 349281
  176. CREDIT DIRECT 321489 381924
  177. CREDIT DIRECT 346921 436921
  178. CREDIT DIRECT 349281 381924
  179. CREDIT DIRECT 351649 395641
  180. CREDIT DIRECT 351649 543169
  181. CREDIT DIRECT 390625 635209
  182. CREDIT DIRECT 395641 543169
  183. CREDIT DIRECT 405769 470596
  184. CREDIT DIRECT 408321 423801
  185. CREDIT DIRECT 416025 501264
  186. CREDIT DIRECT 497025 725904
  187. CREDIT DIRECT 508369 839056
  188. CREDIT DIRECT 514089 549081
  189. CREDIT DIRECT 514089 815409
  190. CREDIT DIRECT 549081 815409
  191. CREDIT DIRECT 605284 648025
  192. CREDIT DIRECT 638401 813604
  193. CREDIT DIRECT 638401 863041
  194. CREDIT DIRECT 703921 790321
  195. CREDIT DIRECT 758641 781456
  196. CREDIT DIRECT 813604 863041
  197. DANGER GARDEN 103684 638401
  198. DANGER GARDEN 103684 813604
  199. DANGER GARDEN 103684 863041
  200. DANGER GARDEN 104329 123904
  201. DANGER GARDEN 104329 310249
  202. DANGER GARDEN 104976 710649
  203. DANGER GARDEN 123904 310249
  204. DANGER GARDEN 124609 162409
  205. DANGER GARDEN 132496 214369
  206. DANGER GARDEN 132496 346921
  207. DANGER GARDEN 132496 436921
  208. DANGER GARDEN 139876 391876
  209. DANGER GARDEN 140625 164025
  210. DANGER GARDEN 140625 254016
  211. DANGER GARDEN 140625 416025
  212. DANGER GARDEN 140625 501264
  213. DANGER GARDEN 157609 170569
  214. DANGER GARDEN 164025 254016
  215. DANGER GARDEN 164025 416025
  216. DANGER GARDEN 164025 501264
  217. DANGER GARDEN 180625 502681
  218. DANGER GARDEN 195364 351649
  219. DANGER GARDEN 195364 395641
  220. DANGER GARDEN 195364 543169
  221. DANGER GARDEN 198025 259081
  222. DANGER GARDEN 198025 819025
  223. DANGER GARDEN 207936 603729
  224. DANGER GARDEN 214369 346921
  225. DANGER GARDEN 214369 436921
  226. DANGER GARDEN 237169 729316
  227. DANGER GARDEN 254016 416025
  228. DANGER GARDEN 254016 501264
  229. DANGER GARDEN 257049 497025
  230. DANGER GARDEN 257049 725904
  231. DANGER GARDEN 258064 605284
  232. DANGER GARDEN 258064 648025
  233. DANGER GARDEN 259081 819025
  234. DANGER GARDEN 293764 329476
  235. DANGER GARDEN 318096 613089
  236. DANGER GARDEN 321489 349281
  237. DANGER GARDEN 321489 381924
  238. DANGER GARDEN 346921 436921
  239. DANGER GARDEN 349281 381924
  240. DANGER GARDEN 351649 395641
  241. DANGER GARDEN 351649 543169
  242. DANGER GARDEN 390625 635209
  243. DANGER GARDEN 395641 543169
  244. DANGER GARDEN 405769 470596
  245. DANGER GARDEN 408321 423801
  246. DANGER GARDEN 416025 501264
  247. DANGER GARDEN 497025 725904
  248. DANGER GARDEN 508369 839056
  249. DANGER GARDEN 514089 549081
  250. DANGER GARDEN 514089 815409
  251. DANGER GARDEN 549081 815409
  252. DANGER GARDEN 605284 648025
  253. DANGER GARDEN 638401 813604
  254. DANGER GARDEN 638401 863041
  255. DANGER GARDEN 703921 790321
  256. DANGER GARDEN 758641 781456
  257. DANGER GARDEN 813604 863041
  258. DEAL LEAD 1024 2401
  259. DEAL LEAD 1089 9801
  260. DEAL LEAD 1296 2916
  261. DEAL LEAD 1296 9216
  262. DEAL LEAD 1369 1936
  263. DEAL LEAD 1764 4761
  264. DEAL LEAD 2916 9216
  265. DEAL LEAD 4096 9604
  266. DOG GOD 169 196
  267. DOG GOD 169 961
  268. DOG GOD 196 961
  269. DOG GOD 256 625
  270. EARN NEAR 1024 2401
  271. EARN NEAR 1089 9801
  272. EARN NEAR 1296 2916
  273. EARN NEAR 1296 9216
  274. EARN NEAR 1369 1936
  275. EARN NEAR 1764 4761
  276. EARN NEAR 2916 9216
  277. EARN NEAR 4096 9604
  278. EARTH HEART 12769 96721
  279. EARTH HEART 16384 31684
  280. EARTH HEART 16384 36481
  281. EARTH HEART 16384 38416
  282. EARTH HEART 16384 43681
  283. EARTH HEART 17689 18769
  284. EARTH HEART 17689 78961
  285. EARTH HEART 17689 81796
  286. EARTH HEART 18769 78961
  287. EARTH HEART 18769 81796
  288. EARTH HEART 20736 30276
  289. EARTH HEART 21904 41209
  290. EARTH HEART 21904 91204
  291. EARTH HEART 23104 32041
  292. EARTH HEART 23409 39204
  293. EARTH HEART 23716 32761
  294. EARTH HEART 23716 72361
  295. EARTH HEART 29584 54289
  296. EARTH HEART 31684 36481
  297. EARTH HEART 31684 38416
  298. EARTH HEART 31684 43681
  299. EARTH HEART 32761 72361
  300. EARTH HEART 34596 45369
  301. EARTH HEART 36481 38416
  302. EARTH HEART 36481 43681
  303. EARTH HEART 38416 43681
  304. EARTH HEART 41209 91204
  305. EARTH HEART 50176 51076
  306. EARTH HEART 51984 95481
  307. EARTH HEART 74529 79524
  308. EARTH HEART 78961 81796
  309. EAST SEAT 1024 2401
  310. EAST SEAT 1089 9801
  311. EAST SEAT 1296 2916
  312. EAST SEAT 1296 9216
  313. EAST SEAT 1369 1936
  314. EAST SEAT 1764 4761
  315. EAST SEAT 2916 9216
  316. EAST SEAT 4096 9604
  317. EAT TEA 169 196
  318. EAT TEA 169 961
  319. EAT TEA 196 961
  320. EAT TEA 256 625
  321. FILE LIFE 1024 2401
  322. FILE LIFE 1089 9801
  323. FILE LIFE 1296 2916
  324. FILE LIFE 1296 9216
  325. FILE LIFE 1369 1936
  326. FILE LIFE 1764 4761
  327. FILE LIFE 2916 9216
  328. FILE LIFE 4096 9604
  329. FORM FROM 1024 2401
  330. FORM FROM 1089 9801
  331. FORM FROM 1296 2916
  332. FORM FROM 1296 9216
  333. FORM FROM 1369 1936
  334. FORM FROM 1764 4761
  335. FORM FROM 2916 9216
  336. FORM FROM 4096 9604
  337. HATE HEAT 1024 2401
  338. HATE HEAT 1089 9801
  339. HATE HEAT 1296 2916
  340. HATE HEAT 1296 9216
  341. HATE HEAT 1369 1936
  342. HATE HEAT 1764 4761
  343. HATE HEAT 2916 9216
  344. HATE HEAT 4096 9604
  345. HOW WHO 169 196
  346. HOW WHO 169 961
  347. HOW WHO 196 961
  348. HOW WHO 256 625
  349. IGNORE REGION 103684 638401
  350. IGNORE REGION 103684 813604
  351. IGNORE REGION 103684 863041
  352. IGNORE REGION 104329 123904
  353. IGNORE REGION 104329 310249
  354. IGNORE REGION 104976 710649
  355. IGNORE REGION 123904 310249
  356. IGNORE REGION 124609 162409
  357. IGNORE REGION 132496 214369
  358. IGNORE REGION 132496 346921
  359. IGNORE REGION 132496 436921
  360. IGNORE REGION 139876 391876
  361. IGNORE REGION 140625 164025
  362. IGNORE REGION 140625 254016
  363. IGNORE REGION 140625 416025
  364. IGNORE REGION 140625 501264
  365. IGNORE REGION 157609 170569
  366. IGNORE REGION 164025 254016
  367. IGNORE REGION 164025 416025
  368. IGNORE REGION 164025 501264
  369. IGNORE REGION 180625 502681
  370. IGNORE REGION 195364 351649
  371. IGNORE REGION 195364 395641
  372. IGNORE REGION 195364 543169
  373. IGNORE REGION 198025 259081
  374. IGNORE REGION 198025 819025
  375. IGNORE REGION 207936 603729
  376. IGNORE REGION 214369 346921
  377. IGNORE REGION 214369 436921
  378. IGNORE REGION 237169 729316
  379. IGNORE REGION 254016 416025
  380. IGNORE REGION 254016 501264
  381. IGNORE REGION 257049 497025
  382. IGNORE REGION 257049 725904
  383. IGNORE REGION 258064 605284
  384. IGNORE REGION 258064 648025
  385. IGNORE REGION 259081 819025
  386. IGNORE REGION 293764 329476
  387. IGNORE REGION 318096 613089
  388. IGNORE REGION 321489 349281
  389. IGNORE REGION 321489 381924
  390. IGNORE REGION 346921 436921
  391. IGNORE REGION 349281 381924
  392. IGNORE REGION 351649 395641
  393. IGNORE REGION 351649 543169
  394. IGNORE REGION 390625 635209
  395. IGNORE REGION 395641 543169
  396. IGNORE REGION 405769 470596
  397. IGNORE REGION 408321 423801
  398. IGNORE REGION 416025 501264
  399. IGNORE REGION 497025 725904
  400. IGNORE REGION 508369 839056
  401. IGNORE REGION 514089 549081
  402. IGNORE REGION 514089 815409
  403. IGNORE REGION 549081 815409
  404. IGNORE REGION 605284 648025
  405. IGNORE REGION 638401 813604
  406. IGNORE REGION 638401 863041
  407. IGNORE REGION 703921 790321
  408. IGNORE REGION 758641 781456
  409. IGNORE REGION 813604 863041
  410. ITEM TIME 1024 2401
  411. ITEM TIME 1089 9801
  412. ITEM TIME 1296 2916
  413. ITEM TIME 1296 9216
  414. ITEM TIME 1369 1936
  415. ITEM TIME 1764 4761
  416. ITEM TIME 2916 9216
  417. ITEM TIME 4096 9604
  418. ITS SIT 169 196
  419. ITS SIT 169 961
  420. ITS SIT 196 961
  421. ITS SIT 256 625
  422. LEAST STEAL 12769 96721
  423. LEAST STEAL 16384 31684
  424. LEAST STEAL 16384 36481
  425. LEAST STEAL 16384 38416
  426. LEAST STEAL 16384 43681
  427. LEAST STEAL 17689 18769
  428. LEAST STEAL 17689 78961
  429. LEAST STEAL 17689 81796
  430. LEAST STEAL 18769 78961
  431. LEAST STEAL 18769 81796
  432. LEAST STEAL 20736 30276
  433. LEAST STEAL 21904 41209
  434. LEAST STEAL 21904 91204
  435. LEAST STEAL 23104 32041
  436. LEAST STEAL 23409 39204
  437. LEAST STEAL 23716 32761
  438. LEAST STEAL 23716 72361
  439. LEAST STEAL 29584 54289
  440. LEAST STEAL 31684 36481
  441. LEAST STEAL 31684 38416
  442. LEAST STEAL 31684 43681
  443. LEAST STEAL 32761 72361
  444. LEAST STEAL 34596 45369
  445. LEAST STEAL 36481 38416
  446. LEAST STEAL 36481 43681
  447. LEAST STEAL 38416 43681
  448. LEAST STEAL 41209 91204
  449. LEAST STEAL 50176 51076
  450. LEAST STEAL 51984 95481
  451. LEAST STEAL 74529 79524
  452. LEAST STEAL 78961 81796
  453. MALE MEAL 1024 2401
  454. MALE MEAL 1089 9801
  455. MALE MEAL 1296 2916
  456. MALE MEAL 1296 9216
  457. MALE MEAL 1369 1936
  458. MALE MEAL 1764 4761
  459. MALE MEAL 2916 9216
  460. MALE MEAL 4096 9604
  461. MEAN NAME 1024 2401
  462. MEAN NAME 1089 9801
  463. MEAN NAME 1296 2916
  464. MEAN NAME 1296 9216
  465. MEAN NAME 1369 1936
  466. MEAN NAME 1764 4761
  467. MEAN NAME 2916 9216
  468. MEAN NAME 4096 9604
  469. NIGHT THING 12769 96721
  470. NIGHT THING 16384 31684
  471. NIGHT THING 16384 36481
  472. NIGHT THING 16384 38416
  473. NIGHT THING 16384 43681
  474. NIGHT THING 17689 18769
  475. NIGHT THING 17689 78961
  476. NIGHT THING 17689 81796
  477. NIGHT THING 18769 78961
  478. NIGHT THING 18769 81796
  479. NIGHT THING 20736 30276
  480. NIGHT THING 21904 41209
  481. NIGHT THING 21904 91204
  482. NIGHT THING 23104 32041
  483. NIGHT THING 23409 39204
  484. NIGHT THING 23716 32761
  485. NIGHT THING 23716 72361
  486. NIGHT THING 29584 54289
  487. NIGHT THING 31684 36481
  488. NIGHT THING 31684 38416
  489. NIGHT THING 31684 43681
  490. NIGHT THING 32761 72361
  491. NIGHT THING 34596 45369
  492. NIGHT THING 36481 38416
  493. NIGHT THING 36481 43681
  494. NIGHT THING 38416 43681
  495. NIGHT THING 41209 91204
  496. NIGHT THING 50176 51076
  497. NIGHT THING 51984 95481
  498. NIGHT THING 74529 79524
  499. NIGHT THING 78961 81796
  500. NOTE TONE 1024 2401
  501. NOTE TONE 1089 9801
  502. NOTE TONE 1296 2916
  503. NOTE TONE 1296 9216
  504. NOTE TONE 1369 1936
  505. NOTE TONE 1764 4761
  506. NOTE TONE 2916 9216
  507. NOTE TONE 4096 9604
  508. NOW OWN 169 196
  509. NOW OWN 169 961
  510. NOW OWN 196 961
  511. NOW OWN 256 625
  512. PHASE SHAPE 12769 96721
  513. PHASE SHAPE 16384 31684
  514. PHASE SHAPE 16384 36481
  515. PHASE SHAPE 16384 38416
  516. PHASE SHAPE 16384 43681
  517. PHASE SHAPE 17689 18769
  518. PHASE SHAPE 17689 78961
  519. PHASE SHAPE 17689 81796
  520. PHASE SHAPE 18769 78961
  521. PHASE SHAPE 18769 81796
  522. PHASE SHAPE 20736 30276
  523. PHASE SHAPE 21904 41209
  524. PHASE SHAPE 21904 91204
  525. PHASE SHAPE 23104 32041
  526. PHASE SHAPE 23409 39204
  527. PHASE SHAPE 23716 32761
  528. PHASE SHAPE 23716 72361
  529. PHASE SHAPE 29584 54289
  530. PHASE SHAPE 31684 36481
  531. PHASE SHAPE 31684 38416
  532. PHASE SHAPE 31684 43681
  533. PHASE SHAPE 32761 72361
  534. PHASE SHAPE 34596 45369
  535. PHASE SHAPE 36481 38416
  536. PHASE SHAPE 36481 43681
  537. PHASE SHAPE 38416 43681
  538. PHASE SHAPE 41209 91204
  539. PHASE SHAPE 50176 51076
  540. PHASE SHAPE 51984 95481
  541. PHASE SHAPE 74529 79524
  542. PHASE SHAPE 78961 81796
  543. POST SPOT 1024 2401
  544. POST SPOT 1089 9801
  545. POST SPOT 1296 2916
  546. POST SPOT 1296 9216
  547. POST SPOT 1369 1936
  548. POST SPOT 1764 4761
  549. POST SPOT 2916 9216
  550. POST SPOT 4096 9604
  551. POST STOP 1024 2401
  552. POST STOP 1089 9801
  553. POST STOP 1296 2916
  554. POST STOP 1296 9216
  555. POST STOP 1369 1936
  556. POST STOP 1764 4761
  557. POST STOP 2916 9216
  558. POST STOP 4096 9604
  559. QUIET QUITE 12769 96721
  560. QUIET QUITE 16384 31684
  561. QUIET QUITE 16384 36481
  562. QUIET QUITE 16384 38416
  563. QUIET QUITE 16384 43681
  564. QUIET QUITE 17689 18769
  565. QUIET QUITE 17689 78961
  566. QUIET QUITE 17689 81796
  567. QUIET QUITE 18769 78961
  568. QUIET QUITE 18769 81796
  569. QUIET QUITE 20736 30276
  570. QUIET QUITE 21904 41209
  571. QUIET QUITE 21904 91204
  572. QUIET QUITE 23104 32041
  573. QUIET QUITE 23409 39204
  574. QUIET QUITE 23716 32761
  575. QUIET QUITE 23716 72361
  576. QUIET QUITE 29584 54289
  577. QUIET QUITE 31684 36481
  578. QUIET QUITE 31684 38416
  579. QUIET QUITE 31684 43681
  580. QUIET QUITE 32761 72361
  581. QUIET QUITE 34596 45369
  582. QUIET QUITE 36481 38416
  583. QUIET QUITE 36481 43681
  584. QUIET QUITE 38416 43681
  585. QUIET QUITE 41209 91204
  586. QUIET QUITE 50176 51076
  587. QUIET QUITE 51984 95481
  588. QUIET QUITE 74529 79524
  589. QUIET QUITE 78961 81796
  590. RATE TEAR 1024 2401
  591. RATE TEAR 1089 9801
  592. RATE TEAR 1296 2916
  593. RATE TEAR 1296 9216
  594. RATE TEAR 1369 1936
  595. RATE TEAR 1764 4761
  596. RATE TEAR 2916 9216
  597. RATE TEAR 4096 9604
  598. SHOUT SOUTH 12769 96721
  599. SHOUT SOUTH 16384 31684
  600. SHOUT SOUTH 16384 36481
  601. SHOUT SOUTH 16384 38416
  602. SHOUT SOUTH 16384 43681
  603. SHOUT SOUTH 17689 18769
  604. SHOUT SOUTH 17689 78961
  605. SHOUT SOUTH 17689 81796
  606. SHOUT SOUTH 18769 78961
  607. SHOUT SOUTH 18769 81796
  608. SHOUT SOUTH 20736 30276
  609. SHOUT SOUTH 21904 41209
  610. SHOUT SOUTH 21904 91204
  611. SHOUT SOUTH 23104 32041
  612. SHOUT SOUTH 23409 39204
  613. SHOUT SOUTH 23716 32761
  614. SHOUT SOUTH 23716 72361
  615. SHOUT SOUTH 29584 54289
  616. SHOUT SOUTH 31684 36481
  617. SHOUT SOUTH 31684 38416
  618. SHOUT SOUTH 31684 43681
  619. SHOUT SOUTH 32761 72361
  620. SHOUT SOUTH 34596 45369
  621. SHOUT SOUTH 36481 38416
  622. SHOUT SOUTH 36481 43681
  623. SHOUT SOUTH 38416 43681
  624. SHOUT SOUTH 41209 91204
  625. SHOUT SOUTH 50176 51076
  626. SHOUT SOUTH 51984 95481
  627. SHOUT SOUTH 74529 79524
  628. SHOUT SOUTH 78961 81796
  629. SHUT THUS 1024 2401
  630. SHUT THUS 1089 9801
  631. SHUT THUS 1296 2916
  632. SHUT THUS 1296 9216
  633. SHUT THUS 1369 1936
  634. SHUT THUS 1764 4761
  635. SHUT THUS 2916 9216
  636. SHUT THUS 4096 9604
  637. SIGN SING 1024 2401
  638. SIGN SING 1089 9801
  639. SIGN SING 1296 2916
  640. SIGN SING 1296 9216
  641. SIGN SING 1369 1936
  642. SIGN SING 1764 4761
  643. SIGN SING 2916 9216
  644. SIGN SING 4096 9604
  645. SPOT STOP 1024 2401
  646. SPOT STOP 1089 9801
  647. SPOT STOP 1296 2916
  648. SPOT STOP 1296 9216
  649. SPOT STOP 1369 1936
  650. SPOT STOP 1764 4761
  651. SPOT STOP 2916 9216
  652. SPOT STOP 4096 9604
  653. SURE USER 1024 2401
  654. SURE USER 1089 9801
  655. SURE USER 1296 2916
  656. SURE USER 1296 9216
  657. SURE USER 1369 1936
  658. SURE USER 1764 4761
  659. SURE USER 2916 9216
  660. SURE USER 4096 9604
  661. THROW WORTH 12769 96721
  662. THROW WORTH 16384 31684
  663. THROW WORTH 16384 36481
  664. THROW WORTH 16384 38416
  665. THROW WORTH 16384 43681
  666. THROW WORTH 17689 18769
  667. THROW WORTH 17689 78961
  668. THROW WORTH 17689 81796
  669. THROW WORTH 18769 78961
  670. THROW WORTH 18769 81796
  671. THROW WORTH 20736 30276
  672. THROW WORTH 21904 41209
  673. THROW WORTH 21904 91204
  674. THROW WORTH 23104 32041
  675. THROW WORTH 23409 39204
  676. THROW WORTH 23716 32761
  677. THROW WORTH 23716 72361
  678. THROW WORTH 29584 54289
  679. THROW WORTH 31684 36481
  680. THROW WORTH 31684 38416
  681. THROW WORTH 31684 43681
  682. THROW WORTH 32761 72361
  683. THROW WORTH 34596 45369
  684. THROW WORTH 36481 38416
  685. THROW WORTH 36481 43681
  686. THROW WORTH 38416 43681
  687. THROW WORTH 41209 91204
  688. THROW WORTH 50176 51076
  689. THROW WORTH 51984 95481
  690. THROW WORTH 74529 79524
  691. THROW WORTH 78961 81796
  692. running time=0s289ms

上面红色的就是答案的。。。。先这样吧。

Project Euler 98:Anagramic squares 重排平方数的更多相关文章

  1. 279 Perfect Squares 完美平方数

    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...) 使得他们的和等于 n.你需要让平方数的个数最少.比如 n = 12,返回 3 ,因为 12 = 4 + 4 + 4 : ...

  2. Project Euler 92:Square digit chains 平方数字链

    题目 Square digit chains A number chain is created by continuously adding the square of the digits in ...

  3. 洛谷P1206 [USACO1.2]回文平方数 Palindromic Squares

    P1206 [USACO1.2]回文平方数 Palindromic Squares 271通过 501提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 暂时没有 ...

  4. Palindromic Squares 回文平方数

    1.2.4 Palindromic Squares 回文平方数 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 139  Solved: 66[Submit ...

  5. 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares

    P1206 [USACO1.2]回文平方数 Palindromic Squares 题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2< ...

  6. Python练习题 040:Project Euler 012:有超过500个因子的三角形数

    本题来自 Project Euler 第12题:https://projecteuler.net/problem=12 # Project Euler: Problem 12: Highly divi ...

  7. 63.Perfect Squares(完美平方数)

    Level:   Medium 题目描述: Given a positive integer n, find the least number of perfect square numbers (f ...

  8. Python练习题 045:Project Euler 017:数字英文表达的字符数累加

    本题来自 Project Euler 第17题:https://projecteuler.net/problem=17 ''' Project Euler 17: Number letter coun ...

  9. Python练习题 030:Project Euler 002:偶数斐波那契数之和

    本题来自 Project Euler 第2题:https://projecteuler.net/problem=2 # Each new term in the Fibonacci sequence ...

随机推荐

  1. 方便实用的jQuery checkbox复选框全选功能

    // 主复选框 <input type="checkbox" id="ck" name="ckAll">// 子复选框项 < ...

  2. Redis源码研究--启动过程

    ---------------------6月23日--------------------------- Redis启动入口即main函数在redis.c文件,伪代码如下: int main(int ...

  3. Python学习第五天

    复习内容: · 迭代器&生成器 · 装饰器 · Json & pickle 数据序列化 · 软件目录结构规范yi 一.生成器 1.   列表生成式: 2.   生成器的定义:在Pyth ...

  4. 简单的Datatable转List,Json

    这里用到了Newtonsoft.Json,下载地址:http://json.codeplex.com/ 1.根据不同的Model转为对应的List public static List<Mode ...

  5. dblink 的源数据表结构修改后在存储过程里执行报错

    原情况:A服务器表A服务器B也有一张表A服务器B上有一个存储过程要把本地的head表向A服务器表里插入数据.变更后:在A服务器表里增加了一个字段inserttime,服务器B存储过程本地表向A服务器插 ...

  6. python之函数嵌套

    python很多特性与JavaScript是相似甚至相同的: 1. 无类型 2. 函数亦对象 .... 自然: python也允许函数嵌套, 这与JavaScript中函数闭包的作用一样....

  7. 从零开始学ios开发(七):Delegate,Action Sheet, Alert

    Action Sheet和Alert是2种特殊的控件(暂且称之为控件吧,其实不是控件真正的控件,而是ios中的2个类,这2个类定义了2种不同类型的用于和用户交互的弹出框),Action Sheet是从 ...

  8. cookie、session的联系和区别,多台web服务器如何共享session?

    cookie在客户端保存状态,session在服务器端保存状态.但是由于在服务器端保存状态的时候,在客户端也需要一个标识,所以session也可能要借助cookie来实现保存标识位的作用.cookie ...

  9. 微软职位内部推荐-Sr. Dev Lead

    微软近期Open的职位: JD 如果你想试试这个职位,请跟我联系,我是微软的员工,可以做内部推荐.发你的中英文简历到我的邮箱:Nicholas.lu.mail(at)gmail.com

  10. Java 基础学习1 -- 基础语法

    1.变量