第十届蓝桥杯大赛个人赛省赛(软件类) CC++ 研究生组2.0

A立方和

#include<iostream>
#include<cmath>
using namespace std;
int main(){int n, t, flag, x;long long ans = 0;for(int i = 1; i <= 2019; i++){t = i;flag = 0;while(t && !flag){x = t % 10;if(x == 2 || x == 0 || x == 1 || x == 9) flag = 1;t /= 10;}if(flag) ans += (long long)pow(i, 3);}printf("%lld", ans);//4097482414389return 0;
}

打卡题

B字串数字

#include<iostream>
#include<string>
using namespace std;
int main(){string s = "LANQIAO";
//	string s = "LQ";long long power = 1, ans = 0;for(int i = s.size() - 1; i >= 0; i--){ans += (s[i] - 'A' + 1) * power;power *= 26;}printf("%lld", ans);//3725573269return 0;
}

进制转换

C质数

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
bool isPrime(ll n){ll sqr = sqrt(n);for(int i = 2; i <= sqr; i++){if(n % i == 0) return false;}return true;
}
int main(){ll x = 2, cnt = 0, ans;while(cnt < 2019){if(isPrime(x)){cnt++;ans = x;}x++;}printf("%lld", ans);//17569return 0;
}

类似于质数打表

D最短路

6
在这里插入图片描述


适当手算,灵活些

E RSA解密

没思路
尝试先把p,q试出来

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
int main(){ll n = 1001733993063167141LL, sqr = sqrt(n);for(ll i = 2; i <= sqr; i++){if(n % i == 0){printf("%lld ", i);if(i * i != n) printf("%lld ", n / i);}}return 0;
}

再试着把e试出来,但太大了不可行

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
bool isPrime(ll n){ll sqr = sqrt(n);for(int i = 2; i <= sqr; i++){if(n % i == 0) return false;}return true;
}ll gcd(ll a, ll b){if(!b) return a;return gcd(b, a % b);
}
int main(){ll p = 891234941LL, q = 1123984201LL, d = 212353, e = 471730557631LL;if(isPrime(p)) cout << "p prime" << endl;if(isPrime(q)) cout << "q prime" << endl;cout << gcd((p-1)* (q-1), d) << endl;
//	cout <<  ((p-1)* (q-1) - 1) / d << endl;while((d * e) % ((p-1)* (q-1)) != 1){e++;}cout << e;return 0;
}

先鸽一下这题,后续有时间了用python算出来e再说

F 斐波那契额序列与黄金分割

先打印前一百个观察下数据,发现大于等于19后在保留八位小数的基础上就稳定在一个比值,符合提示的趋近于黄金分割。而且当数值过大时,比值会出现负数的情况,显然异常。考虑可能是因为斐波那契额数列增长速度过快,超出了int型范围。才100就超了,给定的n范围更超,索性利用后续在规定的精度内稳定于一个比值,直接打印不再计算。

#include<iostream>
using namespace std;
typedef long long ll;
int main(){ll f1 = 1, f2 = 1, f, n;for(int i = 3; i <= 100; i++){f = f1 + f2;printf("%d %.8f\n", i - 1, 1.0 * f2 / f);f1 = f2;f2 = f;}return 0;
}

在这里插入图片描述
在这里插入图片描述
提交程序为

#include<iostream>
using namespace std;
typedef long long ll;
int main(){ll f1 = 1, f2 = 1, f, n;scanf("%lld", &n);if(n > 20) printf("0.61803399");else{for(int i = 3; i <= n + 1; i++){f = f1 + f2;if(i == n + 1)printf("%.8f", 1.0 * f2 / f);f1 = f2;f2 = f;}}return 0;
}

一个测试点没过,忽略了n==2的情况

#include<iostream>
using namespace std;
typedef long long ll;
int main(){ll f1 = 1, f2 = 1, f, n;scanf("%lld", &n);if(n > 20) printf("0.61803399");else{for(int i = 2; i < n + 1; i++){f = f1 + f2;f1 = f2;f2 = f;}printf("%.8f", 1.0 * f1 / f2);}return 0;
}

G扫地机器人

不知道如何下手


