【河北经贸大学蓝桥杯热身赛】

2023-10-25 14:30

本文主要是介绍【河北经贸大学蓝桥杯热身赛】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

B 奇怪的数字对

第二题题目有点问题,可以重复取相同的数

#include<iostream>
using namespace std;
int gcd(int a,int b)
{if(b==0){return a;}elsereturn gcd(b,a%b);
}
int main()
{int res=0;for(int i=1;i<=2022;i++){for(int j=1;j<=2022;j++){if(gcd(i,j)==1)res++;}}cout<<res<<endl;
}

C 蛇形填数

提供赛时两位同学的做法

#include <bits/stdc++.h>
#define rep(i, a, b) for(int i = a; i <= b; i ++ )
#define deb2(x, y) cout << #x << '=' << x << ',' << #y << '=' << y <<endlusing namespace std;const int N = 1e5 + 10, mod = 1e9 + 7;
typedef long long ll;
typedef pair<int, int> PII;void run()
{int i, j;	ll sum = 1;for (i = 1; i <= 17; i ++ ) sum += 4*i;cout <<sum<<endl;
}signed main()
{ios::sync_with_stdio(false), cin.tie(0);cout << fixed; cout.precision(18);int T = 1;//cin >> T;while(T -- ) run();}
#include <bits/stdc++.h>using namespace std;
int a[110][110];
void solve()
{int x = 1, cnt = 0;for(int i = 1; i <= 100; i++){cnt++;if(cnt % 2 == 0){for(int j = 1, k = i; j <= i && k >= 1; j++, k--){a[j][k] = x++;	}}else{for(int j = i, k = 1; j >= 1 && k <= i; j--, k++){a[j][k] = x++;	}}}cout << a[18][18] << endl;
}signed main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int T = 1;//cin >> T;while(T--)solve();return 0;
}

E 钞票探测

直接暴力即可,注意一不是素数

#include <bits/stdc++.h>
#define rep(i, a, b) for(int i = a; i <= b; i ++ )
#define deb2(x, y) cout << #x << '=' << x << ',' << #y << '=' << y <<endlusing namespace std;const int N = 1e5 + 10, mod = 1e9 + 7;
typedef long long ll;
typedef pair<int, int> PII;int a[N];void run()
{int i, j;int ans = 0;	for (i = 1; i <= 2022; i ++ ) {int flag = 0;for (j = 2; j*j <= i; j ++) {if(i % j == 0) {flag = 1;break;}}if(!flag)ans += 1;}cout << 306 << endl;
}signed main()
{ios::sync_with_stdio(false), cin.tie(0);cout << fixed; cout.precision(18);int T = 1;//cin >> T;while(T -- ) run();}

F 小贸的蓝桥杯成绩

注意要四舍五入,以下两种写法均可

#include <bits/stdc++.h>
#define rep(i, a, b) for(int i = a; i <= b; i ++ )
#define deb2(x, y) cout << #x << '=' << x << ',' << #y << '=' << y <<endlusing namespace std;const int N = 1e4 + 10, mod = 1e9 + 7;
typedef long long ll;
typedef pair<int, int> PII;int a[N];void run()
{cout << fixed << setprecision(0);int n; cin >>n;int ans = 0;int pass = 0, good = 0;for(int i = 1; i <= n; i ++) {int x; cin >> x;if(x >= 60) pass += 1;if(x >= 85) good += 1;}double ans1 = round(pass*100.0/n);double ans2 = round(good*100.0/n);cout << ans1 << "%\n";cout << ans2 << "%";
}signed main()
{ios::sync_with_stdio(false), cin.tie(0);cout << fixed; cout.precision(18);int T = 1;//cin >> T;while(T -- ) run();return 0;}
#include<bits/stdc++.h>using namespace std;const int N = 10010;int n;
int a[N];int main()
{cin >> n;for(int i = 0; i < n; i++)cin >> a[i];int x = 0,y = 0;for(int i = 0; i < n; i++){if(a[i] >= 60) x ++;if(a[i] >= 85) y ++;}cout << (int)((x * 1.0 / n * 100) + 0.5) << "%" << endl;cout << (int)((y * 1.0 / n * 100) + 0.5) << "%" << endl;
} 

H 取金币

简单dp,只需要给出状态转移方程即可,如果不会,可以自行百度学习

#include <bits/stdc++.h>
#define rep(i, a, b) for(int i = a; i <= b; i ++ )
#define deb2(x, y) cout << #x << '=' << x << ',' << #y << '=' << y <<endlusing namespace std;const int N = 1e3 + 10, mod = 1e9 + 7;
typedef long long ll;
typedef pair<int, int> PII;int a[N][N];
int f[N][N];void run()
{int i, j;	int n; cin >> n;for (i = 1; i <= n; i ++ ) {for (j = 1; j <= n; j ++) {cin >> a[i][j];}}for (i = 1; i <= n; i ++ ) {for (j = 1; j <= n; j ++ ) {f[i][j] = max(f[i-1][j], f[i][j-1]) + a[i][j];}}cout << f[n][n] << endl;
}signed main()
{ios::sync_with_stdio(false), cin.tie(0);cout << fixed; cout.precision(18);int T = 1;//cin >> T;while(T -- ) run();}

I 砝码称重

给出赛时两位同学的写法

#include <bits/stdc++.h>
#define rep(i, a, b) for(int i = a; i <= b; i ++ )
#define deb2(x, y) cout << #x << '=' << x << ',' << #y << '=' << y <<endlusing namespace std;const int N = 1e5 + 10, mod = 1e9 + 7;
typedef long long ll;
typedef pair<int, int> PII;int w[N];
bool f[1010][N];void run()
{int i, j;	int n, m = 0; cin >> n;for (i = 1; i <= n; i ++) cin >> w[i], m += w[i];f[0][0] = 1;for (i = 1; i <= n; i ++ ) {for(j = 0; j <= m; j ++ ) {f[i][j] = f[i-1][j] // 上一次可以成功,这次也能成功 ||f[i-1][abs(j-w[i])] // 加上w[i],注意这里取绝对值||f[i-1][j+w[i]]; // 减去w[i]}}int ans = 0;for (i = 1; i <= m; i++ ) ans += f[n][i];cout << ans << endl;
}signed main()
{ios::sync_with_stdio(false), cin.tie(0);cout << fixed; cout.precision(18);int T = 1;//cin >> T;while(T -- ) run();}
#include<bits/stdc++.h>using namespace std;const int N = 230 , M = 2e5 + 50 , B = 1e5 + 10;bool f[N][M];//f(i,j)表示只从前i个数中选,和为j的方案,属性:是否为空 
int sum;
int n;
int a[N]; 
int cnt;int main()
{cin>>n;//砝码有正负两个值 for(int i = 1;i <= 2 * n;i ++){cin>>a[i];i ++;a[i] = -a[i - 1];sum += a[i - 1];//正的数之和 }//初始化,0肯定可以凑成 for(int i = 0;i <= 2 * n;i ++)f[i][B] = true; for(int i = 1;i <= 2 * n;i ++)//2 * n个物品 for(int j = -sum;j <= sum;j ++)//可以称量的范围 {//可以选 if( j - a[i] >= -sum && j - a[i] <= sum ) f[i][j + B] = f[i][j + n + B] + f[i - 1][j - a[i] + B];//不选f[i][j + B] = f[i][j + B] + f[i - 1][j + B];   	} //ansfor(int j = 1;j <= sum;j ++)if(f[2 * n][j + B] == true)//可以凑出cnt ++;cout<<cnt;return 0;
} 

J 荧光夜跑来啦

dijstar模板题,有很多种写法,如果不会可以学一下

#include <bits/stdc++.h>
#define rep(i, a, b) for(int i = a; i <= b; i ++ )
#define deb2(x, y) cout << #x << '=' << x << ',' << #y << '=' << y <<endlusing namespace std;const int N = 1e5 + 10, mod = 1e9 + 7;
typedef long long ll;
typedef pair<int, int> PII;int h[N], e[N*2], ne[N*2], w[N], idx;void add(int a, int b, int c) {e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx++ ;
//	cout<<idx-1 << ' ' << a << ' ' << e[idx-1] << ' ' << w[idx-1] <<endl; 
}int d[N], st[N];
void dij() {int i, j;memset(d, 0x3f, sizeof d);memset(st, 0, sizeof st);d[1] = 0; priority_queue<PII, vector<PII>, greater<PII>> q;q.push({d[1], 1});while(!q.empty()) {auto t = q.top(); q.pop();int x = t.second;if(st[x]) continue;st[x] = 1;for (i = h[x]; i != -1; i = ne[i]) {int y = e[i];if(st[y]) continue;if(d[y] > d[x] + w[i]) {d[y] = d[x] + w[i];q.push({d[y], y});}}}
}void run()
{int i, j;	int n, m; cin >>n >>m;memset(h, -1, sizeof h);while(m -- ) {int a, b, c; cin >> a >> b >> c;
//		deb2(a, b);add(a, b, c);
//         add(b, a, c);}dij();if(d[n] <0x3f3f3f3f)cout << d[n] << endl;else cout << "impossible";
}signed main()
{ios::sync_with_stdio(false), cin.tie(0);cout << fixed; cout.precision(18);int T = 1;//cin >> T;while(T -- ) run();}/*
3 3
1 2 5
2 3 3
1 3 9
*/

这篇关于【河北经贸大学蓝桥杯热身赛】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283205

相关文章

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

哈理工新生赛热身赛解题报告

本次热身赛6道题目,由于没有官方解题报告,自己写了一个山寨版的解题报告,希望对学弟学妹有所帮助 期中两到签到题该校OJ上没有挂出,我在田大神的帮助下a掉了其它四题,解题报告如下所示 线段 Time Limit: 1000 MSMemory Limit: 32768 K Total Submit: 10(6 users)Total Accepted: 7(6 users)Rating: S

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开

蓝桥杯:整数删除

// 蓝桥杯整数删除.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<stdio.h>#define MAX 100void findmin(int a[],int n,int& pos){int min=a[0];pos=0;//pos=0我开始忘了,特别注意

第十五届蓝桥杯图形化省赛题目及解析

第十五届蓝桥杯图形化省赛题目及解析 一. 单选题 1. 运行以下程序,角色会说( )? A、29     B、31     C、33     D、35 正确答案:C 答案解析: 重复执行直到m>n不成立,即重复执行直到m<=n。所有当m小于或者 等于n时,循环结束。循环过程中变量m与变量n的变化如下表: 通过上述表格可知,循环到第五次循环结束。m的值为14,n的值为19

第八届蓝桥杯 最大公共子串(动态规划)

标题:最大公共子串 最大公共子串长度问题就是: 求两个串的所有子串中能够匹配上的最大长度是多少。 比如:"abcdkkk" 和 "baabcdadabc", 可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。 下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。 请分析该解法的思路,并补全划线部分缺失的代码。 #include <stdio.h

蓝桥杯第八届 方格分割(dfs)

标题:方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。   观察可得他是一个中心对称图形,我们只需要搜索它的对称线即可。我们可以把对称线抽象为从(

上海邀请赛之热身赛2_2013成都邀请赛

先写总结。 感觉这次跟scf和sjc组队有种瞬间碉堡了的感觉,虽然是临时组建的队伍凑齐准备去上海参加邀请赛,从这次比赛磨练配合。 今天比赛难度比前天那次的难度低,感觉更适合我们来练习。 话说好像比赛提早了5分钟,我们三个人都不知道,五分钟后一看A题学长已经A了,一想肯定特水。。。我就没看题,sjc和scf两个看了题,scf就开始敲了,我刚开始负责翻译题,虽然我英语是个渣渣。。。没办法,没翻译