HBU 2023 Simple problem set

news2024/11/27 16:28:50

目录

7-1 递推公式

7-2 存钱罐

7-3 买东西

7-4 双重子串

7-5 放小球

7-6 最短路径

7-7 统计子序列的个数

7-8 摆放灯笼

7-9 选零食

7-10 1还是2

7-11 最少的门禁数量

7-12 青春猪头之开学了要好好学习

7-13 青春猪头之毕设真头大

7-14 青春猪头之我没学过C语言

7-15 发射小球

7-16 吉利的数字

7-17 买木棒

7-18 切割木棒

7-19 幸运数字

7-20 增加硬币

7-21 三分球

7-22 老虎机

7-23 正交性

7-24 删除不喜欢的数字

7-25 锦标赛


7-1 递推公式

 思路:

由于数据范围很大,模拟会TLE,考虑用矩阵运算优化这个类似斐波那契的递归式,再使用快速幂运算优化矩阵乘法,就能在要求的时间范围内通过了。

AC代码:

#include <iostream>
#include <stdio.h>
using namespace std;
typedef long long ll;

const int maxn = 105;
const int P = 1000000007;

struct matrix {
    ll m[maxn][maxn];
};
matrix a;

ll n, k;

matrix matrix_multi(matrix a, matrix b) {
    matrix ans;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            ans.m[i][j] = 0;
            for (int k = 1; k <= n; k++) {
                ans.m[i][j] = (ans.m[i][j] % P + (a.m[i][k] * b.m[k][j]) % P) % P;
            }
        }
    }
    return ans;
}

matrix quick_matrix_pow(matrix a, ll t) {
    matrix ans;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (i == j) ans.m[i][j] = 1;
            else        ans.m[i][j] = 0;
        }
    }
    while (t > 0) {
        if (t & 1)
            ans = matrix_multi(a, ans);
        a = matrix_multi(a, a);
        t >>= 1;
    }
    return ans;
}

int main() {
    n = 3;
    cin >> k;
    a.m[1][1] = a.m[1][2] = a.m[1][3] = a.m[2][1] = a.m[3][2] = 1;
    matrix ans = quick_matrix_pow(a, k - 2);
    cout << ((ans.m[1][1] + ans.m[1][2])%P + ans.m[1][3])%P;
    return 0;
}

7-2 存钱罐

思路:

二分,等差数列

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int T,n;
int main() {
	cin >> T;
	while (T--) {
		scanf("%d", &n);
		n *= 2;
		int l = 1, r = 1e5 + 10;
		while (l < r) {
			int mid = (l + r) >> 1;
			if ((LL)mid * (mid + 1) >= n)r = mid;
			else l = mid + 1;
		}
		printf("%d\n", l);
	}
}

7-3 买东西

思路:

贪心,由于每张券可以使物品少花一半的钱,那么给当前最大的物品使用券,一定是最优惠的,所以用一个优先队列(堆)维护当前最贵物品,每次用券,将最贵物品价格除以2,放入堆中,直至券全部用完。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 100010, M = N * 2, mod = 1e9 + 7;
int n, m;
priority_queue<int> q;

int main() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        q.push(x);
    }
    while (m--) {
        int x = q.top();
        if (x == 0)break;
        q.pop();
        q.push(x / 2);
    }
    LL sum = 0;
    while (!q.empty()) {
        sum += q.top();
        q.pop();
    }
    cout << sum;
}

7-4 双重子串

思路:

dp   我们以dp[i][j] 表示以i为开头的字串和以j为开头的字串最长重复部分的长度。

代码:
 

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int N = 5010;
int f[N][N];
int n;
int res;
string s;
int dfs(int x,int y){
    if(x > n || y > n)return 0;
    if(f[x][y] != -1)return f[x][y];
    if(s[x] != s[y])f[x][y] = 0;
    else{
        f[x][y] = min(y - x, dfs(x+1,y+1) + 1);
    }
    return f[x][y];
}

