[Codeforces] number theory (R1600) Part.7

2023-11-11

[Codeforces] number theory (R1600) Part.7

题单:https://codeforces.com/problemset/page/1?tags=number+theory%2C1201-1600

1113B. Sasha and Magnetic Machines

原题指路:https://codeforces.com/problemset/problem/1113/B

题意

给定一个长度为 n    ( 2 ≤ n ≤ 5 e 4 ) n\ \ (2\leq n\leq 5\mathrm{e}4) n  (2n5e4)的序列 a 1 , ⋯   , a n    ( 1 ≤ a i ≤ 100 ) a_1,\cdots,a_n\ \ (1\leq a_i\leq 100) a1,,an  (1ai100).现有操作:选择一对 a i a_i ai a j a_j aj,选择 a i a_i ai的一个约数 x x x,令 a i / = x , a j ∗ = x a_i/=x,a_j*=x ai/=x,aj=x.问经过至多一次操作后得到的序列的元素之和的最小值.

思路

为使得序列元素之和最小,约数 x x x应乘在序列的最小元素上.因至多进行一次操作,枚举每个 a i a_i ai进行操作即可.

代码

void solve() {
  int n; cin >> n;
  vi a(n);
  for (auto& ai : a) cin >> ai;

  int minnum = *min_element(all(a));
  int sum = accumulate(all(a), 0);
  int ans = sum;

  for (auto ai : a) {
    for (int d = 1; d <= ai; d++) {
      if (ai % d == 0) {
        int res = sum - minnum - ai;
        res += minnum * d + ai / d;
        ans = min(ans, res);
      }
    }
  }
  cout << ans;
}

int main() {
  solve();
}


1133D. Zero Quantity Maximization

原题指路:https://codeforces.com/problemset/problem/1133/D

题意 ( 2   s 2\ \mathrm{s} 2 s)

给定两长度为 n    ( 1 ≤ n ≤ 2 e 5 ) n\ \ (1\leq n\leq 2\mathrm{e}5) n  (1n2e5)的序列 a 1 , ⋯   , a n a_1,\cdots,a_n a1,,an b 1 , ⋯   , b n    ( − 1 e 9 ≤ a i , b i ≤ 1 e 9 ) b_1,\cdots,b_n\ \ (-1\mathrm{e}9\leq a_i,b_i\leq 1\mathrm{e}9) b1,,bn  (1e9ai,bi1e9).现按如下方式构造一个长度为 n n n的序列 c [ ] c[] c[]:选定一个实数 d d d,令 c i = d ⋅ a i + b i    ( 1 ≤ i ≤ n ) c_i=d\cdot a_i+b_i\ \ (1\leq i\leq n) ci=dai+bi  (1in).求 c [ ] c[] c[] 0 0 0的个数的最大值.

思路

①若 a i = 0 a_i=0 ai=0,则 d d d的选择对答案无影响,只需检查 b i b_i bi是否为 0 0 0即可.

②若 a i ≠ 0 a_i\neq 0 ai=0,应取 d = − b i a i d=-\dfrac{b_i}{a_i} d=aibi.将分数化为最简分数后,记录其出现的次数,最后 d d d取出现次数最多的分数即可.

代码

map<pii, int> cnt;

void norm(pii& x) {
  if (!x.first) {
    x.first = 0, x.second = 1;
    return;
  }

  if (x.first / abs(x.first) * x.second / abs(x.second) < 0)
    x.first = -abs(x.first), x.second = abs(x.second);
  else x.first = abs(x.first), x.second = abs(x.second);

  int g = abs(gcd(x.first, x.second));
  x.first /= g, x.second /= g;
}

void solve() {
  int n; cin >> n;
  vi a(n), b(n);
  for (auto& ai : a) cin >> ai;
  for (auto& bi : b) cin >> bi;

  int cnt0 = 0;  // 0的个数
  int ans = 0;
  for (int i = 0; i < n; i++) {
    if (a[i] == 0) cnt0 += !b[i];
    else{
      pii d = { -b[i],a[i] };
      norm(d);
      ans = max(ans, ++cnt[d]);
    }
  }
  cout << cnt0 + ans;
}

