0
点赞
收藏
分享

微信扫一扫

基于SpringBoot的会员制医疗预约服务管理信息系统

Gaaidou 03-25 20:30 阅读 2

第二次做蓝桥模拟赛的博客记录,可能有很多不足的地方,如果大佬有更好的思路或者本文中出现错误,欢迎分享思路或者提出意见

答案:6,试除法暴力枚举即可


答案:4186,简单的双循环枚举


答案:5503,循环内套一个判定质数的函数就行了


答案:344,同余定理或者高精度除法都OK


 思路:二维前缀和找最大子矩阵板子,核心代码如下

    for (int i = 1; i <= 30; ++i) {
        for (int j = 1; j <= 20; ++j) {
            cin >> x;
            sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + x;
        }
    }
    for (int i = 5; i <= 30; ++i) {
        for (int j = 5; j <= 20; ++j) {
            res = max(res, sum[i][j] - sum[i][j - 5] - sum[i - 5][j] + sum[i - 5][j - 5]);
        }
    }

答案:171248


#include<iostream>
using namepspace std;

int main(){
    int n;
    cin >> n;
    n = (n % 3 == 0) ? (n / 3) : (n / 3 + 1);
    cout << n;
}

#include<iostream>
using namepspace std;

int main(){
    string s;
    cin >> s;
    int res{};
    for (char c : s) {
        if ((c - '0') % 2 == 1) 
            res++;
    }
    cout << res;
}

这俩题太简单了咱们过咯


#include <iostream>
#include <vector>
using namespace std;

int main()
{
	int n;
	cin >> n;
	vector<int> a(n);
	for (int i = 0;i<n;i++) 
		cin >> a[i];
	int max_ = 0,min_ = 1e5 + 10;
	for (int i = 1; i < n - 1; ++i) {
		if (a[i] < a[i - 1] && a[i] < a[i + 1] && a[i] > max_) 
			max_ = a[i];
		if (a[i] > a[i - 1] && a[i] > a[i + 1] && a[i] < min_) 
			min_ = a[i];
	}
	return 0;
}

#include <iostream>
using namespace std;

const int N = 1e3 + 10;
char a[N][N];
int m, n, res;

int func(int x, int y) {
	int cnt = 0;
	for (int i = 1;; i++) {
		if (x - i < 0 || y - i < 0 || x + i >= n || y + i >= m) {
			return cnt;
		}
		if (a[x][y] == a[x - i][y - i] && a[x][y] == a[x - i][y + i] && a[x][y] == a[x + i][y]) {
			cnt++;
		} else {
			return cnt;
		}
	}
}

int main() {
	cin >> m >> n;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> a[i][j];
		}
	}
	for (int i = 1; i < n - 1; i++) {
		for (int j = 1; j < m - 1; j++) {
			res = max(func(i, j), res);
		}
	}
	cout << res;
	return 0;
}

 三个方向同时判断,记录长度


 经典的台阶问题,小变种了一下下,理论上算线性dp

#include <iostream>
#include <vector>
using namespace std;

const int mod = 1e9 + 7;

int main()
{
	int n, a, b, c;
	cin >> n >> a >> b >> c;
	vector<int> dp(n + 1);
	dp[0] = 1;
	for (int i = a; i <= n; i++) {
		dp[i] = (dp[i] + dp[i - a]) % mod;
		if (i >= b) 
			dp[i] = (dp[i] + dp[i - b]) % mod;
		if (i >= c) 
			dp[i] = (dp[i] + dp[i - c]) % mod;
	}
	cout << dp[n];
	return 0;
}
举报

相关推荐

教师档案管理信息系统

管理信息系统MIS复习总结

0 条评论