2018 HDU多校第四场赛后补题

自己学校出的毒瘤场。。吃枣药丸
hdu中的题号是6332 ~ 6343。

K. Expression in Memories

题意:

判断一个简化版的算术表达式是否合法。

题解:

注意细节即可。

代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n; char s[505];
  4. int main () {
  5. int T; cin>>T;
  6. for ( ; T; --T) {
  7. scanf("%s",s+1),n=strlen(s+1),s[0]='+';
  8. if (s[1]=='?') s[1]='9';
  9. bool ok=1;
  10. for (int i=2; i<=n; ++i) {
  11. if (s[i]=='+'||s[i]=='*') {
  12. if (s[i-1]=='+'||s[i-1]=='*') {ok=0; break;}
  13. } else
  14. if (s[i]>='0'&&s[i]<='9') {
  15. if (s[i-1]=='0'&&(s[i-2]=='+'||s[i-2]=='*')) {ok=0; break;}
  16. } else
  17. if (s[i]=='?') {
  18. if (s[i-1]=='+'||s[i-1]=='*') s[i]='9'; else
  19. if (s[i-1]=='0') {
  20. if (s[i-2]=='+'||s[i-2]=='*') s[i]='+';
  21. else s[i]='9';
  22. } else
  23. if (s[i-1]>='1'&&s[i-1]<='9') s[i]='9';
  24. }
  25. }
  26. if (s[n]=='+'||s[n]=='*'||s[1]=='+'||s[1]=='*') ok=0;
  27. if (n>=2) {
  28. if (s[1]=='0'&&s[2]>='0'&&s[2]<='9') ok=0;
  29. }
  30. if (!ok) puts("IMPOSSIBLE");
  31. else {
  32. for (int i=1; i<=n; ++i) printf("%c",s[i]);
  33. puts("");
  34. }
  35. }
  36. return 0;
  37. }

L. Graph Theory Homework

题意:

给你一张每个点有点权的完全图。从点\(i\)走到点\(j\) \((i≠j)\)的代价为 \(\lfloor \sqrt {|wi-wj|} \rfloor\)
球从\(1\)走到\(n\)的最小代价。

题解:

一个不等式: \(\lfloor \sqrt {a} \rfloor + \lfloor \sqrt {b} \rfloor \geq \lfloor \sqrt {a+b} \rfloor\)
则,从\(1\)不经过任何点直接到\(n\)是最优的。

代码:

  1. #include <bits/stdc++.h>
  2. #define N 100010
  3. using namespace std;
  4. int w[N],w2[N];
  5. int main () {
  6. int T,n;
  7. scanf("%d",&T);
  8. while (T--) {
  9. scanf("%d",&n);
  10. for(int i=1; i<=n; ++i) scanf("%d",&w[i]);
  11. printf("%d\n",(int)sqrt(abs(w[n]-w[1])));
  12. }
  13. return 0;
  14. }

D. Nothing is Impossible

题意:

没有题意,至今还不知道最终的题意。

题解:

没有题解,只需要大胆猜想,无需证明,取最小的几个\(bi\)使得\(\prod {(bi + 1)} \leq m\)就行了。能取到的最多个数就是答案。

代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int b[105];
  4. int main()
  5. {
  6. int T, n, m, x;
  7. scanf("%d", &T);
  8. while (T--)
  9. {
  10. scanf("%d%d", &n, &m);
  11. int ans = n; long long now = 1;
  12. for (int i = 1; i <= n; i++) scanf("%d%d", &x, &b[i]);
  13. sort(b + 1, b + 1 + n);
  14. for (int i = 1; i <= n; ++i) {
  15. if (now * (b[i] + 1) > m) {ans = i - 1; break;}
  16. now *= (b[i] + 1);
  17. }
  18. printf("%d\n", ans);
  19. }
  20. return 0;
  21. }

E. Matrix from Arrays

题意:

给你一个\(L\)个元素的数组\(A\),根据题意构造一个无限矩阵,并进行q次询问,询问一个有限矩阵内的元素和。

题解:

容易发现,构造出来的无限矩阵是一个循环矩阵。当\(L\)是奇数时,矩阵每\(LL\)个元素循环;当\({L}*{L}\)是偶数时,矩阵每\({2L}*{2L}\)个元素循环。
这样我们就可以预处理处一个很小(边长\(80\)以内)的矩阵,然后做一下前缀和。
最后询问的时候留给我们解决的也不多了。