int main() {
  solve();
}


1155C. Alarm Clocks Everywhere

原题指路:https://codeforces.com/problemset/problem/1155/C

题意 ( 3   s 3\ \mathrm{s} 3 s)

给定一长度为 n    ( 2 ≤ n ≤ 3 e 5 ) n\ \ (2\leq n\leq 3\mathrm{e}5) n  (2n3e5)的序列 x 1 , ⋯   , x n    ( 1 ≤ x i ≤ 1 e 18 ) x_1,\cdots,x_n\ \ (1\leq x_i\leq 1\mathrm{e}18) x1,,xn  (1xi1e18)和一长度为 m    ( 1 ≤ m ≤ 3 e 5 ) m\ \ (1\leq m\leq 3\mathrm{e}5) m  (1m3e5)的序列 p 1 , ⋯   , p m    ( 1 ≤ p i ≤ 1 e 18 ) p_1,\cdots,p_m\ \ (1\leq p_i\leq 1\mathrm{e}18) p1,,pm  (1pi1e18).构造一个等差数列,使得其首项 y ∈ Z y\in\mathbb{Z} yZ,公差 ∈ p [ ] \in p[] p[],且 x [ ] x[] x[]中的所有数都是等差数列中的项.若有解,第一行输出"YES",第二行输出任一组首项和公差的下标;否则输出"NO".

思路

显然可取 y = x i y=x_i y=xi.考察 x [ ] x[] x[]的差分序列 d i f f [ ] diff[] diff[],则公差 p p p需为所有 d i f f i diff_i diffi的约数.

代码

void solve() {
  int n, m; cin >> n >> m;
  vl x(n), p(m);
  for (auto& xi : x) cin >> xi;
  for (auto& pi : p) cin >> pi;

  ll g = x[1] - x[0];  // 序列x[]的差分序列的gcd
  for (int i = 2; i < n; i++) g = gcd(g, x[i] - x[i - 1]);

  for (int i = 0; i < m; i++) {
    if (g % p[i] == 0) {
      cout << "YES" << endl;
      cout << x[0] << ' ' << i + 1;
      return;
    }
  }
  cout << "NO";
}

int main() {
  solve();
}


1165D. Almost All Divisors

原题指路:https://codeforces.com/problemset/problem/1165/D

题意 ( 2   s ) (2\ \mathrm{s}) (2 s)

t    ( 1 ≤ t ≤ 25 ) t\ \ (1\leq t\leq 25) t  (1t25)组测试数据.每组测试数据给定一个长度为 n n n的序列 d 1 , ⋯   , d n    ( 2 ≤ d i ≤ 1 e 6 ) d_1,\cdots,d_n\ \ (2\leq d_i\leq 1\mathrm{e}6) d1,,dn  (2di1e6),表示某数 x x x的所有非平凡约数,其中 d i d_i di两两相异.若存在这样的数 x x x,输出 x x x;否则输出 − 1 -1 1.

思路

对数 x x x,若存在约数 d d d,则也存在约数 n d \dfrac{n}{d} dn,则 d [ ] d[] d[]中最小元素与最大元素之积即 x x x.因 x x x的约数一定,则原序列 d [ ] d[] d[] x x x的非平凡约数序列的某个排列,将它们排序后判断是否相等即可.

代码

void solve() {
  int n; cin >> n;
  vl d(n);
  for (auto& di : d) cin >> di;

  sort(all(d));
  ll x = (ll)d[0] * d[n - 1];

  vl divisors;
  for (int d = 2; (ll)d * d <= x; d++) {
    if (x % d == 0) {
      divisors.push_back(d);
      if (d != x / d) divisors.push_back(x / d);
    }
  }
  sort(all(divisors));
  cout << (d == divisors ? x : -1) << endl;
}

int main() {
  CaseT  // 单测时注释掉该行
    solve();
}


1174C. Ehab and a Special Coloring Problem

原题指路:https://codeforces.com/problemset/problem/1174/C

题意

给定一个整数 n    ( 2 ≤ n ≤ 1 e 5 ) n\ \ (2\leq n\leq 1\mathrm{e}5) n  (2n1e5).构造一个序列$a_2,\cdots,a_n\ \ (1\leq a_i\leq n)\ s.t.\ 对 对 \forall i\in[2,n] , 若 ,若 ,\gcd(i,j)=1 , 则 ,则 ,a_i\neq a_j , 且 ,且 ,a[]$的最大值最小.

思路

显然可让每个数与其最小素因子取值相等,且每个素因子下标的 a [ i ] a[i] a[i]应取尽量小的不相等的数.类似于筛法的过程染色即可.

代码

const int MAXN = 1e5 + 5;
int ans[MAXN], idx;

void solve() {
  int n; cin >> n;

  for (int i = 2; i <= n; i++) {
    if (!ans[i]) {
      ans[i] = ++idx;
      for (int j = 2 * i; j <= n; j += i) ans[j] = ans[i];
    }
    cout << ans[i] << ' ';
  }
}

int main() {
  solve();
}


1178D. Prime Graph

原题指路:https://codeforces.com/problemset/problem/1178/D

题意

给定一个整数 n n n,构造一个包含 n n n个节点的简单无向图(无重边无自环),要求边数为素数,每个节点的度数也为素数.

如下图,图 1 1 1和图 3 3 3 n = 4 n=4 n=4时的合法解,而图 2 2 2不是.

在这里插入图片描述

第一行输入一个整数 n    ( 3 ≤ n ≤ 1000 ) n\ \ (3\leq n\leq 1000) n  (3n1000).

若无解,则输出 − 1 -1 1;否则第一行输出一个素数 m    ( 2 ≤ m ≤ n ( n − 1 ) 2 ) m\ \ \left(2\leq m\leq \dfrac{n(n-1)}{2}\right) m  (2m2n(n1)),表示边数.接下来 m m m行每行输出两个整数 u , v    ( 1 ≤ u , v ≤ n ) u,v\ \ (1\leq u,v\leq n) u,v  (1u,vn),表示节点 u u u v v v间存在无向边.若有多组解,输出任一组.

思路

一定有解,下面给出构造:

n = 3 n=3 n=3时,三角形是唯一解.

n ≥ 4 n\geq 4 n4时,先构造一个环 1 ↔ 2 ↔ ⋯ ↔ n ↔ 1 1\leftrightarrow 2\leftrightarrow \cdots\leftrightarrow n\leftrightarrow 1 12n1,此时每个节点的度数都为 2 2 2,但边数 n n n可能非素数.

​ 若此时 n n n非素数,设 n n n的下一个素数为 m m m,则只需对任意 i ∈ [ 1 , m − n ] i\in[1,m-n] i[1,mn],加一条边 i ↔ ( i + n 2 ) i\leftrightarrow \left(i+\dfrac{n}{2}\right) i(i+2n).

代码

bool check(int n) {  // 判断素数
  for (int i = 2; i * i <= n; i++) 
    if (n % i == 0) return false;
  return true;
}

void solve() {
  int n; cin >> n;

  int m = n;
  while (!check(m)) m++;

  cout << m << endl;
  for (int i = 1; i < n; i++) cout << i << ' ' << i + 1 << endl;
  cout << "1 " << n << endl;

  for (int i = 1; i <= m - n; i++) cout << i << ' ' << i + n / 2 << endl;
}

int main() {
  solve();
}


1195D1. Submarine in the Rybinsk Sea (easy edition)

原题指路:https://codeforces.com/problemset/problem/1195/D1

题意 ( 2   s 2\ \mathrm{s} 2 s)

