Advertisement
Guest User

Untitled

a guest
Nov 15th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int q;
  4. long long n;
  5.  
  6. int countSub(string str)
  7. {
  8. int MAX_CHAR = 256;
  9. vector<int> last(MAX_CHAR, -1);
  10. int n = str.length();
  11. int dp[n+1];
  12. dp[0] = 1;
  13. for (int i=1; i<=n; i++)
  14. {
  15. dp[i] = 2*dp[i-1];
  16. if (last[str[i-1]] != -1)dp[i] = dp[i] - dp[last[str[i-1]]];
  17. last[str[i-1]] = (i-1);
  18. }
  19. return dp[n];
  20. }
  21.  
  22. long long NWD (long long a, long long b)
  23. {
  24. if (a == 0) return b;
  25. return NWD(b%a, a);
  26. }
  27.  
  28. void NWD_Create (long long n)
  29. {
  30. long long a = (n+1)/1.61803398875;
  31. long long b = n+1-a;
  32. while (a > 0 && b > 0)
  33. {
  34. while (NWD(a,b) != 1) a++, b--;
  35. if (a > b)
  36. {
  37. cout << 'a';
  38. a -= b;
  39. }
  40. else
  41. {
  42. cout << 'b';
  43. b -= a;
  44. }
  45. }
  46. }
  47.  
  48. int main()
  49. {
  50. NWD_Create(8);
  51. cout << "\n" << " " << countSub("ababababbaabb");
  52.  
  53. // ios_base::sync_with_stdio(0);
  54. // cin.tie(0);
  55. // cout.tie(0);
  56.  
  57. cin >> q;
  58. while (q--)
  59. {
  60. cin >> n;
  61. NWD_Create(n);
  62. cout << "\n";
  63. }
  64.  
  65. return 0;
  66. }
  67.  
  68.  
  69. /*
  70. 2
  71. 14
  72. 4
  73. ---
  74. 5
  75. 7
  76. 10
  77. 42
  78. 15
  79. 512
  80. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement