A - Diverse Word

不到26位就加上一个最小的

到26位了就搜一下,最多回溯就一次,所以复杂度不大

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <ctime>
  7. #include <vector>
  8. //#define ivorysi
  9. #define MAXN 100005
  10. #define eps 1e-7
  11. #define mo 974711
  12. #define pb push_back
  13. #define mp make_pair
  14. using namespace std;
  15. typedef long long int64;
  16. typedef unsigned int u32;
  17. typedef double db;
  18. char s[55],ans[55];
  19. int N,L;
  20. bool vis[55];
  21. bool dfs(int dep) {
  22. if(dep > 26) return false;
  23. if(!vis[s[dep] - 'a']) {
  24. vis[s[dep] - 'a'] = 1;
  25. ans[dep] = s[dep];
  26. if(dfs(dep + 1)) return true;
  27. vis[s[dep] - 'a'] = 0;
  28. }
  29. for(int i = s[dep] - 'a' + 1 ; i <= 25 ; ++i) {
  30. if(!vis[i]) {
  31. L = dep;
  32. ans[dep] = 'a' + i;
  33. return true;
  34. }
  35. }
  36. return false;
  37. }
  38. int main() {
  39. #ifdef ivorysi
  40. freopen("f1.in","r",stdin);
  41. #endif
  42. scanf("%s",s + 1);
  43. N = strlen(s + 1);
  44. if(N != 26) {
  45. for(int i = 1 ; i <= N ; ++i) vis[s[i] - 'a'] = 1;
  46. for(int i = 1 ; i <= N ; ++i) putchar(s[i]);
  47. for(int i = 0 ; i <= 25 ; ++i) {
  48. if(!vis[i]) {
  49. putchar('a' + i);
  50. break;
  51. }
  52. }
  53. putchar('\n');
  54. }
  55. else {
  56. if(!dfs(1)) puts("-1");
  57. else {
  58. for(int i = 1 ; i <= L ; ++i) putchar(ans[i]);
  59. putchar('\n');
  60. }
  61. }
  62. }

B - GCD Sequence

3 4 5都特判输出

根据30000我们猜测每三个数里要有两个,或者每六个数里有四个

我们根据这些数%6的余数分成0 2 3 4 ,6减去他们和他们自己都不互质,所以考虑这么构造

但是我们希望我们的总和是6的倍数,我们算出当前%6的余数再修改某个点使得总和是6的倍数即可

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <ctime>
  7. #include <vector>
  8. //#define ivorysi
  9. #define MAXN 20005
  10. #define eps 1e-8
  11. #define mo 974711
  12. #define pb push_back
  13. #define mp make_pair
  14. #define pii pair<int,int>
  15. #define fi first
  16. #define se second
  17. using namespace std;
  18. typedef long long int64;
  19. typedef unsigned int u32;
  20. typedef double db;
  21. const int64 MOD = 998244353;
  22. int N;
  23. int c = 0,ans[MAXN],S;
  24. int main() {
  25. #ifdef ivorysi
  26. freopen("f1.in","r",stdin);
  27. #endif
  28. scanf("%d",&N);
  29. if(N == 3) puts("2 5 63");
  30. else if(N == 4) puts("2 5 20 63");
  31. else if(N == 5) puts("2 5 20 30 63");
  32. else {
  33. for(int i = 0 ; i <= 4999 ; ++i) {
  34. ans[++c] = 6 * i + 2,ans[++c] = 6 * i + 3,ans[++c] = 6 * i + 4,ans[++c] = 6 * i + 6;
  35. }
  36. for(int i = 1 ; i <= N ; ++i) S = (S + ans[i]) % 6;
  37. if(S == 5) {
  38. ans[6] = 6 * 4999 + 4;
  39. }
  40. else if(S == 3) {
  41. ans[6] = 6 * 5000;
  42. }
  43. else if(S == 2){
  44. ans[5] = 6 * 5000;
  45. }
  46. for(int i = 1 ; i <= N ; ++i) printf("%d%c",ans[i]," \n"[i == N]);
  47. }
  48. return 0;
  49. }

C - Remainder Game

显然第k个如果不加,比他小的都放进去都比它优

