3.31【蓝桥杯】第十一届c++B组第二场

A门牌制作

在这里插入图片描述
答案是624,简单的模拟。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

int res, ans;

int check(int x)
{
	ans = 0;
	while(x)
	{
		if(x % 10 == 2) 
			ans++;
		x /= 10;
	}
	return ans;
}

int main(void)
{
	int n = 2020;
	for(int i = 1; i <= n; i++)
	{
		check(i);
		res += ans;
	} 
	cout<< res << endl;
	return 0;
}

B既约分数

在这里插入图片描述
错误答案呜呜;2496110
错误代码…

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

int res = 0;

bool check(int x, int y)
{
	int t = max(x,y);
	for(int i = 2; i*i <= t; i++)
	{
		if(x % i == 0 && y % i == 0)
			return false;
	}
	return true;
}

int main(void)
{
	int n = 2020;
	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= n; j++)
		{
			if(i == j)
				continue;
			if(check(i,j))
			{
				//cout<< i << " " << j << endl;
				res ++;
			}
		} 
	cout<< res << endl;
	return 0;
}

正确答案是2481215.
代码如下。

#include< bits/stdc++.h >
using namespace std;

int res;
int main()
{
  for(int i = 1; i <= 2020; i++)
    for(int j = 1; j <= 2020; j++)
      if(_ _gcd(i, j) == 1)
        res++;
  cout<< res << endl;
  return 0;
}

再来一份正确代码:

#include<bits/stdc++.h>
using namespace std;

int gcd(int a,int b)
{
	if(b == 0)
		return a;
	return gcd(b,a%b);
}

//扩展的哦,可以省 
int lcm(int a,int b)
{
	return a*b/gcd(a,b);
}

int main(void)
{
	int res = 0;
	for(int i = 1; i <= 2020; i++)
		for(int j = 1; j <= 2020; j++)
			if(gcd(i,j) == 1)
				res++;
	cout<< res << endl;
	return 0;
}

C蛇形填数

在这里插入图片描述
答案是761,正确。
excel大法好
在这里插入图片描述

D跑步锻炼

在这里插入图片描述
答案是8879,正确。
代码如下:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

int res;
int days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