代码:

  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4. int L, Q; ll A[20], M[90][90], s1[90], s2[90], sum;
  5. ll calc (int x, int y, ll ret = 0) {
  6. ll k1 = (x + 1) / (2 * L), k2 = (y + 1) / (2 * L);
  7. ll o1 = (x + 1) % (2 * L), o2 = (y + 1) % (2 * L);
  8. ret += sum * k1 * k2;
  9. if (o1) ret += s1[o1 - 1] * k2;
  10. if (o2) ret += s2[o2 - 1] * k1;
  11. for (int i = 0; i < o1; ++i) {
  12. for (int j = 0; j < o2; ++j) ret += M[i][j];
  13. }
  14. return ret;
  15. }
  16. int main () {
  17. int T; cin >> T;
  18. for ( ; T; --T) {
  19. cin >> L;
  20. for (int i = 0; i < L; ++i) cin >> A[i];
  21. int cursor = 0;
  22. for (int i = 0; i < 4 * L; ++i) {
  23. for (int j = 0; j <= i; ++j) {
  24. M[j][i - j] = A[cursor];
  25. cursor = (cursor + 1) % L;
  26. }
  27. }
  28. sum = 0;
  29. for (int i = 0; i < 2 * L; ++i) {
  30. for (int j = 0; j < 2 * L; ++j) sum += M[i][j];
  31. }
  32. memset(s1, 0, sizeof s1);
  33. memset(s2, 0, sizeof s2);
  34. for (int i = 0; i < 2 * L; ++i) {
  35. for (int j = 0; j < 2 * L; ++j) s1[i] += M[i][j];
  36. if (i) s1[i] += s1[i - 1];
  37. }
  38. for (int j = 0; j < 2 * L; ++j) {
  39. for (int i = 0; i < 2 * L; ++i) s2[j] += M[i][j];
  40. if (j) s2[j] += s2[j - 1];
  41. }
  42. cin >> Q;
  43. for ( ; Q; --Q) {
  44. int l, u, r, d;
  45. scanf("%d%d%d%d", &l, &u, &r, &d);
  46. printf("%lld\n", calc(r, d) - calc(r, u - 1) - calc(l - 1, d) + calc(l - 1, u - 1));
  47. }
  48. }
  49. return 0;
  50. }

J. Let Sudoku Rotate

题意:

有一个合法的\(4\)阶数独,某人随机把几个“宫”分别逆时针翻转了几次,先给出现在的数独,问那个人总共最少转了几次。

题解:

如果你够大胆,就去爆搜吧;如果你不够大胆,就去\(dlx\)吧!反正都能过,可能是因为合法情况太少的缘故

代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N = 17, M = 5;
  4. int n, m, ans, a[N][N], tmp[M][M]; char s[N];
  5. int R[N][N], C[N][N];
  6. void rotating_lalala (int r, int c) {
  7. int _u = r * m, _d = _u + m, _l = c * m, _r = _l + m;
  8. for (int i = _u; i < _d; ++i)
  9. for (int j = _l; j < _r; ++j) tmp[j - _l][m - (i - _u) - 1] = a[i][j];
  10. for (int i = _u; i < _d; ++i)
  11. for (int j = _l; j < _r; ++j) a[i][j] = tmp[i - _u][j - _l];
  12. }
  13. bool exam (int r, int c) {
  14. for (int i = 0; i < m; ++i) {
  15. for (int j = 0; j < m; ++j) {
  16. int x = r * m + i, y = c * m + j;
  17. if (R[x][a[x][y]]) return 0;
  18. if (C[y][a[x][y]]) return 0;
  19. }
  20. }
  21. return 1;
  22. }
  23. void fig (int r, int c, int d) {
  24. for (int i = 0; i < m; ++i) {
  25. for (int j = 0; j < m; ++j) {
  26. int x = r * m + i, y = c * m + j;
  27. R[x][a[x][y]] += d, C[y][a[x][y]] += d;
  28. }
  29. }
  30. }
  31. void dfs (int r, int c, int cnt) {
  32. if (cnt >= ans) return;
  33. if (c == m) c = 0, ++r;
  34. if (r == m && c == 0) {ans = cnt; return;}
  35. if (exam(r, c)) fig(r, c, 1), dfs(r, c + 1, cnt + 0), fig(r, c, -1);
  36. rotating_lalala(r, c);
  37. if (exam(r, c)) fig(r, c, 1), dfs(r, c + 1, cnt + 1), fig(r, c, -1);
  38. rotating_lalala(r, c);
  39. if (exam(r, c)) fig(r, c, 1), dfs(r, c + 1, cnt + 2), fig(r, c, -1);
  40. rotating_lalala(r, c);
  41. if (exam(r, c)) fig(r, c, 1), dfs(r, c + 1, cnt + 3), fig(r, c, -1);
  42. rotating_lalala(r, c);
  43. }
  44. int main () {
  45. int T; cin >> T; m = 4, n = 16;
  46. for ( ; T; --T) {
  47. for (int i = 0; i < n; ++i) {
  48. scanf("%s", s);
  49. for (int j = 0; j < n; ++j) {
  50. if (s[j] >= '0' && s[j] <= '9') a[i][j] = s[j] - '0';
  51. else a[i][j] = s[j] - 'A' + 10;
  52. }
  53. }
  54. ans = 64;
  55. memset(R, 0, sizeof R), memset(C, 0, sizeof C);
  56. dfs(0, 0, 0);
  57. cout << ans << endl;
  58. }
  59. return 0;
  60. }