所以我们枚举每个k,每次把比它小的k都加进去,看看是否合法

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <ctime>
  7. #include <vector>
  8. //#define ivorysi
  9. #define MAXN 20005
  10. #define eps 1e-8
  11. #define mo 974711
  12. #define pb push_back
  13. #define mp make_pair
  14. #define pii pair<int,int>
  15. #define fi first
  16. #define se second
  17. using namespace std;
  18. typedef long long int64;
  19. typedef unsigned int u32;
  20. typedef double db;
  21. const int64 MOD = 998244353;
  22. int N;
  23. int a[55],b[55];
  24. int s[55],cnt,ans[55];
  25. bool vis[55];
  26. void Init() {
  27. scanf("%d",&N);
  28. for(int i = 1 ; i <= N ; ++i) scanf("%d",&a[i]);
  29. for(int i = 1 ; i <= N ; ++i) scanf("%d",&b[i]);
  30. }
  31. bool check(int x) {
  32. memset(vis,0,sizeof(vis));
  33. vis[a[x]] = 1;
  34. for(int i = 1 ; i <= cnt ; ++i) {
  35. for(int j = s[i] ; j <= 50 ; ++j) {
  36. if(vis[j]) vis[j % s[i]] = 1;
  37. }
  38. }
  39. if(vis[b[x]]) return true;
  40. return false;
  41. }
  42. void Solve() {
  43. cnt = 0;
  44. for(int i = 50 ; i >= 1 ; --i) s[++cnt] = i;
  45. for(int i = 1 ; i <= N ; ++i) {
  46. if(!check(i)) {puts("-1");return;}
  47. }
  48. for(int i = 50 ; i >= 1 ; --i) {
  49. cnt = 0;
  50. for(int j = 50 ; j >= i ; --j) {
  51. if(ans[j]) s[++cnt] = j;
  52. }
  53. for(int j = i - 1 ; j >= 1 ; --j) s[++cnt] = j;
  54. for(int j = 1 ; j <= N ; ++j) {
  55. if(!check(j)) {
  56. ans[i] = 1;
  57. break;
  58. }
  59. }
  60. }
  61. int64 res = 0;
  62. for(int i = 50 ; i >= 1 ; --i) {
  63. if(ans[i]) res |= 1LL << i;
  64. }
  65. printf("%lld\n",res);
  66. }
  67. int main() {
  68. #ifdef ivorysi
  69. freopen("f1.in","r",stdin);
  70. #endif
  71. Init();
  72. Solve();
  73. return 0;
  74. }

D - Shopping

也就是求我们最多转多少圈,输出乘上2×L就好

我们对于每个位置求一个二元组\((x,y)\)

对于\(t\)处理成取模圈长之后的

\(x = 0\)表示从左边来,下一次火车经过的时候是从右边来,\(x = 1\)表示从左边来,下一次火车经过的时候是从左边来

\(y = 0\)表示从右边来,下一次火车经过的时候从左边来,\(y = 1\)表示从右边来,下一次火车经过的时候从右边来

显然我\(x = 1\)从左边进要多绕一圈,\(y = 1\)从右边要多绕一圈

\((1,1)\)的点可以直接删除,然后答案累加上1

然后对于\((0,1)(0,1)(0,1)(0,0)(1,0)(1,0)\)这样的形状,显然不能通过任何一个点走到另一个点而不加任何额外的花费

所用的圈数就是车站的个数 + 1

如果是(0,0)或者(0,1)作为结尾,且后面没有任何其余的车站时,就是圈数就是车站的个数

实际上,我们会有很多\((0,0)(0,1)\)和\((1,0)(0,0)\)和\((0,0)(0,0)\)这样的形状,我们把他们两两搭配起来就好,圈数+1