给定两个整数的十进制表示(无前导零) a 1 , ⋯   , a p a_1,\cdots,a_p a1,,ap b 1 , ⋯   , b q b_1,\cdots,b_q b1,,bq.定义函数 f ( a 1 , ⋯   , a p , b 1 , ⋯   , b q ) = { a 1 a 2 ⋯ a p − q + 1 b 1 a p − q + 2 b 2 ⋯ a p − 1 b q − 1 a p b q , p ≥ q b 1 b 2 ⋯ b q − p a 1 b q − p + 1 a 2 ⋯ a p − 1 b q − 1 a p b q f(a_1,\cdots,a_p,b_1,\cdots,b_q)=\begin{cases}a_1a_2\cdots a_{p-q+1} b_1 a_{p-q+2}b_2\cdots a_{p-1} b_{q-1}a_p b_q,p\geq q \\ b_1b_2 \cdots b_{q-p} a_1 b_{q-p+1}a_2\cdots a_{p-1}b_{q-1}a_p b_q\end{cases} f(a1,,ap,b1,,bq)={a1a2apq+1b1apq+2b2ap1bq1apbq,pqb1b2bqpa1bqp+1a2ap1bq1apbq.如 f ( 1111 , 2222 ) = 12121212 , f ( 7777 , 888 ) = 7787878 , f ( 111 , 2222 ) = ( 2121212 ) f(1111,2222)=12121212,f(7777,888)=7787878,f(111,2222)=(2121212) f(1111,2222)=12121212,f(7777,888)=7787878,f(111,2222)=(2121212).

给定一个长度为 n    ( 1 ≤ n ≤ 1 e 5 ) n\ \ (1\leq n\leq 1\mathrm{e}5) n  (1n1e5)的序列 a 1 , ⋯   , a n    ( 1 ≤ a i ≤ 1 e 9 ) a_1,\cdots,a_n\ \ (1\leq a_i\leq 1\mathrm{e}9) a1,,an  (1ai1e9),其中每个 a i a_i ai的十进制表示(无前导零)等长.求 ∑ i = 1 n ∑ j = 1 n f ( a i , a j ) \displaystyle \sum_{i=1}^n \sum_{j=1}^n f(a_i,a_j) i=1nj=1nf(ai,aj),答案对 998244353 998244353 998244353取模.

思路

显然有 f ( a i , a j ) f(a_i,a_j) f(ai,aj)也会有 f ( a j , a i ) f(a_j,a_i) f(aj,ai).因每个 a i a_i ai的十进制表示等长,注意到 f ( a 1 ⋯ a p , b 1 ⋯   , b p ) = a 1 b 1 a 2 b 2 ⋯ b p b p , f ( b 1 ⋯   , b p , a 1 ⋯ a p ) = b 1 a 1 b 2 a 2 ⋯ b p a p f(a_1\cdots a_p,b_1\cdots,b_p)=a_1b_1a_2b_2\cdots b_pb_p,f(b_1\cdots,b_p,a_1\cdots a_p)=b_1a_1b_2a_2\cdots b_p a_p f(a1ap,b1,bp)=a1b1a2b2bpbp,f(b1,bp,a1ap)=b1a1b2a2bpap,即 f ( a i , a j ) + f ( a j , a i ) = f ( a i , a i ) + f ( a j , a j ) f(a_i,a_j)+f(a_j,a_i)=f(a_i,a_i)+f(a_j,a_j) f(ai,aj)+f(aj,ai)=f(ai,ai)+f(aj,aj),则 ∑ i = 1 n ∑ j = 1 n f ( a i , a j ) = n ∑ i = 1 n f ( a i , a i ) \displaystyle \sum_{i=1}^n \sum_{j=1}^n f(a_i,a_j)=n\sum_{i=1}^n f(a_i,a_i) i=1nj=1nf(ai,aj)=ni=1nf(ai,ai).

代码

const int MOD = 998244353;

void solve() {
  int n; cin >> n;

  int ans = 0;
  for (int i = 0; i < n; i++) {
    string s; cin >> s;
    int len = s.length();
    int cur = 0;
    for (int i = 0; i < len; i++) {
      cur = ((ll)cur * 10 + s[i] - '0') % MOD;
      cur = ((ll)cur * 10 + s[i] - '0') % MOD;
    }
    ans = (ans + cur) % MOD;
  }

  ans = (ll)ans * n % MOD;
  cout << ans;
}

int main() {
  solve();
}


1200C. Round Corridor

原题指路:https://codeforces.com/problemset/problem/1200/C

题意

双层圆形空间分为若干个房间,内层等分为 n n n部分,相邻两部分间有墙;外层等分为 m m m部分,相邻两部分间有墙.如下图为 n = 4 , m = 6 n=4,m=6 n=4,m=6时的房间分布:

在这里插入图片描述

现有 q q q个询问,每个询问输入四个整数 s x , s y , e x , e y    ( 1 ≤ s x , e x ≤ 2 ) s_x,s_y,e_x,e_y\ \ (1\leq s_x,e_x\leq 2) sx,sy,ex,ey  (1sx,ex2),若 s x = 1 s_x=1 sx=1,则 s y ∈ [ 1 , n ] s_y\in[1,n] sy[1,n];否则 s y ∈ [ 1 , m ] s_y\in[1,m] sy[1,m], e y e_y ey的范围同理,表示询问是否能从房间 ( s x , s y ) (s_x,s_y) (sx,sy)走到 ( e x , e y ) (e_x,e_y) (ex,ey),若能则输出"YES";否则输出"NO".

第一行输入三个整数 n , m , q    ( 1 ≤ n , m ≤ 1 e 18 , 1 ≤ q ≤ 1 e 4 ) n,m,q\ \ (1\leq n,m\leq 1\mathrm{e}18,1\leq q\leq 1\mathrm{e}4) n,m,q  (1n,m1e18,1q1e4).接下来 q q q行每行输入四个整数 s x , s y , e x , e y    ( 1 ≤ s x , e x ≤ 2 ) s_x,s_y,e_x,e_y\ \ (1\leq s_x,e_x\leq 2) sx,sy,ex,ey  (1sx,ex2),若 s x = 1 s_x=1 sx=1,则 s y ∈ [ 1 , n ] s_y\in[1,n] sy[1,n];否则 s y ∈ [ 1 , m ] s_y\in[1,m] sy[1,m], e y e_y ey的范围同理,表示一个询问.

思路

墙的位置 ( 1 , 1 n ) , ( 1 , 2 n ) , ⋯   , ( 1 , n n ) , ( 2 , 1 m ) , ( 2 , 2 m ) , ⋯   , ( 2 , m m ) \left(1,\dfrac{1}{n}\right),\left(1,\dfrac{2}{n}\right),\cdots,\left(1,\dfrac{n}{n}\right),\left(2,\dfrac{1}{m}\right),\left(2,\dfrac{2}{m}\right),\cdots,\left(2,\dfrac{m}{m}\right) (1,n1),(1,n2),,(1,nn),(2,m1),(2,m2),,(2,mm).对某个分数 x x x,若同时有墙 ( 1 , x ) (1,x) (1,x) ( 2 , x ) (2,x) (2,x),则无法从房间 y < x y<x y<x到房间 z > x z>x z>x.

g = gcd ⁡ ( n , m ) g=\gcd(n,m) g=gcd(n,m),则内外层同时有墙的位置为 1 g , 2 g , ⋯   , g g \dfrac{1}{g},\dfrac{2}{g},\cdots,\dfrac{g}{g} g1,g2,,gg,这些墙将空间分为 g g g个部分,每个部分内部可互相到达,不同部分不能互相到达.

x = 1 x=1 x=1时, ( 1 , 1 ) , ( 1 , 2 ) , ⋯   , ( 1 , n g ) \left(1,1\right),\left(1,2\right),\cdots,\left(1,\dfrac{n}{g}\right) (1,1),(1,2),,(1,gn)属于第一组; ( 1 , n g + 1 ) , ( 1 , n g + 2 ) , ( 1 , 2 n g ) \left(1,\dfrac{n}{g}+1\right),\left(1,\dfrac{n}{g}+2\right),\left(1,\dfrac{2n}{g}\right) (1,gn+1),(1,gn+2),(1,g2n)属于第二组; ⋯ \cdots .

x = 2 x=2 x=2时, ( 2 , 1 ) , ( 2 , 1 ) , ⋯   , ( 2 , m g ) (2,1),(2,1),\cdots,\left(2,\dfrac{m}{g}\right) (2,1),(2,1),,(2,gm)属于第一组; ( 2 , m g + 1 ) , ( 2 , m g + 2 ) , ⋯   , ( 2 , 2 m g ) \left(2,\dfrac{m}{g}+1\right),\left(2,\dfrac{m}{g}+2\right),\cdots,\left(2,\dfrac{2m}{g}\right) (2,gm+1),(2,gm+2),,(2,g2m)属于第二组; ⋯ \cdots .

代码

void solve() {
  ll n, m; cin >> n >> m;

  ll g = gcd(n, m);
  CaseT{
    ll sx, sy, ex, ey; cin >> sx >> sy >> ex >> ey;
    sy--, ey--;

    if (sx == 1) sy /= n / g;
    else sy /= m / g;
    if (ex == 1) ey /= n / g;
    else ey /= m / g;
    cout << (sy == ey ? "YES" : "NO") << endl;
  }
}

int main() {
  solve();
}


1209B. Koala and Lights

原题指路:https://codeforces.com/problemset/problem/1209/B

题意

编号 1 ∼ n 1\sim n 1n n n n盏灯排成一排,每盏灯有打开和关闭两种状态,其中 i i i号灯有两个参数 a i , b i a_i,b_i ai,bi,表示它会在 b i , b i + a i , b i + 2 a i , ⋯ b_i,b_i+a_i,b_i+2a_i,\cdots bi,bi+ai,bi+2ai,时刻反转状态.经过充分长的时间,求每个时刻打开的灯的数量的最大值.

第一行输入一个整数 n    ( 1 ≤ n ≤ 100 ) n\ \ (1\leq n\leq 100) n  (1n100).第二行输入一个长度为 n n n 0 − 1 0-1 01串,其中第 i i i个字符为 0 0 0表示初始时 i i i号灯关闭,为 1 1 1表示初始时 i i i号灯打开.接下来 n n n行每行输入两个整数 a , b    ( 1 ≤ a , b ≤ 5 ) a,b\ \ (1\leq a,b\leq 5) a,b  (1a,b5),表示每盏灯的参数.

思路

显然所有灯开始循环切换状态后所有灯有公共周期,且该公共周期即所有等差数列的公差的 l c m \mathrm{lcm} lcm,再加上最晚进入循环切换状态的灯的 b b b值作为预周期,则只需模拟预周期和第一个周期灯的变化情况即可.

l c m ( 1 , 2 , 3 , 4 , 5 ) = 120 \mathrm{lcm}(1,2,3,4,5)=120 lcm(1,2,3,4,5)=120,再加上最长的预周期 5 5 5,故只需模拟前 125 125 125个时刻.

代码

const int MAXN = 125;
int cnt[MAXN];  // 每个时刻打开的灯的数量

void solve() {
  int n; cin >> n;
  string s; cin >> s;
  for (int i = 0; i < n; i++) {
    int a, b; cin >> a >> b;
    int c = s[i] - '0';
    for (int j = 0; j < MAXN; j++) {  // 枚举时刻
      cnt[j] += c;
      if (j == b) {  // 进入循环切换状态
        c ^= 1;
        b += a;
      }
    }
  }
  cout << *max_element(cnt, cnt + MAXN);
}

int main() {
  solve();
}


1220B. Multiplication Table

原题指路:https://codeforces.com/problemset/problem/1220/B

题意 ( 2   s ) (2\ \mathrm{s}) (2 s)

给定一个 n × n    ( 3 ≤ n ≤ 1000 ) n\times n\ \ (3\leq n\leq 1000) n×n  (3n1000)的乘法表 M M M,其元素 M i j = a i a j    ( 1 ≤ M i j ≤ 1 e 9 ) M_{ij}=a_ia_j\ \ (1\leq M_{ij}\leq 1\mathrm{e}9) Mij=aiaj  (1Mij1e9),其中 a 1 , ⋯   , a n    ( 1 ≤ a i ≤ 1 e 9 ) a_1,\cdots,a_n\ \ (1\leq a_i\leq 1\mathrm{e}9) a1,,an  (1ai1e9)是一个正整数序列.现给定删去对角线元素后的乘法表 M M M,求原序列 a 1 , ⋯   , a n a_1,\cdots,a_n a1,,an.

思路

( x y ) ⋅ ( x z ) y z = x 2 \dfrac{(xy)\cdot (xz)}{yz}=x^2 yz(xy)(xz)=x2计算即可.

代码

const int MAXN = 1005;
int a[MAXN][MAXN];

void solve() {
  int n; cin >> n;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) cin >> a[i][j];

  for (int i = 1; i <= n; i++) {
    int j = i % n + 1, k = j % n + 1;
    cout << (int)sqrt((ll)a[i][j] * a[i][k] / a[j][k]) << ' ';
  }
}

int main() {
  solve();
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Codeforces] number theory (R1600) Part.7 的相关文章

  • vue预览tiff格式文件

    vue 预览tiff格式的文件 1 下载tiff js tiff js官网 npm 安装 npm i tiff js S yarn 安装 yarn add tiff js S 安装完成之后通过 img 标签使用即可 div fileInfo
  • 数据结构:手撕图解二叉树(含大量递归图解)

    文章目录 写在前面 二叉树的创建 二叉树的遍历 前序遍历 中序遍历 后序遍历 层序遍历 二叉树的销毁 二叉树节点个数 二叉树叶子节点的个数 二叉树查找值为x的节点 二叉树是否为完全二叉树 写在前面 二叉树的几乎所有实现都是依靠递归实现 递归

随机推荐

  • 51单片机:独立按键控制数码管计数

    按键动作的前沿和后沿会都有大约10ms的抖动 人在按下按键到松开至少需要50ms以上 待考证 此代码实现的功能为给按键计数 并给按键消抖 欢迎邮箱交流 bglei foxmail com 作者 CHNfisher include
  • JS压缩图片

    作者 wuwhs https segmentfault com a 1190000023486410 说明 js image compressor 是一个实现轻量级图片压缩的 javascript 库 压缩后仅有 5kb 在前端页面即可实现
  • 【数据挖掘】特征化分析(信息增益)

    目录 前言 数据预处理 导入库 读取样本数据 计算过程 计算每个属性的熵 计算给定的样本分类所需要的期望信息 计算所有属性的信息增益 结果可视化 信息增益较大的属性下的结果 信息增益较小的属性下的结果 写在后面 前言 这是一个数据挖掘选修课
  • ubuntu系统中新建文件的默认权限

    在ubuntu系统中 当我们使用touch 和 mkdir 新建文件和目录时 并没有指明要赋予它们的权限 在man的帮助手册中也没有找到相应选项 虽然后续我们可以使用chmod 修改文件的权限 但是清楚新建文件的默认权限的来源是十分有必要的
  • 根据采购订单IDN进行MIGO过账的BAPI逻辑

    客户需求 根据ALV上的采购订单IDN进行过账 如果有IDN 就根据IDN过账 如果没有 就根据采购订单过账 BAPI ITEM数据填充如下 DATA ls goodsmvt item TYPE bapi2017 gm item creat
  • 黑马程序员——多线程笔记

    a target blank href http www itheima com android培训 a a target blank href http www itheima com java培训 a 期待与您交流 多线程 一 概念 进
  • python数据分析-Pandas数据清洗

    数据的格式请参考前面Pandas常见操作中数据的格式 数据清洗 1 重复值的处理 重复值一般采取删除法来处理 但有些重复值不能删除 例如订单明细数据或交易明细数据等 data data duplicated 判断重复数据并取出 data d
  • 区块链技术体系,快捷学习路径?

    这两年 数字货币和区块链很火 年初写过一些区块链与比特币的文章 反响也很不错 不少网友催我继续写区块链 我在这个方向未曾深耕 也不敢造次 结合自己的经验 写写区块链涉及的技术体系 以及学习区块链的途径和方法 一 区块链技术体系 数据层 数据
  • JVM的内存区域

    JVM的内存区域 不知不觉都大三了 回头看看以前的Android开发过程 遇到的很多问题都需要深入到源码去解决 这也促使我不断地深入学习Java的相关知识 首先要学习的肯定是JVM 不过JVM的知识体系十分庞杂 JVM的内存区域的划分是学习
  • opencv——训练自己的小狗分类器

    opencv python图像识别 训练自己的分类器 opencv支持训练自己的分类器 闲话少说 训练步骤 准备样本图像数据 样本数据预处理 正反样本数据生成正反txt vec文件 训练 测试结果 注意以下几点 首先应该注意样本数据量 预处
  • 前端对接微信公众号网页开发流程,前期配置

    微信公众号网页开发 其实就是我们开发的h5网页需要放到微信浏览器环境中使用 但是需要对接公众号授权 授权之后可以获取到用户的个人信息 以及可以使用公众号提供的一些API 如 图片上传 图片预览 获取位置信息 微信扫一扫等功能 在没有对接正式
  • 分数蓝桥杯

    题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 1 1 1 2 1 4 1 8 每项是前一项的一半 如果一共有 2020 项 求这个和是多少 结果用分数表示出来 类似 当然 这只是加了前 22 项而已 分子
  • git克隆、git库管理(git权威指南笔记)

    对等工作区 1 git clone
  • 应急响应-Linux入侵排查

    0x00 前言 当企业发生黑客入侵 系统崩溃或其它影响业务正常运行的安全事件时 急需第一时间进行处理 使企业的网络信息系统在最短时间内恢复正常工作 进一步查找入侵来源 还原入侵事故过程 同时给出解决方案与防范措施 为企业挽回或减少经济损失
  • android 系统内置拍照功能

    启动系统内置拍照功能 Intent localIntent new Intent android media action IMAGE CAPTURE fileUri getOutputMediaFileUri MEDIA TYPE IMA
  • 5000并发的qps是多少_php高并发问题思路

    qps多少才算高并发 首先是无状态前端机器不足以承载请求流量 需要进行水平扩展 一般QPS是千级 然后是关系型数据库无法承载读取或写入峰值 需要数据库横向扩展或引入nosql 一般是千到万级 之后是单机nosql无法承载 需要nosql横向
  • 眼睛血管分割matlab版本

    matlab的代码仅供参考 实现过程基本按照python版本的眼睛血管分割来实现 其中 python版本眼睛血管分割详见 眼睛血管分割python版 clc clear all close all image imread D test D
  • 交换和--排序

    LeetCode 面试题 16 21 交换和 给定两个整数数组 请交换一对数值 每个数组中取一个数值 使得两个数组所有元素的和相等 返回一个数组 第一个元素是第一个数组中要交换的元素 第二个元素是第二个数组中要交换的元素 若有多个答案 返回
  • 常见排序算法及其对应的时间复杂度、空间复杂度

    常见排序算法及其对应的时间复杂度 空间复杂度 排序算法经过长时间演变 大体可以分为两类 内排序和外排序 在排序过程中 全部记录存放在内存 则成为内排序 如果排序过程中需要使用外存 则称为外排序 本文讲的都属于内排序 内排序有可以分为以下几类
  • [Codeforces] number theory (R1600) Part.7

    Codeforces number theory R1600 Part 7 题单 https codeforces com problemset page 1 tags number theory 2C1201 1600 1113B Sas