bool is_leap(int y)
{
	if(y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
		return true;
	return false;
}
int month_day(int y,int m)
{
	if(m == 2)
		return is_leap(y) + days[2];
	return days[m];
}

int check(int y, int m, int d, int w)
{
	if(d == 1 || w == 1)
		res += 2;
	else
		res ++;
	cout<< y << " "<< m << " " << d <<" "<< w << " "<< res << endl;
	return res;
}

int main(void)
{
	int year = 2000, month = 1, day = 1, week = 6;
	for(year = 2000; year <= 2020; year++) 
	{
		for(month = 1; month <= 12; month++)
		{
			for(day = 1; day <= month_day(year,month); day++)
			{
				check(year, month, day, week);
				week++;
				if(day > month_day(year,month))
					day = 1, month++;
				if(month > 12)
					year++, month = 1;
				if(week > 7)
					week = 1;
			}
			if(year == 2020 && month == 10 && day == 2)
				break;
		}
	}
	cout<< res << endl;
	return 0;
}

E七段码

在这里插入图片描述
总共的情况也就100多种,感觉可以手算。

F

在这里插入图片描述
1
AC

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

int count1, count2;

int main(void)
{
	int n;
	cin>> n;
	
	int sum = n;
	while(n--)
	{
		int x;
		cin>> x;
		if(x >= 60)
			count1 ++;
		if(x >= 85)
			count2 ++;
	}
	printf("%.0lf%%\n", count1*1.0/sum *100);
	printf("%.0lf%%\n", count2*1.0/sum *100);
	return 0;
}

G回文日期

在这里插入图片描述
在这里插入图片描述

#include<iostream>
using namespace std;

int num1[105],num2[105],num3[105];
int day[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

bool check_a(int n)
{
	int i = 1;
	while(n)
	{
		num1[i] = n % 10;
		n /= 10;
		i++;
	}
	if(num1[1]==num1[8] && num1[2]==num1[7] && num1[3]==num1[6] && num1[4]==num1[5])
		return true;
	return false;
}

bool check_b(int n)
{
	int j = 1;
	while(n)
	{
		num2[j] = n % 10;
		n /= 10;
		j++;
	}
	if(num2[1]==num2[8] && num2[2]==num2[7] && num2[3]==num2[6] && num2[4]==num2[5])
		if(num2[1]==num2[3] && num2[2]== num2[4] && num2[1]!=num2[2])
			return true;
	return false;
}

bool is_leap(int year)
{
	if(year%4 == 0 && year%100 != 0 || year%400 == 0)	
		return true;
	return false;
} 
int dayofmonth(int year,int month)
{
	if(month == 2)
		return is_leap(year)+28;
	return day[month];
}
bool check_c(int n)
{
	int year = n / 1000;
	
	int k = 1;
	while(n)
	{
		num3[k] = n % 10;
		n /= 10;
		k++;
	}
	int month = num3[4]*10+num3[3];
	if(month > 12)
		return false;
	
	int day = num3[2]*10 + num3[1];
	if(day <= dayofmonth(year,month))
		return true;
	return false;
}

int main(void)
{
	int n;
	cin>> n;
	
	int flag = 0;
	while(1)
	{
		n++;
		if( !check_c(n) )
			continue;
		
		if( check_a(n) && flag == 0 )
		{
			cout<< n << endl;
			flag = 1;
		}	
		if( check_b(n) )
		{
			cout<< n;
			return 0;
		}
	}
	return 0;
}

H子串分值和

在这里插入图片描述
在这里插入图片描述
过50%的数据

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

int a[100010];
int res; 

int main(void)
{
	string s;
	cin>> s;
	
	for(int i = 0; s[i]; i++) //起始位置 
	{
		for(int j = i; s[j]; j++) //终止位置 
		{
			for(char c = 'a'; c != 'z'+1; c++)
				a[c-'0'] = 0;
			for(int k = i; k <= j; k++)
				a[s[k]-'0']++;
			for(char c = 'a'; c != 'z'+1; c++)
			{ 
				if(a[c-'0'] != 0)
					res++;
			}
		}
	}
	cout<< res << endl;
	return 0;
}

I平面切分

J字串排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以通过以下步骤安装libsvm 3.31: 1. 首先,您可以从libsvm***libsvm的扩展包。您可以选择适合您的操作系统的版本,并下载zip文件。 2. 下载完成后,解压缩zip文件。您可以将解压缩后的文件夹放在您选择的位置。 3. 在解压缩后的文件夹中,您可以找到libsvm的主要文件和文件夹。其中包括libsvm.jar和wlsvm.jar等必需的文件。您可以将这些文件复制到您的项目或工程目录中,以便在使用libsvm时可以引用它们。 4. 此外,您还可以在解压缩后的文件夹中找到一些预编译的二进制文件,例如libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64和svmpredict.mexw64等。这些文件可以用于MATLAB等编程语言的集成。如果您打算在MATLAB中使用libsvm,您可以将这些文件复制到MATLAB的工作目录中,以便在MATLAB中调用它们。 5. 安装完成后,您可以根据libsvm的使用说明进行配置和调用。您可以在libsvm的官方主页上找到详细的使用文档和示例代码,以帮助您开始使用libsvm进行机器学习和数据分类任务。 请注意,以上是一般的安装步骤,具体的安装步骤可能会因操作系统和使用环境的不同而有所差异。建议您在安装之前参考libsvm的官方文档和使用说明,以确保正确安装和使用libsvm。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [weka 集成LibSVMm所需的jar(wlsvm.zip),另附libsvm.zip和liblinear.zip](https://download.csdn.net/download/qq_42988711/87906163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SVM之Libsvm工具包的安装教程](https://blog.csdn.net/qq_43493562/article/details/110918276)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [[Matlab]在Matlab中安装与使用LibSVM工具箱(小白指南)](https://blog.csdn.net/zytjasper/article/details/103168354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qing小星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值