要把\((0,0)\)和别的搭配完了再把\((0,0)\)两两搭配,这样减少的圈最多,并且尽量不配最右一个点

  1. #include <bits/stdc++.h>
  2. #define fi first
  3. #define se second
  4. #define pii pair<int,int>
  5. #define mp make_pair
  6. #define pb push_back
  7. #define space putchar(' ')
  8. #define enter putchar('\n')
  9. #define MAXN 300005
  10. //#define ivorysi
  11. using namespace std;
  12. typedef long long int64;
  13. template<class T>
  14. void read(T &res) {
  15. res = 0;char c = getchar();T f = 1;
  16. while(c < '0' || c > '9') {
  17. if(c == '-') f = -1;
  18. c = getchar();
  19. }
  20. while(c >= '0' && c <= '9') {
  21. res = res * 10 + c - '0';
  22. c = getchar();
  23. }
  24. res *= f;
  25. }
  26. template<class T>
  27. void out(T x) {
  28. if(x < 0) {x = -x;putchar('-');}
  29. if(x >= 10) {out(x / 10);}
  30. putchar('0' + x % 10);
  31. }
  32. int N,tot,sta[MAXN],top;
  33. int64 L,x[MAXN],t[MAXN],ans;
  34. pii p[MAXN];
  35. bool vis[MAXN];
  36. void Solve() {
  37. read(N);read(L);
  38. for(int i = 1 ; i <= N ; ++i) read(x[i]);
  39. for(int i = 1 ; i <= N ; ++i) {
  40. read(t[i]);
  41. ans += t[i] / (2 * L);
  42. t[i] %= (2 * L);
  43. if(t[i] == 0) p[i] = mp(1,1);
  44. else p[i] = mp(t[i] > 2 * (L - x[i]),t[i] > 2 * x[i]);
  45. }
  46. for(int i = 1 ; i <= N ; ++i) {
  47. if(p[i].fi == 1 && p[i].se == 1) {
  48. vis[i] = 1;
  49. if(t[i] != 0) ++ans;
  50. }
  51. }
  52. top = 0;
  53. for(int i = 1 ; i <= N ; ++i) {
  54. if(!vis[i]) {
  55. if(p[i].fi == 1 && p[i].se == 0) {
  56. sta[++top] = i;
  57. }
  58. if(p[i].fi == 0 && p[i].se == 0) {
  59. if(top) {
  60. vis[i] = 1;vis[sta[top]] = 1;
  61. --top;++ans;
  62. }
  63. }
  64. }
  65. }
  66. top = 0;
  67. for(int i = 1; i < N ; ++i) {
  68. if(!vis[i]) {
  69. if(p[i].fi == 0 && p[i].se == 0) {
  70. sta[++top] = i;
  71. }
  72. if(p[i].fi == 0 && p[i].se == 1) {
  73. if(top) {
  74. vis[i] = 1;vis[sta[top]] = 1;
  75. --top;++ans;
  76. }
  77. }
  78. }
  79. }
  80. top = 0;
  81. for(int i = 1 ; i < N ; ++i) {
  82. if(!vis[i]) {
  83. if(p[i].fi == 0 && p[i].se == 0) {
  84. if(top) {
  85. vis[i] = 1;vis[sta[top]] = 1;
  86. --top;++ans;
  87. }
  88. else sta[++top] = i;
  89. }
  90. }
  91. }
  92. if(!vis[N] && p[N].fi == 0) {
  93. for(int i = 1 ; i < N - 1 ; ++i) {
  94. if(!vis[i] && p[i].se == 0) {
  95. vis[i] = 1;vis[N] = 1;++ans;break;
  96. }
  97. }
  98. }
  99. for(int i = 1 ; i <= N ; ++i) {
  100. if(!vis[i]) ++ans;
  101. }
  102. if(!vis[N]) {
  103. if(p[N].fi == 1 && p[N].se == 0) ++ans;
  104. }
  105. else ++ans;
  106. out(ans * 2 * L);
  107. }
  108. int main() {
  109. #ifdef ivorysi
  110. freopen("f1.in","r",stdin);
  111. #endif
  112. Solve();
  113. }

E - Median Replace

这个E怎么那么水???

和上一道D题比起来简直画风不一样……

分还一样???

我们显然要贪心地把连着三个0变成一个0

如果开头有两个连续的1,我们一定可以使得最后的答案是1

如果开头是一个0,我们一定会把它弄走,而且它的合并一定是和它后面连续的两个

那么我们就可以记dp状态为\(dp[i][j][h][0/1]\)表示当前有j个0,开头有h个1,有没有出现形状01

然后转移就是每次加一个0

形状01是010,合成一个0

两个0和零个0都会变成1个0

一个0变成两个0

每次加一个1

如果有两个0会变成一个0

如果有一个0会变成01

如果没有0就累加一个1

