1-1 暴力破解-枚举

枚举:枚举所有的情况,逐个判断是否是问题的解

判断题目是否可以使用枚举:估算算法复杂度
1秒计算机大约能处理107的数据量,即O(n)=107,则O(n2)能处理的数据量就是根号107≈3162

复杂度对应的数据量是该算法能处理的最大数据量
题目数据量n<在算法复杂度下能处理的最大数据量,则该算法可行

在1秒内各复杂度的算法能处理数据的量级↓

在这里插入图片描述

可以看出,若题目有105的数据量,则不能采用O(n2)的算法,O(nlogn)是可以的

常见问题的复杂度

在这里插入图片描述

1.abc(清华大学)
在这里插入图片描述
评测系统

分析:题目的数据量n=10,可以采用三次for循环的方式,算法时间复杂度为O(n3),能处理的数据量是200,10<200,算法可行

#include<iostream>
using namespace std;
int main() {for (int a = 0; a <= 9; a++) {for (int b = 0; b <= 9; b++) {for (int c = 0; c <= 9; c++) {if (100 * a + 10 * b + c + 100 * b + 10 * c + c == 532) {cout << a << " " << b << " " << c << endl;}}}}
}

2.反序数(清华大学)
在这里插入图片描述
评测系统

分析:四位数从1000到9999,数据量<10000,直接遍历复杂度O(n)。求反序数过程复杂度O(1),总复杂度O(n),能处理的数据量约为107,10000<107,算法可行

#include<iostream>
using namespace std;
int reverse(int x) {int sum = 0;while(x!=0){sum = sum*10 + x % 10;x = x / 10;}return sum;
}
int main() {for (int i = 1000; i <= 9999; i++) {if (i * 9 == reverse(i)) {cout << i << endl;}}
}

3.对称平方数(清华大学)
在这里插入图片描述
评测系统

注:数据>=0

分析:对称 → 原数=反序数

#include<iostream>
using namespace std;
int reverse(int x) {int sum=0;while (x) {sum = sum * 10 + x % 10;x = x / 10;}return sum;
}
int main() {for (int i = 0; i <= 256; i++) {if (i*i==reverse(i*i)) {cout << i << endl;}}
}

4.与7无关的数(北京大学)
在这里插入图片描述
评测系统

#include<iostream>
using namespace std;
bool relate2(int x) { //判断某位数字是否为7while (x) {if (x % 10 == 7)return true;x = x / 10;}return false;
}
bool relate(int x) { //判断是否与7相关if (x % 7 == 0)return true;else if (relate2(x)) {return true;}elsereturn false;
}
int main() {int sum = 0;int n=0;cin >> n;for (int i = 1; i <= n; i++) {if (!relate(i)) {sum += i * i;}}cout << sum;
}

5.百鸡问题(哈尔滨工业大学)
在这里插入图片描述

评测系统

分析:xyz的取值最大为100,采用三次for循环的方式,算法时间复杂度为O(n3),能处理的数据量是200,100<200,算法可行;1/3的等式两边同乘3化为整数

#include<iostream>
using namespace std;
int main() {int n = 0;cin >> n;for (int x = 0; x <= 100; x++) {for (int y = 0; y <= 100; y++) {for (int z = 0; z <= 100; z++) {if (15 * x + 9 * y + z <= 3*n && x + y + z == 100)printf("x=%d,y=%d,z=%d\n", x, y, z);}}}
}

6.Old Bill(上海交通大学)
在这里插入图片描述

评测系统

#include<iostream>
using namespace std;
int main() {int N = 0;int first, x, y, z, last, pricemax = 0;while (cin >> N) {cin >> x >> y >> z;if (N == 0) {cout << 0;break;}bool flag = 0;for (int i = 1; i <= 9; i++) {for (int j = 0; j <= 9; j++) {int temp = 10000 * i + 1000 * x + 100 * y + 10 * z + j;if (temp < N) {break;}if (temp % N == 0 && temp / N > pricemax) {pricemax = temp / N;first = i;last = j;flag = 1;}}}if (flag == 1)cout << first << " " << last << " " << pricemax << endl;else {cout << 0 << endl;}flag = 0;}
}

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

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

相关文章

Git 入门指南:从新手到高手的完全指南

Git是一种强大的分布式版本控制系统&#xff0c;广泛应用于软件开发中。它的使用不仅可以帮助开发团队更好地管理代码&#xff0c;还可以提高团队协作效率和代码质量。随着软件开发的不断发展&#xff0c;版本控制成为了程序员必备的一项技能。 Git的基本概念 Git的基本概念对…

