板刷CF:数学1500-2100
1、1542C
题目链接:题目链接
分析:
1、1542C,对于一个数n我们要求其最小的不能整除他的数,我们需要从1开始逐一枚举,显然这样数量级是很大的,所以我们需要想其他的解决办法,那么我们对小数据进行模拟分析,如果这个不能整除n的数是i的话,i为1时没有这样的数,为2时发现所有的奇数都可以计上,那么我们只剩下偶数了,对这些数我们再考虑i为3,发现我们又可以将他们分成对3取余为0的和不为0的数,也就是说对于这些数我们可以逐步的将他们分成对2取余为0和不为0,再将队2取余为0的再对3取余进行划分,然后我们再考虑对4取余,那么我们将他们转化出来就是对前i个数的lcm进行划分,1,2的lcm为2,1,2,3的lcm为3,1,2,3,4的lcm为4,以此类推我们对当前的一个数i计算贡献就是之前取的lcm为x的话,(n/x-n/lcm(x,i))*i,那么我们仍旧需要枚举i为多少,我们需要枚举很多i吗?其他当i到40的时候,他们的lcm就已经到10的16次方了,所以我们i枚举50就够了,当n/x=0的时候退出循环就行了。
代码:
#include<bits/stdc++.h>
using namespace std;typedef long long ll;const ll mod = 1e9 + 7;ll n;ll gcd(ll a, ll b)
{return b ? gcd(b, a % b) : a;
}ll lcm(ll a, ll b)
{return a / gcd(a, b) * b;
}ll add(ll a, ll b)
{if(a + b >= mod) return a + b - mod;return a + b;
}ll mul(ll a, ll b)
{return a * b % mod;
}void solve()
{cin >> n;ll x = 1, y, ans = 0;for(int i = 1; i <= 100; i ++ ){if(n / x == 0) break;y = lcm(x, i);ans = add(ans, mul(n / x - n / y, i));x = y;}printf("%lld\n", ans);
}int main()
{int T; cin >> T; while(T -- ) solve();return 0;
}
2、1542B
题目链接:题目链接
分析:
2、1542B,我们观察由a和b组成的可能的式子,考虑n对a取余能不能将式子化简,发现这样会导致可以被整数倍b减去从而不能减,那我们考虑对b取余,可以发现我们的n表示成的式子可以转化成a的k1次幂加上k2倍的b,也就是说我们如果存在这样的一个k1使n减去a的k1次方后能被b整除,那么这样的n我们一定能通过操作获得,注意这里不能直接对b取余,否则会导致能被a的多次幂形成的数变得不能形成,显然a的k1次幂不能大于n,并且k1最多为32的数量。
代码:
#include<bits/stdc++.h>
using namespace std;typedef long long ll;int n, a, b;void solve()
{cin >> n >> a >> b;for(ll i = 1, x = 1; x <= n && x > 0 && i < 32; i ++ , x *= a){if((n - x) % b == 0){puts("Yes");return ;}}puts("No");
}int main()
{int T; cin >> T; while(T -- ) solve();return 0;
}
3、1538D
题目链接:题目链接
分析:
3、1538D,我们考虑最少需要多少次数使a和b相等,如果a/gcd(a, b)>1那么我们需要花费一次,同样对于b来说也是,因此minc=(a/gcd(a,b)>1)+(b/gcd(a,b)>1),那么我们最多能进行多少次操作呢?我们可以每次取c为质数,这样我们最多次数maxc为a的所有质因子的数量加上b的所有质因子的数量,显然我们k至少要大于minc,并且小于maxc,但是除此之外还有一些问题,当k为1时如果a等于b,那么我们没办法实现,所以我们需要特判这个条件,可以证明满足这些条件下,一定存在可行的方案,因为我们c可以取任意的数,当c取一个质因子时记消除为1,当c取两个质因子的乘积时消除为2,也就是说我们的不同的消除之间的差可以为1,那么那些操作数k我们都能取到。
代码:
#include<bits/stdc++.h>
using namespace std;const int N = 100010;int a, b, k;
int primes[N], cnt;
bool vis[N];void init()
{for(int i = 2; i < N; i ++ ){if(!vis[i]) primes[cnt ++ ] = i;for(int j = 0; primes[j] * i < N; j ++ ){vis[primes[j] * i] = true;if(i % primes[j] == 0) break;}}
}int gcd(int a, int b)
{return b ? gcd(b, a % b) : a;
}int get(int x)
{int res = 0;for(int i = 0; primes[i] <= x / primes[i] && i < cnt; i ++ )if(x % primes[i] == 0){while(x % primes[i] == 0)res ++ , x /= primes[i];}if(x > 1) res ++ ;return res;
}void solve()
{cin >> a >> b >> k;int d = gcd(a, b), x = a / d, y = b / d;int minc = 0, maxc = get(a) + get(b);minc += (x > 1) + (y > 1);if(k >= minc && k <= maxc && k == 1 && minc == 1) puts("Yes");else if(k >= minc && k <= maxc && k != 1) puts("Yes");else puts("No");
}int main()
{init();int T; cin >> T; while(T -- ) solve();return 0;
}
4、1537D
题目链接:题目链接
分析:
4、1537D,我们发现当我们把n表示成多个质因子相乘的形式的时候,我们的操作就相当于选择一部分质因子,让另一部分质因子所乘起来的数减1,首先如果质因子都为奇数的话,即不含2这个因子的时候,那么他们的乘积也为奇数,那么此时如果我们进行一次操作我们一定会使得某一部分奇数变为偶数,当我们为偶数时,我们一定存在一种操作使他变成奇数,即我们将这个数分成一部分乘积为偶数的质因子s和乘积为奇数的质因子t,n表示成s*t,我们可以选择让s减1使n变成奇数,也就是说当n为奇数的时候Bob获胜,偶数时Alice获胜,但是这里存在一个问题,当n为2的k次幂时,我们没办法通过一次操作使n变成奇数,但是我们发现如果我们选择一部分2的k1次幂分开,让另一部分减1,那么就使得另一部分变成了奇数t,我们选择的一部分则为s,这样就变成了先前我们考虑的n=s*t的情况,此时对方是必胜的,所以我们不会取选择这么做,所以我们最优策略下一定是选择分成一个2让他变成1,即2的k次幂变成2的k-1次幂,当k等于1的那方显然就输了,也就是说k为偶数的时候Alice赢,奇数Bob赢。所以本题的关键就是要想到2这个质因子上。
代码:
#include<bits/stdc++.h>
using namespace std;int n;void solve()
{cin >> n;if(n % 2) puts("Bob");else{for(int i = 1; i <= 30; i ++ )if(n == (1 << i)){if(i % 2) puts("Bob");else puts("Alice");return ;}puts("Alice");}
}int main()
{int T; cin >> T; while(T -- ) solve();return 0;
}
5、1512G
题目链接:题目链接
分析:
5、1512G,范围c<10的7次方,所以我们的n也一定小于10的7次方,所以我们可以暴力得出d[i]的值,然后再取最小位置就行。这题官方题解中还有一种做法,就是用线性筛得到每个数的最小质因子,这里存在一个等式d[a*b]=d[a]*d[b],当gcd(a,b)=1时是满足的,筛完后我们遍历每个数i,如果i为质数显然d(i)=i+1,如果其为偶数,那么我们将他分成s*t,t为i的最小质因子的所有乘积(因为最小质因子p的次数不只为1),而这里d[t]我们没法将t分成互质的两个数,所以我们需要额外算一下,即p^k+p^(k-1)+...+p^1+p^0,最后取最小位置就行了。
代码:
#include<bits/stdc++.h>
using namespace std;const int N = 1e7 + 10;int n;
int d[N], mp[N], s[N];
int primes[N], cnt;
bool vis[N];void init()
{d[1] = 1;for(int i = 2; i < N; i ++ ){if(!vis[i]) primes[cnt ++ ] = i, d[i] = i;for(int j = 0; primes[j] * i < N; j ++ ){vis[primes[j] * i] = true;d[primes[j] * i] = primes[j];if(i % primes[j] == 0) break;}}s[1] = 1;for(int i = 2; i < N; i ++ ){if(!vis[i]) s[i] = i + 1;else{int j = i;s[i] = 1;while(j % d[i] == 0){j /= d[i];s[i] = s[i] * d[i] + 1;}s[i] *= s[j];}}for(int i = 1; i < N; i ++ ) mp[i] = 1e9;for(int i = N - 1; i >= 1; i -- )if(s[i] < N)mp[s[i]] = i;
}void solve()
{cin >> n;if(mp[n] == 1e9) puts("-1");else printf("%d\n", mp[n]);
}int main()
{init();int T; cin >> T; while(T -- ) solve();return 0;
}
6、1610D
题目链接:题目链接
分析:
6、1610D,这道题目很好,首先我们证明当我们选择的ai中存在一个ai为奇数时,一定存在满足题目条件的情况,我们把这个奇数ai单独提出来,那么记其他一起选择的数的和为sum,当sum为偶数时,我们可以形成一个sum+ai长的连续段,长为奇数所以可以取中间点在0上,当sum为奇数时,我们先将一段长为sum的段按中心在0处放,再同样把ai长的一段这样放。这样的话,我们接下来就需要考虑ai只为偶数的情况,对于一个ai,我们可以可以移动这段连续的点的起点从而使其sumi=kai+ai/2,即左右横跨0点,右边多一个没有对称的点,那么所有的sumi相加等于0可以化成等式ka1+ka2+...+kas=(a1+a2+...+as)/2,也就是说gcd(a1,a2,...,as)能整除(a1+a2+...+as)/2,显然(a1+a2+...+as)是能被整除的,但是除了一个2就存在不能整除的情况,我们记ai'为ai/gcd(a1,a2,...,as),通过ai'的和的奇偶性我们可以判断是否能够满足整除条件,而他们的奇偶性我们可以通过其每个数的2的次幂来看,如果ai的2的次幂为a1,a2,...,as的2的次幂的最小值,显然ai'是一个奇数,所以我们可以枚举2的次数t,记bi为2的次数为i的数的个数,那么我们需要从bi个中选择奇数个C[bi][1]+C[bi][3]+...,和为2的bi-1次幂,除此之外对于bi+1,bi+2,...,2的次幂大于i的可以任选则乘上2^(bi+1)*2^(bi+2)*...,从而得到答案。
代码:
#include<bits/stdc++.h>
using namespace std;typedef long long ll;const int N = 200010, mod = 1e9 + 7;int n;
int a[N], b[N];
int pow2[N];void init()
{pow2[0] = 1;for(int i = 1; i < N; i ++ ) pow2[i] = pow2[i - 1] * 2ll % mod;
}ll add(ll a, ll b)
{if(a + b >= mod) return a + b - mod;return a + b;
}ll mul(ll a, ll b)
{return a * b % mod;
}ll delet(ll a, ll b)
{return ((a - b) % mod + mod) % mod;
}int main()
{init();cin >> n;for(int i = 1; i <= n; i ++ ) scanf("%d", &a[i]);for(int i = 1; i <= n; i ++ ){int cnt = 0;while(a[i] % 2 == 0) cnt ++ , a[i] /= 2;b[cnt] ++ ;}ll res = 0, sum = 1;for(int i = 31; i >= 1; i -- )if(b[i]){res = add(res, mul(pow2[b[i] - 1], sum));sum = mul(sum, pow2[b[i]]);}printf("%lld\n", delet(delet(pow2[n], 1), res));return 0;
}
7、1598E
题目链接:题目链接
分析:
7、1598E,这题写了我很久,也改了我很久(码代码能力太差了),题目给定的n和m数量级为10的3次方,我们如果要计算数量的一般就需要一个枚举使得我们计算的数量是不重不漏的,我们可以枚举每个格子为起点开始有多少个阶梯,我们记向左下延申为l1,下右为l2,上左为rl1,左上为rl2,我们对每次询问暴力修改这些值,那么我们修改的格子是形成一个斜形的也就是n+m的样子,所以这样的话我们的时间复杂度为q*n的级别,是可以的,所以直接暴力做就行了。
代码:
#include<bits/stdc++.h>
using namespace std;typedef long long ll;const int N = 1010;int n, m, q;
int l1[N][N], l2[N][N], rl1[N][N], rl2[N][N];
bool vis[N][N];void pushdowm1(int r, int c)
{int x = r, y = c;for(int i = 1; i < l1[r][c]; i ++ ){if(i % 2){y ++ ;if(y <= m) rl2[x][y] = rl1[x][y - 1] + 1;}else{x ++ ;if(x <= n) rl1[x][y] = rl2[x - 1][y] + 1;}}
}void pushdowm2(int r, int c)
{int x = r, y = c;for(int i = 1; i < l2[r][c]; i ++ ){if(i % 2){x ++ ;if(x <= n) rl1[x][y] = rl2[x - 1][y] + 1;}else{y ++ ;if(y <= m) rl2[x][y] = rl1[x][y - 1] + 1;}}
}void pushup1(int r, int c)
{int x = r, y = c;for(int i = 1; i < rl1[r][c]; i ++ ){if(i % 2){x -- ;if(x >= 1) l2[x][y] = l1[x + 1][y] + 1;}else{y -- ;if(y >= 1) l1[x][y] = l2[x][y + 1] + 1;}}
}void pushup2(int r, int c)
{int x = r, y = c;for(int i = 1; i < rl2[r][c]; i ++ ){if(i % 2){y -- ;if(y >= 1) l1[x][y] = l2[x][y + 1] + 1;}else{x -- ;if(x >= 1) l2[x][y] = l1[x + 1][y] + 1;}}
}void take1(int r, int c)
{l1[r][c] = l2[r][c + 1] + 1, l2[r][c] = l1[r + 1][c] + 1;rl1[r][c] = rl2[r - 1][c] + 1, rl2[r][c] = rl1[r][c - 1] + 1;
}int main()
{cin >> n >> m >> q;for(int i = 1; i <= n; i ++ )for(int j = 1; j <= m; j ++ ){if(n - i < m - j) l1[i][j] = 2 * (n - i) + 2, l2[i][j] = 2 * (n - i) + 1;else if(n - i > m - j) l1[i][j] = 2 * (m - j) + 1, l2[i][j] = 2 * (m - j) + 2;else l1[i][j] = 2 * (n - i) + 1, l2[i][j] = 2 * (n - i) + 1;if(i - 1 < j - 1) rl1[i][j] = 2 * (i - 1) + 1, rl2[i][j] = 2 * (i - 1) + 2;else if(i - 1 > j - 1) rl1[i][j] = 2 * (j - 1) + 2, rl2[i][j] = 2 * (j - 1) + 1;else rl1[i][j] = 2 * (i - 1) + 1, rl2[i][j] = 2 * (i - 1) + 1;}ll ans = 0;for(int i = 1; i <= n; i ++ )for(int j = 1; j <= m; j ++ )ans += l1[i][j] + l2[i][j] - 1;// for(int i = 1; i <= n; i ++ )// {// for(int j = 1; j <= m; j ++ )// printf("%d:%d ", l1[i][j], l2[i][j]);// for(int j = 1; j <= m; j ++ )// printf("%d:%d ", rl1[i][j], rl2[i][j]);// puts("");// }while(q -- ){int x, y;scanf("%d%d", &x, &y);if(vis[x][y]){vis[x][y] = false;take1(x, y);ans += l1[x][y] + l2[x][y] - 1 + (rl1[x][y] - 1ll) * l1[x][y] + (rl2[x][y] - 1ll) * l2[x][y];pushdowm1(x, y), pushdowm2(x, y);pushup1(x, y), pushup2(x, y);}else{vis[x][y] = true;ans -= l1[x][y] + l2[x][y] - 1 + (rl1[x][y] - 1ll) * l1[x][y] + (rl2[x][y] - 1ll) * l2[x][y];int tmpl1 = rl1[x][y], tmpl2 = rl2[x][y];rl1[x][y] = rl2[x][y] = 0;pushdowm1(x, y), pushdowm2(x, y);rl1[x][y] = tmpl1, rl2[x][y] = tmpl2;l1[x][y] = l2[x][y] = 0;pushup1(x, y), pushup2(x, y);rl1[x][y] = rl2[x][y] = 0;}// for(int i = 1; i <= n; i ++ )// {// for(int j = 1; j <= m; j ++ )// printf("%d:%d ", l1[i][j], l2[i][j]);// for(int j = 1; j <= m; j ++ )// printf("%d:%d ", rl1[i][j], rl2[i][j]);// puts("");// }printf("%lld\n", ans);}return 0;
}
8、1584D
题目链接:题目链接
分析:
8、1584D,我们可以发现对于1~i-1的数和k+1~n的数并不会影响逆序对的数量,所以产出逆序对的一定在[i,k]这个区间里,并且可以发现我们逆序对的数量随位置i的变化是成单调变化的,所以我们考虑二分,我们可以logn的次数下找到i这个位置,我们二分每次询问[1,mid]的逆序对数量,找到最后一个使[1,l]逆序对数量为0的位置,然后我们可以再询问[i,n]和[i+1,n]他们逆序对的差就是[i,j-1]的长度减1,这样我们能够找到j,同理我们也能找到k,需要注意的是我们读入逆序对的数量时需要用long long来存。
代码:
#include<bits/stdc++.h>
using namespace std;typedef long long ll;int n;ll ask(int l, int r)
{ll t;cout << "? " << l << ' ' << r << endl;cin >> t;return t;
}void solve()
{cin >> n;int l = 1, r = n;while(l < r){int mid = (l + r + 1) >> 1;if(ask(1, mid) <= 0) l = mid;else r = mid - 1;}int i = l, j, k;ll x = ask(i, n) - ask(i + 1, n);j = i + x + 1;x = ask(j, n) - ask(j + 1, n);k = j + x;cout << "! " << i << ' ' << j << ' ' << k << endl;
}int main()
{ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);int T; cin >> T; while(T -- ) solve();return 0;
}
9、1475E
题目链接:题目链接
分析:
9、1475E,这道题比较容易,我们先取ai值比较大的,当我们取的人数大于等于k的时候,使我们的人数sum大于等于k的数中选择我们需要的人数就行了。
代码:
#include<bits/stdc++.h>
using namespace std;typedef long long ll;const int N = 1010, mod = 1e9 + 7;int n, k;
int a[N], c[N];
ll fac[N], infac[N];ll qpow(ll a, ll b)
{ll res = 1;while(b){if(b & 1) res = res * a % mod;a = a * a % mod;b >>= 1;}return res;
}void init()
{fac[0] = 1;for(ll i = 1; i < N; i ++ ) fac[i] = fac[i - 1] * i % mod;infac[N - 1] = qpow(fac[N - 1], mod - 2);for(ll i = N - 2; i >= 0; i -- ) infac[i] = infac[i + 1] * (i + 1) % mod;
}ll C(int x, int y)
{return fac[x] * infac[y] % mod * infac[x - y] % mod;
}void solve()
{cin >> n >> k;for(int i = 1; i <= n; i ++ ) c[i] = 0;for(int i = 1; i <= n; i ++ ) scanf("%d", &a[i]), c[a[i]] ++ ;int sum = 0;for(int i = n; i >= 1; i -- ){sum += c[i];if(sum >= k){printf("%lld\n", C(c[i], k - sum + c[i]));return ;}}
}int main()
{init();int T; cin >> T; while(T -- ) solve();return 0;
}
10、1545B
题目链接:题目链接
分析:
10、1545B,这道题目也很不错,对于棋子的移动我们可以将其看成是取出相邻的两个1,让他们左边的数放到他们右边,或者相反,也就是说我们的操作相当于往数的空隙中插入两个1,可以发现我们的操作一定是只对两个1进行的插入,如果是4则可以看出是两对的连续1,因此我们从前往后取如果s[i]和s[i-1]都为1,并且s[i-1]没被前面的数选去的话,我们将他们记为一组,记总的数量为n,那么我们问题就转化成了将n个球插入剩下的数的空隙中,并且可以存在两个球中间没数分隔,但是剩下的数中还有一些1,而对这些1来说我们插在他们左边和右边是等价的,那这怎么处理呢?其实我们可以看作没有这些1,只记录0的数量m,我们在这些0上插入,再将原来剩下的1放回原来的位置是等价的,所以我们答案为组合数C[n+m][m]。
代码:
#include<bits/stdc++.h>
using namespace std;typedef long long ll;const int N = 100010, mod = 998244353;int n;
char s[N];
ll fac[N], infac[N];ll qpow(ll a, ll b)
{ll res = 1;while(b){if(b & 1) res = res * a % mod;a = a * a % mod;b >>= 1;}return res;
}void init()
{fac[0] = 1;for(ll i = 1; i < N; i ++ ) fac[i] = fac[i - 1] * i % mod;infac[N - 1] = qpow(fac[N - 1], mod - 2);for(ll i = N - 2; i >= 0; i -- ) infac[i] = infac[i + 1] * (i + 1) % mod;
}ll C(int x, int y)
{return fac[x] * infac[y] % mod * infac[x - y] % mod;
}void solve()
{cin >> n;scanf("%s", s + 1);int c1 = 0, c2 = 0;for(int i = 1; i <= n; i ++ ) if(s[i] == '0') c2 ++ ;for(int i = 1; i <= n; i ++ )if(i + 1 <= n && s[i] == '1' && s[i + 1] == '1')c1 ++ , i ++ ;printf("%lld\n", C(c1 + c2, c1));
}int main()
{init();int T; cin >> T; while(T -- ) solve();return 0;
}
板刷CF:数学1500-2100相关推荐
- 板刷CF记录 #2459878
太简单的 A 和 B 就不放了. 考虑到有些人(比如我)或者有些时候(比如我在家时)不一定上的去 Codeforces,这里放的是洛谷的链接. CF165C 题意:给你一个 01 串,问有多少刚好含 ...
- 浙江农林大学ACM集训队2019级队长退役回忆录(未实际退役版本)
前言 (今后肯定不会再刻意去训练,但是明年还是要回来发挥余热继续打比赛,因此现在的退役实际上是不完全的,在明年大四打完最后的赛季后会重新来补全这篇回忆录) 我还能清晰记得自己第一次来到集训队实验室的场 ...
- 东华大学2021考研基本练习题91~120
目录 91 乒乓球 92 字符串统计 93 隐藏口令 94 求字符串的起始位置 95 最长的单词 96 奖学金 97 回文数2 98 加法器 99 构造序列 100 纯粹合数 101 找出质数 102 ...
- Milking Cows 挤牛奶
1.2.1 Milking Cows 挤牛奶 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 554 Solved: 108 [Submit][Stat ...
- 分支优化:neg+sbb算术运算代替逻辑跳
今天在分析一个样本的时候,发现一段代码. 1 // .text:100012DF sub esi, 0B7h // 183 2 // .text:100012E5 neg esi 3 // .text ...
- ui和android有联系,Android单位换算与UI适配
一,pt.px.屏幕尺寸.分辨率及ppi关系与单位换算 pt(point):磅,一个标准的固定长度单位,大小为1/72英寸. 主要用于印刷和平面设计 1inch = 2.54cm = 72pt px( ...
- USACO 1.2 挤牛奶
Description 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶.第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻.第二个农民在700时刻开始,在 1200时 ...
- [USACO1.2]挤牛奶Milking Cows
题目描述 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶.第一个农民在300秒(从5点开始计时)给他的牛挤奶,一直到1000秒.第二个农民在700秒开始,在 1200秒结束.第三个农民在1500秒开 ...
- 算法设计与分析-实验2
问题 A: algorithm-迷宫游戏 题目描述 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道 ...
最新文章
- 如何在戴尔M系列交换机上配置简单交换模式
- CodeForces - 1593G Changing Brackets(思维)
- 英语口语练习系列-C24-杂技-问候语-乡愁
- winScp中文乱码设置
- apache配置解析php
- Spring MVC前后台交互(前台ajax传递数据,后台controller接收数据返回json对象)
- CCF201903-4 消息传递接口(100分)【模拟】
- MySQL优化(二)
- nod32升级问题解决(20080530)
- 专业网速测试软件哪个好,网速测试软件哪个好?6款热门网速测试软件推荐
- 卸载并安装谷歌浏览器
- 阿里云部署Java网站和微信开发调试心得技巧(下)
- 在大学里计算机专业总分多少,计算机专业高考多少分录取?附中国计算机专业大学排名及分数线...
- 后台进程很少,CPU内存却占用过高!
- 一种改进的天鹰优化算法和非洲秃鹫混合优化算法(Matlab代码实现)
- 【边缘注意:深度多尺度特征】
- Ivar Jacobson访谈
- 全球与中国云监控软件市场深度研究分析报告(2021)
- 使用高德地图2D/3D SDK添加海量描点Marker以及视图中显示所有描点、我的定位添加呼吸动画
- 第1讲--tuxedo总体介绍
热门文章
- 通信维修专用电源_通信电源的故障维修三例
- 加入了新元素的高熵合金!不再容易出现变形和脆化!
- java语言中类定义数组赋值_在Java语言中,下列对于字符数组的定义并赋值正确的是(选一项)_学小易找答案...
- 江苏2021计算机专业单招院校,2021江苏单招专科学校排名大学:2021年江苏提前单招学校有哪些...
- html keyframes无效,sass中@keyframes后变量无效的问题
- 使用UltraISO软碟通制作系统优盘
- poi读取excel 转换实体_java解析excel数据,将excel数据转换为实体类,存入数据库...
- centos压缩包安装mysql_Centos下使用压缩包安装MySQL5.7
- 反激式开关电源次级整流二极管被击穿的原因
- smoothL1理解