如果有01会累加一个1

  1. #include <bits/stdc++.h>
  2. #define fi first
  3. #define se second
  4. #define pii pair<int,int>
  5. #define space putchar(' ')
  6. #define enter putchar('\n')
  7. #define mp make_pair
  8. #define pb push_back
  9. //#define ivorysi
  10. #define MAXN 300005
  11. using namespace std;
  12. typedef long long int64;
  13. typedef double db;
  14. template<class T>
  15. void read(T &res) {
  16. res = 0;char c = getchar();T f = 1;
  17. while(c < '0' || c > '9') {
  18. if(c == '-') f = -1;
  19. c = getchar();
  20. }
  21. while(c >= '0' && c <= '9') {
  22. res = res * 10 + c - '0';
  23. c = getchar();
  24. }
  25. res *= f;
  26. }
  27. template<class T>
  28. void out(T x) {
  29. if(x < 0) {x = -x;putchar('-');}
  30. if(x >= 10) {
  31. out(x / 10);
  32. }
  33. putchar('0' + x % 10);
  34. }
  35. const int MOD = 1000000007;
  36. int dp[MAXN][3][2][2],sum[MAXN],ans,N;
  37. char s[MAXN];
  38. int inc(int a,int b) {
  39. return a + b >= MOD ? a + b - MOD : a + b;
  40. }
  41. int mul(int a,int b) {
  42. return 1LL * a * b % MOD;
  43. }
  44. void update(int &x,int y) {
  45. x = inc(x,y);
  46. }
  47. int fpow(int x,int c) {
  48. int res = 1,t = x;
  49. while(c) {
  50. if(c & 1) res = mul(res,t);
  51. t = mul(t,t);
  52. c >>= 1;
  53. }
  54. return res;
  55. }
  56. void Solve() {
  57. scanf("%s",s + 1);
  58. N = strlen(s + 1);
  59. for(int i = N ; i >= 1 ; --i) {
  60. sum[i] = sum[i + 1] + (s[i] == '?');
  61. }
  62. dp[0][0][0][0] = 1;
  63. for(int i = 1 ; i <= N ; ++i) {
  64. int t = 0;
  65. for(int j = 0 ; j <= 2 ; ++j) {
  66. for(int h = 0 ; h <= 1 ; ++h) {
  67. for(int k = 0 ; k <= 1 ; ++k) {
  68. if(!dp[i - 1][j][h][k]) continue;
  69. if(s[i] == '0' || s[i] == '?') {
  70. if(k) update(dp[i][1][h][0],dp[i - 1][j][h][k]);
  71. else {
  72. if(j == 1) update(dp[i][2][h][0],dp[i - 1][j][h][k]);
  73. else update(dp[i][1][h][0],dp[i - 1][j][h][k]);
  74. }
  75. }
  76. if(s[i] == '1' || s[i] == '?') {
  77. if(k) {
  78. if(h) update(t,dp[i - 1][j][h][k]);
  79. else update(dp[i][0][h + 1][0],dp[i - 1][j][h][k]);
  80. }
  81. else {
  82. if(j == 1) update(dp[i][0][h][1],dp[i - 1][j][h][k]);
  83. if(j == 2) update(dp[i][1][h][0],dp[i - 1][j][h][k]);
  84. if(j == 0) {
  85. if(h) update(t,dp[i - 1][j][h][k]);
  86. else update(dp[i][0][h + 1][0],dp[i - 1][j][h][k]);
  87. }
  88. }
  89. }
  90. }
  91. }
  92. }
  93. update(ans,mul(t,fpow(2,sum[i + 1])));
  94. }
  95. update(ans,inc(dp[N][0][1][1],dp[N][0][1][0]));
  96. out(ans);enter;
  97. }
  98. int main() {
  99. #ifdef ivorysi
  100. freopen("f1.in","r",stdin);
  101. #endif
  102. Solve();
  103. return 0;
  104. }

F - Checkers

一道结论题

很显然的一点是,我们相当于给每个点上填上\(\pm 2^j\)

然后一个什么样的序列是合法的呢就是对于某一个位权\(i\)

如果我们可以通过改变所有\(2^i\)前面的符号,可以达成所有\(0 \leq j \leq i\)使得他们的和等于\(1\),那么这个集合就合法

可以用归纳法证,每次多一个新的\(2^i\)