B. Harvest of Apples

题意:

求\(\sum_{i=0}^{m} {C_{n}^{i}}\),\(n,m\)都是\(1e5\)范围,还有\(1e5\)组询问。

题解:

早就见识过这个东西的厉害。但一起一直不知道怎么做。也不知道有没有柿子。然后就去\(OEIS\)了一发,结果什么都没有。。OEIS大法失灵了 还是我等蒟蒻不会用。
考场上想过离线,也想过\(n\)和\(n-1\),\(m\)和\(m-1\)的关系,但是就没有想到莫队。
首先,设\(S(n, m) = \sum_{i=0}^{m} {C_{n}^{i}}\),利用杨辉三角那个公式,我们有柿子:
\(S(n, m) = S(n, m - 1) + C_{n}^{m}\)
\(S(n, m) = 2 * S(n - 1, m) - C_{n-1}^{m}\)
这样我们发现,等式两边给出的两对关系,让我们真的可以愉快地搞莫队了。
而且很好码,双倍的快乐嘻嘻嘻
转移复杂度是\(O(1)\)的。

代码:

  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4. const int N = 100005, mo = 1e9 + 7, inv2 = 500000004;
  5. int n, siz, l, r; ll ret, fac[N], inv[N], ans[N];
  6. struct que {
  7. int l, r, i;
  8. bool operator < (const que &o) const {
  9. return (r - 1) / siz == (o.r - 1) / siz ? l < o.l : r < o.r;
  10. }
  11. } a[N];
  12. ll ksm (ll b, ll p) {
  13. if (p < 2) return p ? b : 1;
  14. ll t = ksm(b, p >> 1); t = t * t % mo;
  15. return p & 1 ? t * b % mo : t;
  16. }
  17. ll C (int n, int r) {
  18. if (r < 0 || n < r) return 0;
  19. return fac[n] * inv[r] % mo * inv[n - r] % mo;
  20. }
  21. void ppw () {
  22. fac[0] = 1;
  23. for (int i = 1; i < N; ++i) fac[i] = fac[i - 1] * i % mo;
  24. inv[N - 1] = ksm(fac[N - 1], mo - 2);
  25. for (int i = N - 2; ~i; --i) inv[i] = inv[i + 1] * (i + 1) % mo;
  26. }
  27. void add (int x, bool o) {
  28. if (!o) ret -= C(r, l + 1);
  29. else ret = ret * 2 - C(r - 1, l);
  30. ret = (ret + mo) % mo;
  31. }
  32. void rem (int x, bool o) {
  33. if (!o) ret += C(r, l + 1);
  34. else ret = (ret + C(r - 1, l)) * inv2;
  35. ret = ret % mo;
  36. }
  37. int main () {
  38. cin >> n, siz = sqrt(n + 0.5), ppw();
  39. for (int i = 1; i <= n; ++i) {
  40. scanf("%d%d", &a[i].r, &a[i].l);
  41. a[i].i = i;
  42. }
  43. sort(a + 1, a + 1 + n);
  44. ret = 0;
  45. for (int i = 0; i <= a[1].l; ++i) {
  46. ret = (ret + C(a[1].r, i)) % mo;
  47. }
  48. ans[a[1].i] = ret;
  49. l = a[1].l, r = a[1].r;
  50. for (int i = 2; i <= n; ++i) {
  51. for ( ; l > a[i].l; ) --l, add(l, 0);
  52. for ( ; r < a[i].r; ) ++r, add(r, 1);
  53. for ( ; l < a[i].l; ) rem(l, 0), ++l;
  54. for ( ; r > a[i].r; ) rem(r, 1), --r;
  55. ans[a[i].i] = ret;
  56. }
  57. for (int i = 1; i <= n; ++i) printf("%lld\n", ans[i]);
  58. return 0;
  59. }

G. Depth-First Search

题意:

给出一棵\(n\)个节点的无根树和一个长度为\(n\)的排列\(B\)。问有多少种dfs序在字典序上小于这个排列。

题解:

运用题解里提到的“逐位确定”的思想。
首先,我们要知道,根的编号小于\(B[1]\)的方案数有多少种。
不妨假设从\(r\)开始\((r<B[1])\),那么可以树形dp出总方案数。
表达式为\(ans[r] = \prod (cntchild[i])! = deg[r] * \prod_{i \neq r} \ (deg[i]-1)!\)。
那么,根节点比\(B[1]\)小的总答案为\(ans1 = (\prod_{i<B[1]} deg[i]!) * (\prod_{i \geq B[1]} \ (deg[i]-1)!)\)。
那如何统计以\(B[1]\)为根的序列方案呢?
Notice,逐位确定。
首先不妨先将每个点的子节点排个序。
然后假设现在处于节点\(x\),并假设\(x\)的所有祖先(包括自己)恰好组成了\(B\)的某个前缀,设是\(B[i]\)。
设达成这种状态的方案数为\(pp\)(这个信息可以从父节点传下来)。(其实这里说的状态是根据匹配的前缀长度来划分的,若有两个合法序列\(A1\),\(A2\),设\(A1\)和\(B\)的最长公共前缀为\(l1\),\(A2\)和\(B\)的最长公共前缀为\(l2\),\(l1=l2\),则它们属于同种状态,否则算不同种)
那么,如果\(B[i+1]\)是\(x\)的某个子节点,显然,我们可以确定比\(B[i+1]\)小的\(x\)的子节点数\(cnt\),剩余的\(x\)的子点数\(res\)。那对于此种状态,合法的序列数又增加了
\[delta = cnt * (res)! * \prod_{son[x,j] \neq B[i+1]} f[son[x,j]] * pp \]
其中\(f[k]\)表示在以\(k\)为根的子树中有多少种序列(任意),可以预处理出来。
需要注意,也许把一个子树搜完了,整棵树并没有被搜完。所以还要关注其他子树(即搜索下一个等于\(B[nxt]\)的子节点,直到不可能找到这种子节点为止,此时贡献已计算完毕,退出即可)。这样转化成了相同的问题。但是如果dfs了一个子树(同时贡献也计算完了),就要把这棵子树的贡献删掉。快速搜索和删除贡献要用高效的数据结构维护,比如树状数组。注意,删除贡献这一步非常重要,需要仔细考虑。
最后注意程序一定要高效。这个题常数好像挺大的。本地还会爆栈。

