第十四届蓝桥杯三月真题刷题训练——第 1 天

杨枝 杨枝
C/C++领域新星创作者
2023-03-04 08:39:59

第一题,原本是暴力的,~~偶然看到可以dp~~

#include <bits/stdc++.h>
#define mpr make_pair
#define pb push_back
#define fi first
#define se second
#define endl '\n'

using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF = 0x3f3f3f3f;
const int N  = 20190324+10;
int dp[N];


void solve(){
	dp[1] = dp[2] = dp[3] = 1;
	for(int i = 4;i <= 20190324;i++)
	{
		dp[i] = (dp[i-1] + dp[i-2] + dp[i-3]) % 10000;
	}
	cout << dp[20190324];
}

void run()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
}

int main() {
	run();
	int t;
	t = 1;
	
	while(t--) {
		solve();
	}

	return 0;
}

第二题可以复习一个线性筛

#include <bits/stdc++.h>
#define mpr make_pair
#define pb push_back
#define fi first
#define se second
#define endl '\n'

using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF = 0x3f3f3f3f;
const int N  = 1e8 + 10;

int primes[N];
int st[N];
int cnt,res;//统计质数的个数 

void get_primes(int n)
{
	//枚举质数
	for(int i = 2;i <= n;i++) 
	{
		if(!st[i]) primes[res++] = i;
		//用当前有的质数去筛选质数
		for(int j = 0;primes[j] <= n /i;j++) 
		{
			//标记当前质数的倍数
			st[primes[j] * i] = true;
			if(i % primes[j] == 0) break;
		}
	}
}


void solve(){
	get_primes(N);
	cout << res << endl;
//	for(int i = 0;i < res;i++)
//	{
//		cout << primes[i] << endl;
//	}
	cout << primes[2018];
}

void run()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
}

int main() {
	run();
	int t;
	t = 1;
	
	while(t--) {
		solve();
	}

	return 0;
}

 

第三题属于模拟,~~好像abc的某次比赛题 ~~,注意题目问的是能够获得的饮料数量

#include <bits/stdc++.h>
#define mpr make_pair
#define pb push_back
#define fi first
#define se second
#define endl '\n'

using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF = 0x3f3f3f3f;
const int N  = 1e5 + 10;
int n,ans;

void solve(){
	cin >> n;
	int back = n; 
	while(n)
	{
		if(n < 3)
		{
			cout << ans + back << endl;
			return;
		}
		else
		{
			n -= 3;//喝掉三瓶
			//兑换一瓶
			ans ++;
			n += 1;//总共拥有的饮料+1 
		}
	}
}

void run()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
}

int main() {
	run();
	int t;
	t = 1;
	
	while(t--) {
		solve();
	}

	return 0;
}

周末快乐~~ 

...全文
29 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,819

社区成员

发帖
与我相关
我的任务
社区描述
和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

 刷题!

试试用AI创作助手写篇文章吧