int main() {
	cin >> n;
	cin >> s;
    s = ' ' + s;
    memset(f,-1,sizeof f);
    for(int i=1;i<=n;i++){
        for(int j = i + 1;j <= n;j++){
            res = max(res,dfs(i,j));
        }
    }
    cout<<res;
	return 0;
}

7-5 放小球

题目有一点点问题:

“对于每个i(1≤i≤n),满足编号为i的倍数的箱子内装的小球的总数等于ai​%2。”

应改为

“对于每个i(1≤i≤n),满足编号为i的倍数的箱子内装的小球的总数%2等于ai​。”

思路:

这道题其实不存在无解的情况,我们总能根据他的条件构造出来一个正解

原因:

我们从n遍历到1, 统计i的倍数放的小球的个数sum,如果sum%2符合要求,那么这个位置就不放小球,如果不符合要求,就在此位置放置小球即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 200010, M = N * 2, mod = 1e9 + 7;
int n, m;
int a[N],b[N];
vector<int> res;
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for (int i = n; i >= 1; i--) {
        int sum = 0;
        for (int k = 2; i * k <= n; k++)sum += b[i * k];
        if (sum % 2 == 0) {
            if (a[i]) {
                res.push_back(i);
                b[i] = 1;
            }
        }
        else {
            if(!a[i]) {
                res.push_back(i);
                b[i] = 1;
            }
        }
    }
    cout << res.size() << endl;
    for (int i = 0; i < res.size(); i++) {
        cout << res[i] << " ";
    }
}

7-6 最短路径

思路:

此题点与点之间的距离是1,可以考虑bfs,只不过每次都要走3步,因此我们的st数组和d数组都应该是模3意义下的。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int N = 1e5 + 10;
int n, m, p;
int h[N], e[N], ne[N], idx;
void add(int a, int b) {
	e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
int a, b, x, y;
bool st[N][3];
int d[N][3];

int main() {
	scanf("%d%d", &n, &m);
	memset(h, -1, sizeof h);
	memset(st, 0, sizeof st);
	memset(d, -1, sizeof d);
	while (m--) {
		scanf("%d%d", &a, &b);
		add(a, b);
	}
	scanf("%d%d", &x, &y);

	st[x][0] = true;
	d[x][0] = 0;

	queue<PII> q;
	q.push({ x,d[x][0] });
	
	while (q.size()) {
		PII t = q.front();
		q.pop();

		int idx = t.first;
		int dist = t.second + 1;
		int fg = dist % 3;
		for (int i = h[idx]; i != -1; i = ne[i]) {
			int j = e[i];
			if (st[j][fg])continue;
			st[j][fg] = true;
			d[j][fg] = dist;
			if (j == y && fg == 0) {
				cout << d[j][0] / 3;
				return 0;
			}
			q.push({j,d[j][fg]});
		}
	}
	cout << "-1";
	return 0;
}

7-7 统计子序列的个数

思路:

dp ,我们用dp[i][j] 来表示a数组中i位置之前,b数组中j位置之前的相同子序列的个数。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 2010, M = 1e6+10, mod = 1e9 + 7;
int n, m;
LL a[N], b[N];
LL f[N][N];
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)cin >> a[i];
    for (int j = 1; j <= m; j++)cin >> b[j];
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            f[i][j] = (f[i][j - 1] + f[i - 1][j] - f[i - 1][j - 1]) % mod;
            if (a[i] == b[j])f[i][j] += (f[i - 1][j - 1] + 1) % mod;
            if (f[i][j] < 0)f[i][j] += mod;
            if (f[i][j] > mod)f[i][j] %= mod;
        }
    }
    cout << f[n][m] + 1;
    return 0;
}

7-8 摆放灯笼

思路:

模拟即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 1e4+10, M = 1e6+10, mod = 1e9 + 7;
int n, m;
char g[N][N];
int tran[N][N], dir[N][N];
int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i++)cin >> g[i];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++) {
            if (j - 1 < 0 || g[i][j - 1] == '#') {
                int res = 0;
                int k = j;
                while (g[i][k] == '.')k++,res++;
                tran[i][j] = res;
            }
            else tran[i][j] = tran[i][j - 1];
        }
    for (int j = 0; j < m; j++)
        for (int i = 0; i < n; i++) {
            if (i - 1 < 0 || g[i - 1][j] == '#') {
                int res = 0;
                int k = i;
                while (g[k][j] == '.')k++, res++;
                dir[i][j] = res;
            }
            else dir[i][j] = dir[i - 1][j];
        }
    int res = 0;
    for(int i=0;i<n;i++)
        for (int j = 0; j < m; j++) {
            if (g[i][j] == '#')continue;
            else res = max(res, tran[i][j] + dir[i][j] - 1);
        }
    cout << res;
    return 0;
}

7-9 选零食

思路:

模拟即可,枚举取几个零食,放回几个零食

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int N = 55;

int n, m;
int a[N];
int res;
int main() {
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	int buy = min(n, m);
	for (int i = 1; i <= buy; i++) {
		int put = m - i;
		for (int jl = 0; jl <= i; jl++) {
			int sum = 0;
			priority_queue<int, vector<int>, greater<int>> q;
			int jr = n - i + jl + 1;
			for (int j = 1; j <= jl; j++) {
				q.push(a[j]);
				sum += a[j];
			}
			for (int j = jr; j <= n; j++) {
				q.push(a[j]);
				sum += a[j];
			}
			int x = put;
			while (!q.empty() && q.top() < 0 && x > 0) {
				sum -= q.top();
				q.pop();
				x--;
			}
			res = max(res, sum);
		}
	}
	cout << res;
	return 0;
}

7-10 1还是2

思路:

考虑一件事情:如果我们得到了这样的线索:“1 和 2 、2 和3 、3和4”,我们只要知道1,就可以把2、3、4推断出来了。因此,判断线索将哪些卡片联系起来,成为了一组,每组中我们只要知道其中一个,其余的就都可以推断出来了。

使用并查集

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 1e5+10, M = 1e6+10, mod = 1e9 + 7;
int n, m;
int p[N];

int find(int x) {
    if (x != p[x])p[x] = find(p[x]);
    return p[x];
}

int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)p[i] = i;
    for (int i = 0; i < m; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        a = find(a), b = find(b);
        if (a != b)p[a] = b;
    }
    set<int> st;
    for (int i = 1; i <= n; i++) {
        p[i] = find(p[i]);
        st.insert(p[i]);
    }
    cout << st.size();
    return 0;
}

7-11 最少的门禁数量

思路:

典型差分,将所有大门的信息差分,求一遍前缀和,当前和等于门的数量的钥匙即满足要求

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 1e5+10, M = 1e6+10, mod = 1e9 + 7;
int n, m;
int chafen[N];

int main()
{
    cin >> n >> m;
    int men = m;
    while (m--) {
        int l, r;
        cin >> l >> r;
        chafen[l] += 1;
        chafen[r + 1] -= 1;
    }
    int res = 0;
    for (int i = 1; i <= n; i++) {
        chafen[i] += chafen[i - 1];
        if (chafen[i] == men)res++;
    }
    cout << res;
    return 0;
}

7-12 青春猪头之开学了要好好学习

思路:

由于我们可以进行无限次操作,所以如果负数个数为偶数的话,我们总能将其全变为正数。