这样的话我们可以记一个\(dp[i][j]\)表示确定了\(i\)位的值,所有数的和是\(1 + j * V\),我们上一个加的最大的2的次幂是\(\frac{V}{2}\),因为\(2 * j\)是偶数所以总可以变成\(0\)

答案就是\(dp[N][0]\)为了处理负数可以把第二维整体向前平移\(N\)

  1. #include <bits/stdc++.h>
  2. #define fi first
  3. #define se second
  4. #define pii pair<int,int>
  5. #define space putchar(' ')
  6. #define enter putchar('\n')
  7. #define mp make_pair
  8. #define MAXN 100005
  9. //#define ivorysi
  10. using namespace std;
  11. typedef long long int64;
  12. template<class T>
  13. void read(T &res) {
  14. res = 0;char c = getchar();T f = 1;
  15. while(c < '0' || c > '9') {
  16. if(c == '-') f = -1;
  17. c = getchar();
  18. }
  19. while(c >= '0' && c <= '9') {
  20. res = res * 10 + c - '0';
  21. c = getchar();
  22. }
  23. res *= f;
  24. }
  25. template<class T>
  26. void out(T x) {
  27. if(x < 0) {putchar('-');x = -x;}
  28. if(x >= 10) {
  29. out(x / 10);
  30. }
  31. putchar('0' + x % 10);
  32. }
  33. const int MOD = 1000000007;
  34. int N;
  35. int dp[55][105],inv[55],invfac[55],fac[55];
  36. int inc(int a,int b) {
  37. return a + b >= MOD ? a + b - MOD : a + b;
  38. }
  39. int mul(int a,int b) {
  40. return 1LL * a * b % MOD;
  41. }
  42. int C(int n,int m) {
  43. if(n < m) return 0;
  44. return mul(fac[n],mul(invfac[m],invfac[n - m]));
  45. }
  46. void update(int &x,int y) {
  47. x = inc(x,y);
  48. }
  49. void Solve() {
  50. read(N);
  51. inv[1] = 1;
  52. for(int i = 2 ; i <= N ; ++i) inv[i] = mul(inv[MOD % i],MOD - MOD / i);
  53. fac[0] = invfac[0] = 1;
  54. for(int i = 1 ; i <= N ; ++i) {
  55. fac[i] = mul(fac[i - 1],i);
  56. invfac[i] = mul(invfac[i - 1],inv[i]);
  57. }
  58. dp[1][N] = 1;
  59. dp[1][N - 1] = 1;
  60. for(int i = 1 ; i <= N ; ++i) {
  61. for(int j = -i ; j <= i ; ++j) {
  62. for(int k = max(1,abs(j)) ; k <= N ; ++k) {
  63. if(i + k > N) break;
  64. for(int h = 0 ; h <= k ; ++h) {
  65. if((j + 2 * h - k) % 2) continue;
  66. int val = (j + 2 * h - k) / 2;
  67. if(val < -N || val > N) continue;
  68. update(dp[i + k][val + N],mul(dp[i][j + N],mul(C(i + k,k),C(k,h))));
  69. }
  70. }
  71. }
  72. }
  73. out(dp[N][N]);enter;
  74. }
  75. int main() {
  76. #ifdef ivorysi
  77. freopen("f1.in","r",stdin);
  78. #endif
  79. Solve();
  80. }

