基础课打卡哦
ACwing打卡
伊利达雷审判官
如果你真的在乎那些牌,为什么不早早用掉?
展开
-
789. 数的范围
题目 提交记录 讨论 题解 视频讲解 题干: 给定一个按照升序排列的长度为nn的整数数组,以及qq个查询。 对于每个查询,返回一个元素kk的起始位置和终止位置(位置从00开始计数)。 如果数组中不存在该元素,则返回-1 -1。 输入格式 第一行包含整数nn和qq,表示数组长度和询问个数。 第二行包含nn个整数(均在1∼100001∼10000范围内),表示完整数组。 接下来qq行,每行包含一个整数kk,表示一个询问...原创 2022-04-25 15:27:28 · 165 阅读 · 0 评论 -
282. 石子合并
设有NN堆石子排成一排,其编号为1,2,3,…,N1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这NN堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。 例如有44堆石子分别为1 3 5 2, 我们可以先合并1、21、2堆,代价为44,得到4 5 2, 又合并1,21,2堆,代价为99,得到9 2,再合并得到1111,总...原创 2022-01-24 22:47:25 · 70 阅读 · 0 评论 -
AcWing 842. 排列数字
842. 排列数字 题目 提交记录 讨论 题解 视频讲解 给定一个整数nn,将数字1∼n1∼n排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数nn。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围 1≤n≤71≤n≤7 输入样例: 3 输出样例: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 难度:简单 时/空限制:1s...原创 2022-01-23 22:36:16 · 215 阅读 · 0 评论 -
Acwing 844. 走迷宫
给定一个n×mn×m的二维整数数组,用来表示一个迷宫,数组中只包含00或11,其中00表示可以走的路,11表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1)(1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。 请问,该人从左上角移动至右下角 (n,m)(n,m) 处,至少需要移动多少次。 数据保证 (1,1)(1,1) 处和 (n,m)(n,m) 处的数字为 00,且一定至少存在一条通路。 输入格式 第一行包含两个整数 nn 和 mm。 接下来 nn...原创 2022-01-23 22:16:40 · 98 阅读 · 0 评论 -
AcWing 841. 字符串哈希
#include<iostream> #include<string> using namespace std; typedef unsigned long long ULL; const int N = 1e5+5,P = 131; ULL h[N],p[N]; ULL query(int l,int r){ return h[r] - h[l-1]*p[r-l+1]; } int main(){ int n,m; cin>>n>>.原创 2021-12-28 22:01:41 · 57 阅读 · 0 评论 -
849. Dijkstra求最短路 I
#include<iostream> #include<algorithm> #include<cstring> using namespace std; const int N=510; int g[N][N]; //为稠密阵所以用邻接矩阵存储 int dist[N]; //用于记录每一个点距离第一个点的距离 bool st[N]; //用于记录该点的最短距离是否已经确定 bool flag[N]; int n,m; int Dijkstra.转载 2021-12-08 23:37:15 · 77 阅读 · 0 评论 -
Floyd求最短路
854. Floyd求最短路 题目 提交记录 讨论 题解 视频讲解 给定一个nn个点mm条边的有向图,图中可能存在重边和自环,边权可能为负数。 再给定kk个询问,每个询问包含两个整数xx和yy,表示查询从点xx到点yy的最短距离,如果路径不存在,则输出impossible。 数据保证图中不存在负权回路。 输入格式 第一行包含三个整数n,m,kn,m,k。 接下来mm行,每行包含三个整数x,y,zx,y,z,表示存在一条...原创 2021-12-02 23:02:09 · 65 阅读 · 0 评论 -
838. 堆排序
输入一个长度为nn的整数数列,从小到大输出前mm小的数。 输入格式 第一行包含整数nn和mm。 第二行包含nn个整数,表示整数数列。 输出格式 共一行,包含mm个整数,表示整数数列中前mm小的数。 数据范围 1≤m≤n≤1051≤m≤n≤105, 1≤数列中元素≤1091≤数列中元素≤109 输入样例: 5 3 4 5 1 3 2 输出样例: 1 2 3 1,代码 #include <iostream> #include <cst...原创 2021-11-15 23:28:50 · 800 阅读 · 0 评论 -
874. 筛法求欧拉函数
给定一个正整数nn,求1∼n1∼n中每个数的欧拉函数之和。 输入格式 共一行,包含一个整数nn。 输出格式 共一行,包含一个整数,表示1∼n1∼n中每个数的欧拉函数之和。 数据范围 1≤n≤1061≤n≤106 输入样例: 6 输出样例: 12 //2021/11/14 #include <iostream> #include <cstring> #include <algorithm> using namespace std; ...原创 2021-11-14 23:24:19 · 177 阅读 · 0 评论 -
873. 欧拉函数
给定nn个正整数aiai,请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N1∼N中与NN互质的数的个数被称为欧拉函数,记为ϕ(N)ϕ(N)。 若在算数基本定理中,N=pa11pa22…pammN=p1a1p2a2…pmam,则: ϕ(N)ϕ(N)=N×p1−1p1×p2−1p2×…×pm−1pmN×p1−1p1×p2−1p2×…×pm−1pm 输入格式 第一行包含整数nn。 接下来nn行,每行包含一个正整数aiai。 输出格式 输出共nn行,每行输出一个正整...原创 2021-11-14 00:34:53 · 124 阅读 · 0 评论 -
869. 试除法求约数 (C++中set用法)
::begin() //迭代器 ::end() //迭代器 ::clear() //删除set容器中的所有的元素 ::empty() //判断set容器是否为空 ::max_size() //返回set容器可能包含的元素最大个数 ::size() //返回当前set容器中的元素个数set<int> myset; myset.insert(4); myset.insert(7); myset.insert(2); m...原创 2021-11-11 23:17:47 · 679 阅读 · 0 评论 -
785. 快速排序-Java
给定你一个长度为nn的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数nn。 第二行包含nn个整数(所有整数均在1∼1091∼109范围内),表示整个数列。 输出格式 输出共一行,包含nn个整数,表示排好序的数列。 数据范围 1≤n≤1000001≤n≤100000 输入样例: 5 3 1 2 4 5 输出样例: 1 2 3 4 5 代码: //package com.co...原创 2021-10-28 23:39:22 · 95 阅读 · 0 评论 -
Nim游戏
AcWing 891 891. Nim游戏 题目 提交记录 讨论 题解 视频讲解 给定nn堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。 问如果两人都采用最优策略,先手是否必胜。 输入格式 第一行包含整数nn。 第二行包含nn个数字,其中第ii个数字表示第ii堆石子的数量。 输出格式 如果先手方必胜,则输出Yes。 否则,输出No。 数据范围 ...原创 2021-10-24 21:01:19 · 72 阅读 · 0 评论 -
C++ 高精度加减乘除
目录 高精度加法 高精度减法 高精度乘法 高精度除法 高精度加法: 1,把数当做字符串处理 2, 大于10进位 3,反转一下可能更好处理 #include <iostream> #include <string> #include <algorithm> const int N = 1e6; int v[N]; int a[N]; int b[N]; using namespace std; int main() { string A, B;原创 2021-09-09 21:37:07 · 264 阅读 · 0 评论 -
字符串匹配
利用map进行跳跃(不适用于太长的子字符串)【map存不下】 #include <iostream> #include <cstring> #include <algorithm> #include <map> using namespace std; int main() { int n,m; string s,ss; cin>>n>>ss; cin>>m>>s;原创 2021-10-03 23:31:00 · 51 阅读 · 0 评论 -
AcWing 835. Trie字符串统计-代码实现
#include <iostream> #include <string> using namespace std; const int N = 2e5+10; int son[N][26],idx; int cnt[N]; void insert(string s){ int next_pos = 0; //下一个要插入的层 for(int i = 0; i < s.size(); i ++) { int bias = s[i].原创 2021-10-10 00:00:25 · 57 阅读 · 0 评论 -
最大异或对
143. 最大异或对 - AcWing题库 /*01树*/ #include <iostream> #include <algorithm> using namespace std; const int N = 100010, M = 3100010; int n; int a[N], son[M][2], idx; void insert(int x) { int p = 0; for (int i = 31; i >= 0; i -- ) .原创 2021-10-04 23:28:10 · 45 阅读 · 0 评论