但如果负数个数为奇数,我们不管怎么翻转,最后都会留下一个负数,那我们一定会留最小的那个负数。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 1e5+10, M = 1e6+10, mod = 1e9 + 7;
int n, m;
vector<LL> a;
int main()
{
    LL res = 0;
    cin >> n;
    for (int i = 0; i < n; i++){
        LL x;
        cin >> x;
        if (x < 0)m++;
        a.push_back(x);
    }
    if (m % 2 == 0) {
        for (int i = 0; i < n; i++)res += abs(a[i]);
    }
    else {
        for (int i = 0; i < n; i++) {
            a[i] = abs(a[i]);
        }
        sort(a.begin(), a.end());
        for (int i = 0; i < n; i++) {
            if (!i)res += (-1) * a[i];
            else res += a[i];
        }
    }
    cout << res;
    return 0;
}

7-13 青春猪头之毕设真头大

思路:(双指针)

枚举每一个0序列区间,判断将其全变成1,和两边的1相连长度是多少,更新最大值

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 1e5+10, M = 1e6+10, mod = 1e9 + 7;
int n, m;
string s;
int main()
{
    cin >> n >> m;
    getchar();
    cin >> s;
    int l = 0, r = 0, cnt = 0, num = 0;
    while (r < n) {
        if (s[r] == '0') {
            while (s[r] == '0'&& r < n - 1)r++;
            cnt++;
        }
        while (cnt > m) {
            while (s[l] == '1' && l < n - 1)l++;
            while (s[l] != '1' && l < n - 1)l++;
            cnt--;
        }
        num = max(num, r - l + 1);
        r++;
    }
    cout << num;
    return 0;
}

7-14 青春猪头之我没学过C语言

思路:

从1到n的异或值有规律,可以打表观察。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 1e5+10, M = 1e6+10, mod = 1e9 + 7;
int n;
LL x, y;
LL fun(LL x) {
    if (x % 4 == 1)return 1;
    else if (x % 4 == 2)return x + 1;
    else if (x % 4 == 3)return 0;
    else return x;
}
int main()
{
    cin >> x >> y;
    LL res = fun(max((LL)0,x - 1)) ^ fun(y);
    cout << res;
    
    return 0;
}

7-15 发射小球

思路:

推公式即可

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
    double sx, sy, gx, gy;
    double k = 0;
    scanf("%lf%lf%lf%lf", &sx, &sy, &gx, &gy);
    gy = -gy;
    printf("%.10lf", sx - (double)(sx-gx)/(sy-gy)*sy);
    return 0;
}

7-16 吉利的数字

思路:

只需要判断所有出现过的数字能组成的3位数是否是8的倍数即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 2e5 + 10;
int st[11];
char s[N];
int main()
{
	cin >> s;
	if (strlen(s) == 1) {
		if ((s[0] - '0') % 8 == 0)cout << "Yes";
		else cout << "No";
		return 0;
	}
	if (strlen(s) == 2) {
		int t = 0, x = 0;
		t += s[0] - '0';
		t *= 10;
		t += s[1] - '0';
		x += s[1] - '0';
		x *= 10;
		x += s[0] - '0';
		if (t % 8 == 0 || x % 8 == 0)cout << "Yes";
		else cout << "No";
		return 0;
	}
	for (int i = 0; i < strlen(s); i++) {
		int x = s[i] - '0';
		st[x]++;
	}

	for (int i = 1; i < 10; i++)
		for (int j = 1; j < 10; j++)
			for (int k = 1; k < 10; k++) {
				int t = 0;
				bool fg1 = false, fg2 = false, fg3 = false;
				if (st[i]) {
					t += i;
					st[i]--;
					fg1 = true;
				}else continue;
				if (st[j]) {
					t *= 10;
					t += j;
					st[j]--;
					fg2 = true;
				}else{ 
                    st[i]++;
                    continue;
                }
				if (st[k]) {
					t *= 10;
					t += k;
					st[k]--;
					fg3 = true;
				}else{ 
                    st[i]++;
                    st[j]++;
                    continue;
                }
				if (fg1)st[i]++;
				if (fg2)st[j]++;
				if (fg3)st[k]++;
				if (t && t % 8 == 0) {
					cout << "Yes";
					return 0;
				}
			}
	cout << "No";
	return 0;
}

7-17 买木棒

思路:

贪心,肯定要购买长度为n+1的木棒,考虑其能最多分割成多少个小的木棒,其余的购买。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL S, P;
int main()
{
    cin >> S;
    P = S;
    S++;
    int i = 1;
    while (S >= i) {
        S -= i;
        i++;
    }
    cout << P - i + 2;
    return 0;
}


7-18 切割木棒

思路:

长度为n的木棒,找11个切割位置:C_{11}^{n}

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 210;
LL f[N][13];
int main()
{
    for (int i = 0; i < N; i++) {
        for (int j = 0; j <= i && j < 13; j++) {
            if (j == 0)f[i][j] = (LL)1;
            else f[i][j] = f[i - 1][j - 1] + f[i - 1][j];
        }
    }
    int n; cin >> n;
    cout << f[n - 1][11];
    return 0;
}

7-19 幸运数字

思路:

预处理:线性筛法求素数,求其前缀和

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e5+10;
int prime[N],cnt;
int s[N];
bool st[N];
void get_prime(int n){
    for(int i=2;i<=n;i++){
        if(!st[i]){
            prime[cnt++]=i;
        }
        for(int j=0;prime[j]<=n/i;j++){
            st[prime[j]*i]=true;
            if(i%prime[j]==0)break;
        }
    }
}

int main()
{
    get_prime(N-1);
    for(int i=2;i<N;i++){
        if(!st[i] && !st[(i+1)/2] && i%2==1)s[i]=1;
    }
    for(int i=2;i<N;i++)s[i]+=s[i-1];
    int q;
    cin>>q;
    while(q--){
        int l,r;
        scanf("%d%d",&l,&r);
        printf("%d\n",s[r]-s[l-1]);
    }
    return 0;
}

7-20 增加硬币

思路:

期望DP

来源: AT_abc184_d [ABC184D] increment of coins - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 110;
double f[N][N][N];
int d = 0;

double dp(int a, int b, int c) {
    if (f[a][b][c] >= 0)return f[a][b][c];
    f[a][b][c] = 0;
    if (a >= 100 || b >= 100 || c >= 100)return f[a][b][c];
    int sum = a + b + c;
    f[a][b][c] += (dp(a + 1, b, c) + 1) * (1.0 * a) / sum;
    f[a][b][c] += (dp(a, b + 1, c) + 1) * (1.0 * b) / sum;
    f[a][b][c] += (dp(a, b, c + 1) + 1) * (1.0 * c) / sum;
    return f[a][b][c];
}
int main()
{
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    memset(f, -1, sizeof f);
    printf("%.9lf", dp(a, b, c));

    return 0;
}

7-21 三分球

自己写吧

7-22 老虎机

同上

7-23 正交性

模拟

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 100010;
int a[N];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++){
        int x;
        scanf("%d",&x);
        a[i]*=x;
        a[i]+=a[i-1];
    }
    
    if(a[n]==0)cout<<"Yes";
    else cout<<"No";
    return 0;
}

7-24 删除不喜欢的数字

模拟

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 100010;
int a[N];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        int x;
        scanf("%d",&x);
        if(x==m)continue;
        printf("%d ",x);
    }
    return 0;
}