华为云资源搭建过程

网络搭建 EIP&#xff1a; 弹性EIP&#xff0c;支持IPv4和IPv6。 弹性公网IP&#xff08;Elastic IP&#xff09;提供独立的公网IP资源&#xff0c;包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑…

【嵌入式】【GIT】如何迁移老的GIF到新的仓库时使用LFS功能并保持LOG不变

一、正常迁移流程 假设有仓库 ssh://old/buildroot-201902 需要迁移到新的仓库 ssh://old/buildroot-201902时,我们可以使用以下命令来完成: # 下载老的仓库 git clone ssh://old/buildroot-201902 # 向新的仓库上传所有的tags git push ssh://new/buildroot-201902 --tag…

成为一个优秀的测试工程师需要具备哪些知识和经验?

看到这个题目&#xff0c;头脑中马上就拆分出了3个小问题&#xff1a; 1、什么是优秀的测试工程师&#xff1f; 2、优秀测试工程师需要哪些知识&#xff1f; 3、优秀测试工程师需要哪些经验&#xff1f; 一个个讲解。 一、什么才是一名优秀的测试工程师呢&#xff1f; 什么才是…

window11最新版终于可以取消任务栏合并了

windows11一个软件开了多个窗口之后&#xff0c;会自动合并任务栏&#xff0c;很不方便选择其中一个窗口&#xff0c;且没有选项能关闭这一配置 今日发现&#xff0c;最新版完善了这一功能&#xff0c;现在可以关闭自动合并任务栏了 右击任务栏&#xff0c;选择任务栏设置选择…

python实现Excel自动化办公

准备工作 安装相关模块 pip install openpyxl lxml pillow 基本定义 工作簿&#xff1a;一个电子表文件为一个工作簿 活动表&#xff1a;用户当前查看的表活关闭Excel最后查看的表 sheet表 单元格 Excel数据读取操作 打开工作簿并创建一个对象&#xff1a; wb openpyxl.loa…

Asset private data

其使用的java链码是基于gradle7.0的。相比于其他环境下的java代码&#xff0c;多了一些限制&#xff1a; (1)逗号后面必须有空格&#xff0c;花括号前面必须有空格&#xff0c;运算符前后必须有空格 &#xff08;2&#xff09;类里面的set方法参数不能和类里面的成员变量名字…

OpenCV—自动驾驶实时道路车道检测(完整代码)

自动驾驶汽车是人工智能领域最具颠覆性的创新之一。在深度学习算法的推动下,它们不断推动我们的社会向前发展,并在移动领域创造新的机遇。自动驾驶汽车可以去传统汽车可以去的任何地方,并且可以完成经验丰富的人类驾驶员所做的一切。但正确地训练它是非常重要的。自动驾驶汽…

Qt 重写QSlider简单实现滑动解锁控件(指定百分比回弹效果)

组件效果图&#xff1a; 应用场景&#xff1a; 用于滑动解锁相关场景&#xff0c;Qt的控件鼠标监听机制对于嵌入式设备GUI可触摸屏依旧可用。 实现方式&#xff1a; 主要是通过继承QSlider以及搭配使用QStyleOptionSlider来实现效果。 注意细则&#xff1a; QStyleOption…

【Spring】Spring MVC请求响应

文章目录 1. 请求1.1 传递单个参数1.2 传递多个参数1.3 传递对象1.4 后端参数重命名1.5 传递数组1.6 传递集合1.7 传递JSON对象1.8 获取URL中参数1.9 上传⽂件1.10 获得Cookie1.11 获得Session1.12 获得Header 2. 响应2.1 返回静态界面2.2 返回数据2.3 返回HTML代码片段2.4 返回…

Unity地面交互效果——2、动态法线贴图实现轨迹效果

Unity引擎动态法线贴图制作球滚动轨迹 大家好&#xff0c;我是阿赵。   之前说了一个使用局部UV采样来实现轨迹的方法。这一篇在之前的基础上&#xff0c;使用法线贴图进行凹凸轨迹的绘制。 一、实现的目标 先来回顾一下&#xff0c;上一篇最终我们已经绘制了一个轨迹的贴图…

ZKP7.3 Linear-time encodable code based on expanders

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 7: Polynomial Commitments Based on Error-correcting Codes (Yupeng Zhang) 7.3 Linear-time encodable code based on expanders SNARKs with linear prover time Linear-time encodable code [Spielman’96][Druk-Ishai…