代码:

  1. #pragma GCC optimize(2)
  2. #include <bits/stdc++.h>
  3. #define ll long long
  4. using namespace std;
  5. const int N = 1000005, mo = 1e9 + 7;
  6. int n, A[N], siz[N];
  7. int tot, lnk[N], nxt[N << 1], son[N << 1];
  8. ll ans, tmp, fac[N], inv[N], f[N];
  9. vector <int> g[N];
  10. void add (int x, int y) {
  11. nxt[++tot] = lnk[x], lnk[x] = tot, son[tot] = y;
  12. }
  13. ll ksm (ll b, ll p) {
  14. if (p < 2) return p ? b : 1;
  15. ll t = ksm(b, p >> 1); t = t * t % mo;
  16. return p & 1 ? t * b % mo : t;
  17. }
  18. void pre (int x, int p) {
  19. siz[x] = 1, f[x] = 1;
  20. for (int j = lnk[x]; j; j = nxt[j]) {
  21. if (son[j] == p) continue;
  22. g[x].push_back(son[j]);
  23. pre(son[j], x);
  24. siz[x] += siz[son[j]];
  25. f[x] = f[x] * f[son[j]] % mo;
  26. }
  27. f[x] = f[x] * fac[g[x].size()] % mo;
  28. }
  29. struct bit {
  30. int siz; vector <int> c;
  31. void init (int x) {siz = x, c.clear(), c.resize(x + 1);}
  32. void add (int x) {for ( ; x <= siz; x += x & (-x)) ++c[x];}
  33. void remove (int x) {for ( ; x <= siz; x += x & (-x)) --c[x];}
  34. int count (int x, int ret = 0) {for ( ; x > 0; x -= x & (-x)) ret += c[x]; return ret;}
  35. } bt[N];
  36. int sear (int x, int v) {
  37. int ret = 0;
  38. for (int i = 19; ~i; --i) {
  39. if (ret + (1 << i) - 1 >= g[x].size()) continue;
  40. if (g[x][ret + (1 << i) - 1] < v) ret += 1 << i;
  41. }
  42. return ret - 1;
  43. }
  44. bool dfs (int x, int no, ll pp) {
  45. int num = no, cnt = g[x].size(); ll prod = 1;
  46. for (int i = 0; i < cnt; ++i) {
  47. prod = prod * f[g[x][i]] % mo;
  48. bt[x].add(i + 1);
  49. }
  50. for (int i = 0, suit, y; i < cnt; ++i) {
  51. suit = sear(x, A[num + 1]);
  52. ans += pp * prod % mo * fac[cnt - 1 - i] % mo * bt[x].count(suit + 1);
  53. ans %= mo;
  54. ++suit; if (suit >= cnt) return 0;
  55. y = g[x][suit];
  56. if (y != A[num + 1]) return 0;
  57. bt[x].remove(suit + 1);
  58. prod = prod * ksm(f[y], mo - 2) % mo;
  59. if (!dfs(y, num + 1, pp * prod % mo * fac[cnt - 1 - i] % mo)) return 0;
  60. else num += siz[y];
  61. }
  62. return 1;
  63. }
  64. void ppw () {
  65. fac[0] = 1;
  66. for (int i = 1; i < N; ++i) fac[i] = fac[i - 1] * i % mo;
  67. inv[N - 1] = ksm(fac[N - 1], mo - 2);
  68. for (int i = N - 2; ~i; --i) inv[i] = inv[i + 1] * (i + 1) % mo;
  69. }
  70. int main () {
  71. ppw();
  72. int T; cin >> T;
  73. for ( ; T; --T) {
  74. scanf("%d", &n), tot = 0;
  75. for (int i = 1; i <= n; ++i) {
  76. scanf("%d", &A[i]);
  77. siz[i] = f[i] = lnk[i] = 0;
  78. g[i].clear();
  79. g[i].resize(0);
  80. }
  81. for (int i = 1; i <= n * 2; ++i) nxt[i] = 0;
  82. for (int i = 1, x, y; i < n; ++i) {
  83. scanf("%d%d", &x, &y);
  84. add(x, y), add(y, x);
  85. }
  86. ans = 0, tmp = 1;
  87. pre(A[1], 0);
  88. for (int i = 1; i <= n; ++i) {
  89. if (i == A[1]) tmp = tmp * fac[g[i].size() - 1] % mo;
  90. else tmp = tmp * fac[g[i].size()] % mo;
  91. }
  92. for (int i = 1; i < A[1]; ++i) ans = (ans + tmp * (g[i].size() + 1)) % mo;
  93. for (int i = 1; i <= n; ++i) {
  94. sort(g[A[i]].begin(), g[A[i]].end());
  95. bt[A[i]].init(g[A[i]].size());
  96. }
  97. dfs(A[1], 1, 1);
  98. printf("%lld\n", ans);
  99. }
  100. return 0;
  101. }

毒瘤题,补不动!。。

