AcWing算法基础
记录acwing购买的算法基础课的学习情况最好能够每天看一个视频,学习一种算法
快速排序24.11.23
思想:分治思想:
确定分界点
调整区间(重点)
所有小于x的在左边区间,大于x的数在右边区间
递归处理左右两段
代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include <bits/stdc++.h>using namespace std;const int N = 1e6+10;int q[N];int n;void quicksort(int q[], int l, int r){ //如果为1个数则直接返回 if (l >= r) return; // 定义基准数,i,j双指针 int x = q[(l + r) / 2], i = l - 1, j = r + 1; // 如果两个指针还没有相遇就 ...
2024校计算机大赛题解
比赛链接:2024年大学生计算机大赛决赛-个人赛
比赛时间:2024.11.17
U503552 村庄的友谊在一个遥远的村庄里,村民们的契合度是一个重要的特征。每个村民都有一个契合度,契合度的值为 $1$ 到 $n$ 之间的任意整数。村民们之间的友谊是基于他们的契合度:只有当两个村民的契合度相乘的结果是质数时,他们才能成为朋友,否则他们就是陌生人,即使他们可能有相同的朋友。
现在,村庄的长老希望了解村庄中有多少对不同的陌生人。请你帮助长老计算出来。
输入格式
第一行输入一个整数 $n\ (1 ≤ n ≤ 5*10^5)$,表示村民的数量。
第二行输入 $n$ 个整数,表示每个村民的契合度,契合度的值在 $1$ 到 $5*10^5$ 之间。
输出格式
输出一个整数,表示村庄中有多少对不同的陌生人。
数据范围
对于 $20%$ 的数据,$1 <= n <= 10$
对于 $40%$ 的数据,$1 <= n <= 1000$
对于 $100%$ 的数据,$1 <= n <= 500000$
...
高精度加减乘除法
高精度加减乘除法main1234567891011121314151617181920212223242526#include <bits/stdc++.h>using namespace std;//compare比较函数:相等返回0,大于返回1,小于返回-1int compare(string str1,string str2){ if(str1.length()>str2.length()) return 1; else if(str1.length()<str2.length()) return -1; else return str1.compare(str2);}int main(){ string str1,str2; //string str3,str4; cin>>str1>>str2; //while() //{ cout<<add(str1,str2)<<endl; ...
测试概念和方法
测试方法测试方法除了等价类划分法和边界值分析法之外,还有多种其他类型。以下是一些常见的测试方法:
一、根据代码可视化程度划分
黑盒测试
又称为数据驱动测试或功能测试。把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性。
测试用例的设计方法包括大纲法、场景法等。
适用于功能测试、安全性测试、互操作性测试等。
白盒测试
又称为结构测试或逻辑驱动测试。是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
测试用例的设计方法包括逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖等)。
适用于单元测试、集成测试等阶段。
灰盒测试
是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起。基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
二、根据是否运行程序划分
静态测试
不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
包括评审 ...
STL标准模板库笔记
STL标准模板库STL 概念STL(标准模板库)是C++标准库的重要组成部分,它提供了一系列常用的数据结构和算法,极大地丰富了C++的功能。STL主要包含以下几个部分:
一、容器(Containers)STL提供了多种容器,每种容器都有其特定的用途和性能特征。常见的容器包括:
vector:动态数组,支持快速随机访问和尾部插入删除。
deque:双端队列,支持快速随机访问和两端插入删除。
list:双向链表,支持双向遍历和任意位置插入删除。
forward_list:单向链表,支持单向遍历和任意位置插入删除。
set:有序集合,元素唯一且自动排序。
multiset:有序多重集合,元素可以重复且自动排序。
map:有序映射,键值对集合,键唯一且自动排序。
multimap:有序多重映射,键可以重复且自动排序。
unordered_set:无序集合,元素唯一,无序存储。
unordered_multiset:无序多重集合,元素可以重复,无序存储。
unordered_map:无序映射,键值对集合,键唯一,无序存储。
unordered_multimap:无序多重映射,键可以重复,无序存 ...
题解合集
题解合集(2024年)用于记录日常刷题练习的值得收藏的题,并给出题解
比赛等题目不在此贴记录,比赛题目另起一贴
模拟和高精度
函数与结构体P2415 集合求和给定一个集合 $s$(集合元素数量 $\le 30$),求出此集合所有子集元素之和。
子集为:$\varnothing, { 2 }, { 3 }, { 2, 3 }$,和为 $2 + 3 + 2 + 3 = 10$。
对于 $100 %$ 的数据,$1 \le \lvert s \rvert \le 30$,$1 \le s_i \le 1000$,$s$ 所有子集元素之和 $\le {10}^{18}$。
先选出指定的一个元素,加入子集;
首先,当子集里只有一个元素时,在其他剩余的元素中不能选出任何元素加入到子集中,所以对于每个元素来说,均有 $C_{n-1}^0$ 次被选中。
当子集里有 2 个元素时,在其他剩余的元素中选出 1 个元素加入到子集中,所以对于每个元素来说,均有 $C_{n-1}^1$ 次被选中。
当子集里有 3 个元素时,在其他剩余的元素中选出 2 个元素加入到子集中,所以对于每个元素来说,均有 ...
五种筛质数的方法
筛选质数在C++中有多种方法,下面列出几种常见的方法并提供相应的代码示例:
1. 枚举法(试除法)这是最简单的质数筛选方法,通过逐个检查每个数是否能被小于它的数整除来判断是否为质数。
1234567891011121314151617181920#include <iostream>#include <cmath>bool isPrime(int n) { if (n <= 1) return false; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) return false; } return true;}int main() { int n = 30; for (int i = 2; i <= n; i++) { if (isPrime(i)) { cout << i << " "; ...
入门算法
方法判断闰年12345678910111213141516171819202122bool isLeapYear(int year) { // 闰年的条件: // 1. 能被4整除但不能被100整除 // 2. 能被400整除 if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { return true; } else { return false; } } int main() { int year; cout << "请输入一个年份: "; cin >> year; if (isLeapYear(year)) { cout << year << " 是闰年。" <& ...
uniapp学习笔记
属性知识点条件编译条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。
#使用方法以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。
#ifdef:if defined 仅在某平台存在
#ifndef:if not defined 除了某平台均存在
%PLATFORM%:平台名称
条件编译写法
说明
#ifdef APP-PLUS 需条件编译的代码 #endif
仅出现在 App 平台下的代码
#ifndef H5 需条件编译的代码 #endif
除了 H5 平台,其它平台均存在的代码(注意if后面有个n)
#ifdef H5 || MP-WEIXIN 需条件编译的代码 #endif
在 H5 平台或微信小程序平台存在的代码(这里只有||,不可能出现&&,因为没有交集)
%PLATFORM% 可取值:
值
生效条件
版本支持
VUE3
uni-app js引擎版用于区分vue2和3,详情
HBuilderX 3.2.0+
VUE2
uni-ap ...
制作APP学习记录
文章初衷因为想要学做一款自己的app,app里面添加自己想要的功能,集自己的需求于一款app里。记录学习Flutter制作APP的过程和知识点
2024年10.19
分类页面
12345678910111213141516171819202122<template> <!-- 大模块 --> <view class="classLayout"> <view class="classify"> <theme-item v-for="item in 15"></theme-item> </view> </view></template><script setup> </script><style lang="scss" scoped>.classify{ padding: 30rpx; display: grid; grid-template-c ...