蓝桥杯复习总结

博主分享了备战蓝桥杯一个月的心得体会,重点整理了包括sort的使用、大数运算(加减乘除)、并查集、01背包、快速幂、素数判断和深度优先搜索等十大算法知识点,强调了因比赛不允许携带参考资料,所以这些内容需要提前熟记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

蓝桥杯备战一个月多了。总结一些知识点。因为蓝桥杯不像ACM那样可以带资料。所以只能在考前把这些资料背下来了(QAQ)。

1.sort的用法

 sort(数组名,数组长度)。

sort默认是降序排序,如果要升序排序,可以这样写

sort(f,f+len,greater<int>());

2.大数加法

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

char a[10000],b[10000];
int main()
{
	int i,s1,s2;
	
	while(scanf("%s%s",a,b)!=EOF)
	{
		s1 = strlen(a);
		s2 = strlen(b);
		reverse(a,a+s1);
		reverse(b,b+s2);
		
		if(s2>s1)
			s1 = s2;
			for(i=0;i<s1;i++)
			{
				if(b[i]==0) b[i]='0';
				if(a[i]==0) a[i]='0';
				a[i] = a[i] + b[i] -'0';
				if(a[i]>=58)
				{
					a[i] -= 10;
					a[i+1]++;
					if(a[i+1]==1) 
					{
						a[i+1]='1';
					}
				}
			}
		    s2=strlen(a);
			reverse(a,a+s2);
			printf("%s\n",a);
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
	}
	
	return 0;
}

3.大数乘法


                
### 蓝桥杯竞赛知识点总结与复习资料 #### 输入输出处理 针对蓝桥杯比赛中的输入输出操作,通常分为般输入输出和快速输入输出两种方式。对于Java而言,在标准情况下可以利用`Scanner`类实现基本的数据读入[^1]。然而为了提高效率,尤其是在面对大数据量的时候,则推荐采用更高效的BufferedReader来进行字符串形式的大批量数据获取,并配合StringTokenizer来解析这些字符串为具体数值。 ```java // 使用 BufferedReader 进行高效读取 try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) { String line; while ((line = br.readLine()) != null) { // 对每行做进步处理... } } catch (IOException e) { e.printStackTrace(); } ``` #### Java编程规范与数据类型 在准备过程中还应当熟悉Java语言内部的各种特性,包括但不限于命名约定、代码风格指南等。同时掌握好基础的数据结构——比如int, double, char等简单类型的合理运用范围及其转换机制也是十分必要的。 #### 控制流语句的应用 控制程序执行路径的关键在于理解和灵活应用条件判断(if...else...)以及迭代(for/while/do-while),这不仅限于简单的线性流程设计,还包括如何构建复杂的逻辑分支或嵌套循环体以解决实际问题。 #### 面向对象概念的理解 面向对象的思想贯穿整个软件开发过程之中,因此学习者需要深刻领会什么是方法(Methods), 类(Class)的概念,还有就是实例化后的实体即对象(Object)。通过定义不同的属性(Attribute)和行为(Behavior),使得复杂系统的抽象变得更加直观易于管理。 #### 常见算法API的调用 除了上述基础知识外,了解并熟练使用些现成的功能库同样重要。例如Collections框架下的工具集可以帮助简化集合(Collection)的操作;而Math包里则提供了丰富的数学运算支持,像求绝对值(abs()), 平方根(sqrt())等功能都可在解题时派上用场。 #### 整数二分查找技巧 当遇到涉及有序序列上的查询任务时,整数二分是种非常有效的策略。尽管其原理看似简单明了,但在编码实践中却可能因为边界条件等问题而导致错误频发。为了避免此类情况的发生,建议先明确目标区间[left,right], 然后再逐步缩小直至找到满足特定性质的位置[^2]。 ```cpp // C++版本的整数二分模板 int binarySearch(vector<int>& nums, int target){ int left=0, right=nums.size()-1; while(left<=right){ int mid=(left+right)/2; // 或者使用 unsigned long long 来防止溢出:mid = left + (right-left)/2 if(nums[mid]==target)return mid; else if(nums[mid]<target)left=mid+1; else right=mid-1; } return -1; // 如果找不到返回-1表示不存在该元素 } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值