2021蓝桥杯国赛B组C++——游记

2021蓝桥杯B组国赛

2021.6.9更
  • 成绩出了,二等,本菜鸡觉得愧对自己OI生涯

前言

因为学校停电,我们差点去网吧打蓝桥杯,但这监考方式太离谱了,要是想作弊就是轻轻松松,现在在怀疑自己会不会因为这拙劣的监考方式失去国奖。这次国赛题目确实不难,感觉甚至没有省赛的难度,至少每个题我都能写出暴力解法。

A 带宽

  • 曾经和舍友讨论过宿舍几百Mbps的宽带,为什么感受不到它的速度在哪,隐隐约约记得是除以8

B 纯质数

  • 1e7的数据范围,怎么搞都不会挂吧
#include
using namespace std;
int is(int x){
   
	if(x == 1)return 0;
	if(x == 2 || x == 3)return 1;
	for(int i = 2; i * i <= x; i++){
   
		if(x % i == 0)return 0;
	}
	return 1;
}
int main(){
   
	long long ans = 0;
	for(int i = 1; i <= 20210605; i++){
   
		int now = i;
		int flag = 1;
		if(now / 10000000 == 1)continue; 
		while(now){
   
			if(!is(now % 10)){
   
				flag = 0;
				break;
			}else now /= 10;
		}
		if(flag){
   
			if(is(i)){
   
				ans++;
			}
		}
	}
	cout<<ans<<endl;
} 

C 完全日期

  • 考场上隐隐约约记得java有Date这个类,结果把API查遍了,每找到怎么生成下一个日期!找了二十多分钟,开始后悔没有好好学英语,果断下一题。写完所有大题的暴力,回来一看,好像挺好写的,977大概是这个结果吧
#include
#include
#include
using namespace std;

int main(){
   
	long long ans = 0;
	for(int i = 2001; i <= 2002; i++){
   
		for(int j = 1; j <= 12; j++){
   
			for(int k = 1; k <= 31; k++){
   
				if(j == 4 || j == 6 || j == 9 || j == 11){
   
					if(k == 31)break;
				}
				if(j == 2){
   
					if(k == 29)break;
				}
				int tem = 0;
//				cout<
				int nowi = i, nowj = j, nowk = k;
				while(nowi){
   
					tem += nowi % 10;
					nowi /= 10;
				}
				while(nowj){
   
					tem += nowj % 10;
					nowj /= 10;
				}
				while(nowk){
   
					tem += nowk % 10;
					nowk /= 10;
				}
				int sq = sqrt(tem);
				if(sq * sq == tem){
   
					cout<<i<<" "<<j<<" "<<k<<endl;
					ans++;
				}
			}
		}
	}
	cout<<ans<<endl;
}
 

D 最小权值

  • 此题目与我无关

E 大写

  • 这题目走错片场了吧,这应该是我们学校c语言考试的难度才对!
#

你可能感兴趣的:(算法)