走廊长度n为105,根据数据范围需要选择nlogn以内的算法。花费时间最短2,最长2*n,考虑二分处理。
在花费时间t内,判断是否能够扫完n个格子。用贪心,尽量让机器人扫其周围的格子且平均得划分。把机器人的位置升序排序,看机器人在时间t内,能够覆盖的右边界能否相互衔接上且最后一个机器人能够覆盖到走廊有边界。

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1e5 + 10;
int a[maxn], n, k, l, r, mid;bool judge(int len){int r = 0;//上一个机器人能扫到的右边界for(int i = 0; i < k; i++){if(a[i] - len > r) return false;//不能衔接上,有覆盖不到的区域,则不可行else{if(a[i] < r) r = a[i] + len - 1;//在上一个机器人可覆盖的区域内else r += len;//在边界上 } }return r >= n; 
}int main(){scanf("%d%d", &n, &k);for(int i = 0; i < k; i++){scanf("%d", a + i);}sort(a, a + k);l = 0;r = n;while(l < r){mid = (l + r) / 2;if(judge(mid)) r = mid;//当前可行,尝试更短 else l = mid + 1;	//当前不可行,增加时间 }printf("%d", 2 * (l - 1)); return 0;
}

H修改数组

#include<iostream>
using namespace std;
const int maxn = 1e5 + 10, maxv = 1e6 + 1e5;
int a[maxn], flag[maxv] = {0};
int main(){int n;scanf("%d", &n);for(int i = 0; i < n; i++){scanf("%d", a + i);if(!flag[a[i]]) flag[a[i]] = 1;else {a[i] += flag[a[i]];while(flag[a[i]]) a[i]++;flag[a[i]]++;}}for(int i = 0; i < n; i++){printf("%d ", a[i]);}return 0;
}

两个测试点超时
没有充分利用flag的出现次数,还是一个个的跳且没有正确累加后续的出现次数

#include<iostream>
using namespace std;
const int maxn = 1e5 + 10, maxv = 1e6 + 1e5;
int a[maxn], flag[maxv] = {0};
int main(){int n, t;scanf("%d", &n);for(int i = 0; i < n; i++){scanf("%d", a + i);while(flag[a[i]]){t = a[i];a[i] += flag[t];flag[t]++;}flag[a[i]] = 1;}for(int i = 0; i < n; i++){printf("%d ", a[i]);}return 0;
}

I 灵能传输

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 3e5 + 10;
int a[maxn];
int main(){int t, n, flag, x, p, temp;scanf("%d", &t);while(t--){scanf("%d", &n);for(int i = 0; i < n; i++){scanf("%d", a + i);}flag = 1;while(flag){x = abs(a[0]);p = 0;for(int i = 1; i < n; i++){if(abs(a[i]) > x){x = abs(a[i]);p = i;}}if(x == 0) flag = 1;if(p == 0) p++;else if(p == n - 1) p--;temp = max(max(abs(a[p - 1] + a[p]), abs(a[p + 1] + a[p])), abs(a[p]));if(temp >= x) flag = 0;else{a[p - 1] += a[p];a[p + 1] += a[p];a[p] = -a[p];}}printf("%d\n", x);}return 0;
} 

骗了四个测试点的分。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
int main(){int n, t;scanf("%d", &t);while(t--){ll x, ansX = 0;scanf("%d", &n);vector<ll> sum(n + 1, 0);vector<ll> visit(n + 1, 0);vector<ll> ans(n + 1, 0); for(int i = 1; i <= n; i++){scanf("%lld", &x);sum[i] = sum[i - 1] + x;}ll l = sum[0], r = sum[n], lp = 0, rp = n, ansL = 0, ansR = n;//首位项的值if(l > r) swap(l, r);sort(sum.begin(), sum.end());for(int i = 0; i < n; i++){if(sum[i] == l){lp = i;break;}}for(int i = 0; i < n; i++){if(sum[i] == r){rp = i;break;}}for(int i = rp; i <= n; i += 2){//填充结果数组 ans[ansR--] = sum[i];visit[i] = 1; }for(int i = lp; i >= 0; i -= 2){ans[ansL++] = sum[i];visit[i] = 1;}for(int i = 0; i <= n; i++){if(!visit[i]) ans[ansL++] = sum[i];}for(int i = 1; i <= n; i++){if(abs(ans[i] - ans[i - 1]) > ansX) ansX = abs(ans[i] - ans[i - 1]);}printf("%lld\n", ansX);}return 0;
}

J空间跳跃

题干看起来好麻烦,蒟蒻不想做了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/298376.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

prompt 工程案例

目录 prompt 工程是什么&#xff1f; 案例 vllm 推理加速框架 prompt 工程是什么&#xff1f; prompt&#xff1a;提示词&#xff0c;也就是我们使用网页版输入给大模型的内容就叫 prompt&#xff0c;那什么是 prompt 工程呢&#xff1f; 简单理解其实就是利用编写的 prom…

3个 JavaScript 字符串截取方法

在 JavaScript 中&#xff0c;可以使用 substr()、slice() 和 substring() 方法截取字符串. substring() substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集&#xff0c;或从开始索引直到字符串的末尾的一个子集。语法如下&#xff1a; str.substring(inde…

cmake中报错undefined reference to `pthread_create‘的解决方法

出现报错&#xff1a; 解决方法 一般网上会建议在终端指令g/gcc后面增加参数-pthread,但是我们没有用到g/gcc指令. cmake的解决方法是在CMakeLists.txt文件里面增加一行. add_executable(server2 main.cpp) target_link_libraries(server2 pthread)问题就解决了

uniapp切换中英文

一、安装 npm install uni-i18n --save 二、创建中英文切换的文件 1.英文en.js文件 2.中文zh_CN.js文件 三、 main.js中引用 // Vue i18n 国际化 import VueI18n from /common/vue-i18n.min.js; Vue.use(VueI18n);// i18n 部分的配置&#xff0c;引入语言包&#xff0c;注意路…

c# wpf template itemtemplate+ListBox

1.概要 2.代码 <Window x:Class"WpfApp2.Window7"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/…

SCP 从Linux快速下载文件到Windows本地

需求&#xff1a;通过mobaxterm将大文件拖动到windows本地速度太慢。 环境&#xff1a;本地是Windows&#xff0c;安装了Git。 操作&#xff1a;进入文件夹内&#xff0c;鼠标右键&#xff0c;点击Git Bash here&#xff0c;然后输入命令即可。这样的话&#xff0c;其实自己本…

基于SpringBoot+微信小程序的农产品销售平台

一、项目背景介绍&#xff1a; 随着人们收入的不断增加、生活水平的普遍提高,对生活质量的要求也日益凸显。而作为关乎每个人的生命、健康安全的食品卫生、质量无疑更被人们所重视。所以,… 2. 其他国家的绿色有机食品所占其国家食品市场比重比较大,如德国在99年便已达到40%,美…

基于51单片机和MAX1898的智能手机充电器设计

**单片机设计介绍&#xff0c;基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机和MAX1898的智能手机充电器设计概要 一、引言 随着智能手机的普及&#xff0c;其电池续航…

AcWing1402.星空之夜

【题目链接】1402. 星空之夜 - AcWing题库 夜空深处&#xff0c;闪亮的星星以星群的形式出现在人们眼中&#xff0c;形态万千。 一个星群是指一组非空的在水平&#xff0c;垂直或对角线方向相邻的星星的集合。 一个星群不能是一个更大星群的一部分。 星群可能是相似的。 如…

在深度学习模型中引入先验

当面对复杂问题的时候&#xff0c;在深度学习模型提取特征的过程中完全抛弃知识是非常不明智的策略。虽然有很多研究者在深度网络处理数据之前&#xff0c;利用具有某种知识的模型驱动方法对数据进行预处理&#xff0c;但是这种方法没有进行实质性地改造深度网络&#xff0c;且…

【美团笔试题汇总】2023-09-02-美团春秋招笔试题-三语言题解(CPP/Python/Java)

&#x1f36d; 大家好这里是KK爱Coding &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新美团近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f…

Windows 2008虚拟机安装、安装VM Tools、快照和链接克隆、添加硬盘修改格式为GPT

一、安装vmware workstation软件 VMware workstation的安装介质&#xff0c;获取路径&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1AUAw_--yjZAUPbsR7StOJQ 提取码&#xff1a;umz1 所在目录&#xff1a;\vmware\VMware workstation 15.1.0 1.找到百度网盘中vmwa…

数字乡村创新实践探索:科技赋能农业现代化与乡村治理体系现代化同步推进

随着信息技术的飞速发展&#xff0c;数字乡村作为乡村振兴的重要战略方向&#xff0c;正日益成为推动农业现代化和乡村治理体系现代化的关键力量。科技赋能下的数字乡村&#xff0c;不仅提高了农业生产的效率和品质&#xff0c;也为乡村治理带来了新的机遇和挑战。本文旨在探讨…

哈希(数字+字符串)

模拟散列表 维护一个集合&#xff0c;支持如下几种操作&#xff1a; I x&#xff0c;插入一个整数 x&#xff1b;Q x&#xff0c;询问整数 x 是否在集合中出现过&#xff1b; 现在要进行 N 次操作&#xff0c;对于每个询问操作输出对应的结果。 输入格式 第一行包含整数 …

测开——Java、python、SQL、数据结构面试题整理

一、Java 1.Java中finally、final、finalize的区别 1.性质不同 &#xff08;1&#xff09;final为关键字; &#xff08;2&#xff09;finalize()为方法; &#xff08;3&#xff09;finally为为区块标志,用于try语句中; 2. 作用 &#xff08;1&#xff09;final为用于标识…

每日面经分享(Git经典题目,Git入门)

1. GitHub是什么 a. Git是一个分布式版本控制系统&#xff0c;作用是跟踪、管理和协调软件开发项目中的代码更改。 b. 提供了一种有效的方式来管理代码的版本历史&#xff0c;以及多人协作开发的能力。 2. Git的作用有哪些 a. 版本控制&#xff1a;Git可以记录每次代码更改的…

【机器学习】机器学习创建算法第4篇:K-近邻算法,学习目标【附代码文档】

机器学习&#xff08;算法篇&#xff09;完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;机器学习算法课程定位、目标&#xff0c;K-近邻算法定位,目标,学习目标,1 什么是K-近邻算法,1 Scikit-learn工具介绍,2 K-近邻算法API。K-近邻算法&#xff0c;1.4 …

EasyCVR视频汇聚平台海康Ehome2.0与5.0设备接入时的配置区别

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Vue3学习笔记+报错记录

文章目录 1.创建Vue3.0工程1.1使用vue-cli创建1.2 使用vite创建工程1.3.分析Vue3工程结构 2.常用Composition2.1 拉开序幕的setup2.2 ref函数_处理基本类型2.3 ref函数_处理对象类型2.4 ref函数使用总结 1.创建Vue3.0工程 1.1使用vue-cli创建 查看vue/cli版本&#xff0c;确保…