2018 HDU多校第四场赛后补题的更多相关文章

  1. 2018 HDU多校第三场赛后补题

    2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...

  2. 【春训团队赛第四场】补题 | MST上倍增 | LCA | DAG上最长路 | 思维 | 素数筛 | 找规律 | 计几 | 背包 | 并查集

    春训团队赛第四场 ID A B C D E F G H I J K L M AC O O O O O O O O O 补题 ? ? O O 传送门 题目链接(CF Gym102021) 题解链接(pd ...

  3. Problem E. Matrix from Arrays(杭电2018年多校第四场+思维+打表找循环节)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6336 题目: 题意:给你一个l个元素的数组a,用题目中的程序构造一个新的矩阵,询问q次,问以(x1,y ...

  4. hdu多校第四场 1003 (hdu6616) Divide the Stones 机智题

    题意: 给你重量分别为1到n的n个石头,让你分成重量相等,数量也相等的k组,保证k是n的约数.问你能不能分配,如果能,输出具体的分配方案. 题解: 首先,如果1到n之和不能整除k,那么一定不能如题意分 ...

  5. Harvest of Apples (HDU多校第四场 B) (HDU 6333 ) 莫队 + 组合数 + 逆元

    题意大致是有n个苹果,问你最多拿走m个苹果有多少种拿法.题目非常简单,就是求C(n,0)+...+C(n,m)的组合数的和,但是询问足足有1e5个,然后n,m都是1e5的范围,直接暴力的话肯定时间炸到 ...

  6. 2018年多校第四场第二题 B. Harvest of Apples hdu6333

    题意:给定10^5以内的n,m求∑组合数(n,i),共10^5组数据. 题解: 定义 S(n, m) = \sum_{i = 0} ^ {m} {n \choose i}S(n,m)=∑​i=0​m​ ...

  7. HDU 多校第四场题解

    对于 D 题的原题意,出题人和验题人赛前都没有发现标算存在的问题,导致了许多选手的疑惑和时间的浪费,在此表示真诚的歉意! 预计难度分布: Easy - DJKL, Medium - ABCEG, Ha ...

  8. hdu多校第四场 1007 (hdu6620) Just an Old Puzzle 逆序对

    题意: 给你一个数字拼图,问你数字拼图能否能复原成原来的样子. 题解: 数字拼图的性质是,逆序数奇偶相同时,可以互相转化,逆序数奇偶不同,不能互相转化. 因此统计逆序对即可. #include< ...

  9. hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到

    题意: 一个完全图,某两点边权为这两点编号之按位与,求最小生成树,输出字典序最小的. 题解: 如果点数不为$2^n-1$,则每一点均可找到一点,两点之间边权为0,只需找到该点二进制下其最左边的0是第几 ...

随机推荐

  1. localStorage,sessionStorage和cookie的区别

    sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务器间不必 ...

  2. 7个优秀的国内外移动端web框架(转)

    淘宝SUI Mobile框架   (light7框架 官网:http://www.light7.cn/)官网地址:http://m.sui.taobao.org/ SUI Mobile 是一套基于 F ...

  3. Git仓库完全迁移,包括所有的分支和标签,当然也包括日志

    一.删除原有远程仓库地址 git remote rm origin 添加新的仓库地址 cd existing_repo git remote add origin <URL> git pu ...

  4. redis(一主两从三哨兵模式搭建)记录

    转自:http://www.cnblogs.com/fly-piglet/p/9836314.html 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也 ...

  5. javascript----数组的方法

    1---join() //1----->join()方法将数组中所有元素都转化<<字符串>> //并连接在一起 //array.join()方法是string.split ...

  6. 针对多条件查询,应对 url 无用 null 值现象处理

    多条件查询 应对 url 无用 null 值现象 处理例如:http://xxoo.b2b.com/orders?city_id=5&repertory_id=7&area_id=39 ...

  7. appium+python3+pycharm踩得坑2

    没相当刚把上一个错误解决,这个马上就解决了: selenium.common.exceptions.WebDriverException: Message: A new session could n ...

  8. electron 打包流程 electron-packager + NSIS

    1.安装 electron-packager 2.electron-packager 应用目录 应用名称 打包平台  左上角的图标和任务栏的图标  输出目录 架构 版本     win打包:  ele ...

  9. element-ui 解决 table 里包含表单验证的问题!

    实际项目中的场景,需要在table里做表单的验证,如图效果: 其实问题关键就在于如何给el-form-item动态绑定prop :prop="'tableData.' + scope.$in ...

  10. pycharm 序列号/行号 的宽度太宽了如何调整

    问题:行号宽度嫌宽: 解决:在settings里面,如下图顺序,取消“show gutter icons”的勾,即可. 调整后如下图: