随笔分类 -  初级算法学习

摘要:[USACO17JAN] Secret Cow Code S 题面翻译 奶牛正在试验秘密代码,并设计了一种方法来创建一个无限长的字符串作为其代码的一部分使用。 给定一个字符串,让后面的字符旋转一次(每一次正确的旋转,最后一个字符都会成为新的第一个字符)。也就是说,给定一个初始字符串,之后的每一步都会 阅读全文
posted @ 2023-09-25 18:21 凪风sama 阅读(102) 评论(0) 推荐(0)
摘要:# P1102 过河卒 链接在此 [过河卒](https://www.luogu.com.cn/problem/P1002) 此题如果直接忽略掉马🐎的影响的话,可以看出很简单的递推规律 即 $$dp[i][j]=dp[i-1][j]+dp[i][]j-1]$$ >也就是说,由于卒只能走直线且每次只 阅读全文
posted @ 2023-08-17 19:35 凪风sama 阅读(47) 评论(0) 推荐(0)
摘要:卡特兰(Catalan)数入门详解 - Morning_Glory - 博客园 (cnblogs.com) 今天放假,明天详细写 阅读全文
posted @ 2023-05-04 00:02 凪风sama 阅读(16) 评论(0) 推荐(0)
摘要:P1028 [NOIP2001 普及组] 数的计算 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一开始是想暴力搜索的,也就是枚举比n/2小的数,但是只过了5个点,其他点都TLE 然后就开始想有没有优化方法 以6为例子 6/2=3,那么以6为首的长度为2的序列就有61,62,63 阅读全文
posted @ 2023-05-03 21:47 凪风sama 阅读(37) 评论(0) 推荐(0)
摘要:对于给定的序列1 2 3,其全排列有6种,按照字典序从小到大即为 0 1 2 3 4 5 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 可以看出,每个全排列序列都唯一对应一个字典序数(从0开始),那么,有什么方法可以根据序列求出其对应的字典序或者根据字典序来推断其对应序列呢 阅读全文
posted @ 2023-04-26 21:23 凪风sama 阅读(35) 评论(0) 推荐(0)
摘要:next_permutation 是算法库(<algorithm>)里的一个用于求全排列的函数,其定义为 next_permutation(_BidIt _First, _BidIt _Last) 可以看出,对于next_permutation需要可迭代容器的范围(即头尾),然后会根据字典序来对此序 阅读全文
posted @ 2023-04-26 19:55 凪风sama 阅读(92) 评论(0) 推荐(0)
摘要:vector<int> Div(vector<int>& A, int& B) { vector<int>C; int T = 0;//除数 for (int i = A.size() - 1; i >= 0; i--)//注意,除法模拟是从最高位开始的 { T = T * 10 + A[i];// 阅读全文
posted @ 2023-04-25 20:47 凪风sama 阅读(18) 评论(0) 推荐(0)
摘要:vector<int> Sub(vector<int>& A, vector<int>& B)//这里默认长数减去短数 { vector<int> C;//结果向量 int T = 0;//上一位借位标志位 for (int i = 0; i < A.size(); i++) { T = A[i] 阅读全文
posted @ 2023-04-25 20:45 凪风sama 阅读(21) 评论(0) 推荐(0)
摘要:vector<int> Mul(vector<int>& A, int &B) { vector<int>C; int T = 0; for (int i = 0;i < A.size()||T/*考虑进位位未处理完*/;i++) { if(i<A.size()) T += A[i] * B; C. 阅读全文
posted @ 2023-04-25 20:39 凪风sama 阅读(10) 评论(0) 推荐(0)
摘要:vector<int> Add(vector<int>& A, vector<int>& B)//采用引用传入vector,避免将其全部复制传值,使用引用会更快 { if (A.size() < B.size())return Add(B , A);//由于有大小位数的处理,我们默认位数较大的那个去 阅读全文
posted @ 2023-04-25 20:38 凪风sama 阅读(17) 评论(0) 推荐(0)
摘要:在做这道题之前我们先了解一下棋盘问题 棋盘问题 (qq.com) 对于棋盘问题,我们可以得出对于一个n*n的正方形方格阵如何求其包含的正方形个数 也就是数每个正方形的中间点,然后将其点排列成矩阵,对于其中m*m规格的正方形,其个数为(n-m-1)*(n-m-1)- 现在回到我们这道题,他的要求就更普 阅读全文
posted @ 2023-04-24 16:26 凪风sama 阅读(115) 评论(0) 推荐(0)
摘要:(29条消息) 不需要考虑mid+1、mid-1的二分查找模板,希望大家都能学会_二分查找如果light mid 不加1_一支彩色铅笔的博客-CSDN博客 非常好的博客,爱来自中国 二分查找为什么总是写错?_哔哩哔哩_bilibili 非常好的视频,爱来自中国 下面给出代码模板,这种二分比y总给出的 阅读全文
posted @ 2023-04-23 23:25 凪风sama 阅读(116) 评论(0) 推荐(0)
摘要:788. 逆序对的数量 - AcWing题库 逆序对,即位置顺序与大小顺序不符的数对,也就是对于一个期望升序的序列Num[],当i<j时,Num[i]>Num[j] 这道题要求求出逆序对的个数,显然在归并排序的过程中我们就是在逐步的消除逆序对,所以我们可以在递归的排序过程中求出逆序对的个数 已知归并 阅读全文
posted @ 2023-04-23 22:11 凪风sama 阅读(38) 评论(0) 推荐(0)
摘要:void merge_sort(int q[], int L, int R) { if (L >= R)return;//递归中止条件 int mid =(L + R) >> 1; merge_sort(q, L, mid); merge_sort(q, mid + 1,R);//先递归处理左右 i 阅读全文
posted @ 2023-04-23 20:48 凪风sama 阅读(19) 评论(0) 推荐(0)
摘要:void quick_sort(int* Num, int L, int R) { if (L >= R)return; swap(Num[L], Num[L + R >> 1]); int i = L; int j = R; int Temp = Num[L]; while (i < j) { f 阅读全文
posted @ 2023-04-22 23:20 凪风sama 阅读(46) 评论(0) 推荐(0)
摘要:最简单的思想就是将这n个数从小到大排序,然后直接输出下标为K的数,不用想肯定会超时,三个测试点过了,另外两个超时。 那么我想的就是,既然全排序会超时,有没有什么方法可以不用全排序也可以拿出第K小的数呢,我想到了堆这种数据结构,我们不用使用堆排序,而是将数组建堆,不断从堆中拿出当时最小的数,当取出第K 阅读全文
posted @ 2023-04-19 22:16 凪风sama 阅读(69) 评论(0) 推荐(0)
摘要:P1045 [NOIP2003 普及组] 麦森数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 想法很简单,我们要做的就是两件事,求2^P-1的位数,求出2^P-1的最后500位数,也就是低五百位,500位想一想常规类型肯定存不下,int到10^9,long long 到10^1 阅读全文
posted @ 2023-04-19 17:16 凪风sama 阅读(63) 评论(0) 推荐(0)
摘要:先贴一个快速幂模板 long long int quik_power(int base, int power) { long long int result = 1; while (power > 0) //指数大于0进行指数折半,底数变其平方的操作 { if (power & 1) //指数为奇数 阅读全文
posted @ 2023-04-18 23:38 凪风sama 阅读(59) 评论(0) 推荐(0)
摘要:可以知道在处理高精度乘法的时候,我们是不考虑当场进位的,在所有位数都模拟完竖式乘法后才进行逐位进位,这就要求存储每个位的数组保证不会爆掉溢出 众所周知char类型最多只能存储到255,非常非常容易溢出成负数,对于char型数组要考虑每一步乘法都要进位。 而int型数组最大21亿就不用考虑这种问题,当 阅读全文
posted @ 2023-04-18 23:01 凪风sama 阅读(31) 评论(0) 推荐(0)
摘要:对于计算比较大的幂的结果时可以采用快速幂来降低时间复杂度 例如求K的n次幂 int Pow(int K, int n) { for (int i = 0; i < n; i++) K *= K; return K; } 最朴素的思想就是直接n次循环,让K自乘n次,但是随着n的增加循环次数会越来越多, 阅读全文
posted @ 2023-04-18 17:54 凪风sama 阅读(46) 评论(0) 推荐(0)