7-25 锦标赛

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 20;
int n;
int res1,res2;
int d1,d2;
int main()
{
    cin>>n;
    n = 1<<n;
    for(int i=1;i<=n;i++){
        int x;
        scanf("%d",&x);
        if(i<=n/2){
            if(res1<x){
                res1=x;
                d1=i;
            }
        }else{
            if(res2<x){
                res2=x;
                d2=i;
            }
        }
    }
    if(res1>res2)cout<<d2;
    else cout<<d1;
    //if(a[n]==0)cout<<"Yes";
    //else cout<<"No";
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS 列表和列表项

文章目录一、什么是列表和列表项&#xff1f;二、列表和列表项初始化三、列表项插入四、列表项末尾插入五、列表项的删除六、列表的遍历七、列表项的插入和删除实验一、什么是列表和列表项&#xff1f; 1. 列表 列表是 FreeRTOS 中的一个数据结构&#xff0c;概念上和链表有点…

【九】springboot启动源码 - refreshContext结束后

afterRefresh 钩子函数,默认实现为空 listeners.started 执行实现SpringApplicationRunListener的started回调 通用处理 this.listeners在之前已经通过SPI加载 获取SpringApplicationRunListener的实现类 EventPublishingRunListener 推送ApplicationStartedEvent事件…

红队内网靶场

文章目录开篇介绍靶场介绍靶场下载以及配置Tomcat Get Shell突破DMZ防火墙拿下域内成员机器将内网机器上线到CS使用Adfind侦察子域信息控制子域DCRadmin登录子域进行权限维持(白银票据/ACL)子域bloodhound获取父域信息分析子域Krbtgt密钥创建跨域金票Dcsync父域PTH父域DC准备打…

Activity启动模式

Activity的启动模式 首先activity启动之后是放在任务栈中的&#xff0c;task stack&#xff0c;既然是栈&#xff0c;遵循先进后出原则。有玩家比喻oncreate是入栈&#xff0c;onDestroy是出栈。 同一个APP中&#xff0c;不同的activity可以设置为不同的启动模式。在manifest…

【深一点学习】我用CPU也能跟着沐神实现单发多框检测(SSD),从底层了解目标检测任务的实现过程,需要什么样的方法调用。《动手学深度学习》Yes,沐神,Yes

目标检测近年来已经取得了很重要的进展&#xff0c;主流的算法主要分为两个类型[1611.06612] RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation (arxiv.org)&#xff1a;&#xff08;1&#xff09;two-stage方法&#xff0c;如R-CNN系算法…

centos7.2-rh7.2安装docker的问题

目录1. 环境2. 问题排查2.1 failed to start daemon: error initializing graphdriver: overlay2: the backing xfs filesystem2.2 centos7.2内核bridge.ko问题2.3 kernel:unregister_netdevice: waiting for ... to become free. Usage count 12.4 离线安装依赖问题1. 环境 …

AC7811—FOC无感控制代码调试与测试

目录 滑膜观测器调试 开环调试 闭环调试 IF VF DIRECT IF VF DIRECT 磁链观测器 一次/两次预定位 脉冲注入 高频注入 直线or五段曲线 滑膜观测器调试 开环调试 PWM0 两通道接示波器后&#xff0c;屏幕上打印的是开环给定同步转速积分电角度和滑模观测器估计转子电…

【C++】从string开始了解STL

文章目录1.初识STL1.什么是STL2.STL的版本3.STL的六大组件2.string1.string类模板2.string类的构造函数3.string内部数据访问4.string的遍历5.string类的迭代器6.string的Capacity相关接口7.string的修改相关接口8.其他接口1.初识STL 1.什么是STL STL(standard template liba…

Kotlin在Android开发中的应用与实践

Kotlin在Android开发中的应用与实践 通过本篇文章你将了解到下面内容&#xff1a; 介绍Kotlin语言&#xff1a;简述Kotlin语言的背景、特点和优势&#xff0c;为什么Kotlin在Android开发中变得越来越流行。 Kotlin与Java的对比&#xff1a;对比Kotlin和Java在语法、编程范式、…

规模化敏捷框架:Scrum@Scale

Scrum 敏捷方法有助于团队成员之间更有效地合作&#xff0c;实现共同的业务目标。但是当一个组织想要扩展 Scrum 方法到更多的团队时&#xff0c;应该如何实施&#xff1f;Scrum 仅为单团队开发、交付和运维产品提供了一个框架&#xff0c;而 ScrumScale&#xff08;SS&#xf…

多模态 AI 开发者召集令|4月22日@深圳,等你参加!

四月春暖花开&#xff0c;Jina AI 联合好朋友 OpenMMLab 一起&#xff0c;共同举办第八期「中文社区面对面」活动&#xff0c;将于 4 月 22 日&#xff08;周六&#xff09;下午在 Alpha Bay 深圳智汇港湾孵化器举行。本活动也得到了亚马逊云科技 User Group深圳、Xtreme1 的大…

C++ std::cin

C std::cin相关概念使用1. 一个常见的使用场景&#xff1a;2. 用于静态对象的构造和析构函数中&#xff0c;访问标准输入/输出流是安全的。3. 作为 *while* 语句的条件4. 配合 *get*、*getline* 使用相关概念 istream 一个class&#xff0c;提供输入操作。cin 一个 istream 对…

javaweb游戏代练网站设计与实现

目 录 第1章 绪论 5 1.1 选题的依据及意义 5 1.2 国内外现状研究 6 1.3 研究目的 6 第2章 设计技术与开发环境 7 2.1 相关技术介绍 7 2.1.1 JSP简介 7 2.1.2 B/S模式分析 8 2.1.3 mysql简介 9 2.2 开发环境介绍 9 2.2.1 Myeclipse简介 9 2…

魔镜魔镜告诉我,如何挑选靠谱的硬件方案!

随着传统健身房半胁迫顾客进行数万元的预售、办卡后&#xff0c;分分钟遁地跑路的新闻已经在大家心中留下了深深的烙印&#xff0c;再加上良莠不齐的教练、器材质量、永远无法抢到的健身课、以及办卡之后就被“打入冷宫”……可真是苦了每一个无处安放的运动灵魂啊&#xff01;…

XCODE14生成的APP制作成IPA

1.用XCODE14生成Archives存档包 2.在Finder中显示 3.显示包内容 4.双击进入Products 5.双击进入Applications 6.复制生成的.App文件到Playload文件夹 压缩Playload文件夹成zip 重命名zip为ipa 在弹出 的 提示中 选择 Use .ipa 重命名IPA文件为自己的命名

【vscode】SSH连接远程服务器Host/容器

目录 1. 连接远程服务器 1.1 确保远程服务器Host上ssh打开 1.2 本地主机 1.2.1 安装ssh-client 1.2.2 安装vscode插件 1.2.3 通过密钥完成身份认证 1.2.4 SSH连接配置 2. Python代码跳转 3. C代码跳转 4. Git 历史记录 5. 连接远程服务器上的Docker容器&#xff08;易…

radmin远程控制软件怎么样,有没有替代品

Radmin 是流行的、屡获殊荣的安全远程控制软件&#xff0c;它使您能够在远程计算机上实时工作&#xff0c;就像使用它自己的键盘和鼠标一样。 您可以从多个地方远程访问同一台计算机&#xff0c;是网络和管理类别中流行的远程桌面工具。 Radmin 是外国软件&#xff0c;在国内使…

Unity协程和线程的区别深入理解(附实验展示)

Unity协程和线程的区别附实验展示写在前面协程、进程、线程的概念进程与线程的区别协程与线程的区别实验1&#xff1a;协程中执行普通函数实验2&#xff1a;协程中开启另一个协程实验3&#xff1a;协程中开启WWW请求实验4&#xff1a;一个脚本中多个协程访问临界资源实验5&…

车载以太网基础篇之Eth Driver

车载以太网基础篇之Ethernet Driver前言 首先&#xff0c;请问大家几个小小问题&#xff0c;你清楚&#xff1a; 你知道Eth Driver模块的主要作用是什么吗&#xff1f;EthDriver与以太网控制器&#xff0c;以太网收发器&#xff0c;都有哪些关系呢&#xff1f;Eth Driver的常…

java虚拟机反射机制

&#xff08;1&#xff09;Java虚拟机反射机制的定义&#xff1f; Java反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功…