【AtCoder】AGC022的更多相关文章

  1. 【AtCoder】AGC022 F - Leftmost Ball 计数DP

    [题目]F - Leftmost Ball [题意]给定n种颜色的球各k个,每次以任意顺序排列所有球并将每种颜色最左端的球染成颜色0,求有多少种不同的颜色排列.n,k<=2000. [算法]计数 ...

  2. 【Atcoder】AGC022 C - Remainder Game 搜索

    [题目]C - Remainder Game [题意]给定n个数字的序列A,每次可以选择一个数字k并选择一些数字对k取模,花费2^k的代价.要求最终变成序列B,求最小代价或无解.n<=50,0& ...

  3. 【AtCoder】ARC092 D - Two Sequences

    [题目]AtCoder Regular Contest 092 D - Two Sequences [题意]给定n个数的数组A和数组B,求所有A[i]+B[j]的异或和(1<=i,j<=n ...

  4. 【Atcoder】CODE FESTIVAL 2017 qual A D - Four Coloring

    [题意]给定h,w,d,要求构造矩阵h*w满足任意两个曼哈顿距离为d的点都不同色,染四色. [算法]结论+矩阵变换 [题解] 曼哈顿距离是一个立着的正方形,不方便处理.d=|xi-xj|+|yi-yj ...

  5. 【AtCoder】ARC 081 E - Don't Be a Subsequence

    [题意]给定长度为n(<=2*10^5)的字符串,求最短的字典序最小的非子序列字符串. http://arc081.contest.atcoder.jp/tasks/arc081_c [算法]字 ...

  6. 【AtCoder】AGC005 F - Many Easy Problems 排列组合+NTT

    [题目]F - Many Easy Problems [题意]给定n个点的树,定义S为大小为k的点集,则f(S)为最小的包含点集S的连通块大小,求k=1~n时的所有点集f(S)的和取模92484403 ...

  7. 【AtCoder】ARC067 F - Yakiniku Restaurants 单调栈+矩阵差分

    [题目]F - Yakiniku Restaurants [题意]给定n和m,有n个饭店和m张票,给出Ai表示从饭店i到i+1的距离,给出矩阵B(i,j)表示在第i家饭店使用票j的收益,求任选起点和终 ...

  8. 【AtCoder】ARC095 E - Symmetric Grid 模拟

    [题目]E - Symmetric Grid [题意]给定n*m的小写字母矩阵,求是否能通过若干行互换和列互换使得矩阵中心对称.n,m<=12. [算法]模拟 [题解]首先行列操作独立,如果已确 ...

  9. 【Atcoder】AGC 020 B - Ice Rink Game 递推

    [题意]n个人进行游戏,每轮只保留最大的a[i]倍数的人,最后一轮过后剩余2人,求最小和最大的n,或-1.n<=10^5. [算法]递推||二分 [题解]令L(i),R(i)表示第i轮过后的最小 ...

随机推荐

  1. 基于Docker持续交付平台建设的实践

    导读:中国五矿和阿里巴巴联手打造的钢铁服务专业平台五阿哥,通过集结阿里巴巴在大数据.电商平台和互联网产品技术上的优势,为终端用户带来一站式采购体验.本文是五阿哥运维技术团队针对Docker容器技术在如 ...

  2. 首先java中集合类主要有两大分支

    本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重 ...

  3. 循环取月的三位英语名 Jan Feb

    CultureInfo ci = new CultureInfo("en-US"); DateTime now = DateTime.Now; for (int i = 0; i ...

  4. 【ARC082E】ConvexScore

    Description 给定二维直角坐标系上的N个点\((X_i,Y_i)\),定义一个有N个点中的部分点所构成点集为"凸点集",当且仅当该集合内的所有点恰好构成一个面积为正的凸多 ...

  5. java Integer.valueOf 和 Integer.parseInt 和 new Integer区别及注意事项

    先看一下下面的结果 1.System.out.println(127==127); //true , int type compare 2.System.out.println(128==128); ...

  6. 解题:CF1130E Wrong Answer

    题面 巧妙构造题 这种题一定要限制一个条件,使得在这个条件下能推出要叉的代码的式子 令序列$a$的第一个元素为负,其余元素为正,且保证序列中至少有两个元素,那么Alice的代码将会从第二个元素开始计算 ...

  7. 数位dp——奏响数字数位的美妙乐章

    数位dp:处理数字数位关系的一种dp方式. 一般的题目特征十分明显: 1.一般和数字本身有很大关系. 2.一般求数字在区间L,R中的一些信息 3.L,R一般很大,通常能达到long long级别. d ...

  8. RabbitMQ的生产者和消费者

    低级错误:启动程序的时候报错:socket close: 原因在配置文件中写的端口是:15672,应该是5672: client端通信口5672管理口15672server间内部通信口25672erl ...

  9. CentOS 6.8下安装python的redis支持库

    方法很简单,SSH登录下输入: pip install redis 或者 easy_install redis 如果上面的方法不行的话,就要尝试编译安装了 wget https://pypi.pyth ...

  10. Hadoop生态圈-Kafka配置文件详解

    Hadoop生态圈-Kafka配置文件详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.默认kafka配置文件内容([yinzhengjie@s101 ~]$ more /s ...