笔记
文章平均质量分 65
lfy0
这个作者很懒,什么都没留下…
展开
-
牛客小白赛60(F.被抓住的小竹)&61(E.排队)(数学+推公式)
牛客小白赛60&61原创 2022-11-22 15:53:23 · 309 阅读 · 1 评论 -
概率dp学习
概率dp原创 2022-08-12 20:24:06 · 788 阅读 · 0 评论 -
C. Floor and Mod(整数分块)
C. Floor and Mod(整数分块)题意:给定x,y,有两数a,b,满足1<=a<=x,1<=b<=y,求满足(a/b)=a%b的<a,b>对数。思路:首先暴力肯定会T,因为O(y * 100),max(y)=1e9T1的代码:#include<iostream>#include<cstring>using namespace std;typedef long long ll;int main(){原创 2022-04-25 20:16:01 · 179 阅读 · 0 评论 -
二分答案(持续更新)
P2678 [NOIP2015 提高组] 跳石头跳石头一道经典的二分答案题,二分分为二分查找答案和把答案进行二分,二分答案经常含有最小值最大等字眼。(泪目,好半天才理解透彻这一题)#include <iostream>using namespace std;const int N = 1e5 + 10;int l, n, m; //储存终点,总石头个数,移走石头个数int a[N];bool half(int x) //判断期望的距离是否满足的函数{ int s = 0原创 2022-01-02 17:39:51 · 277 阅读 · 0 评论 -
哈希做题笔记(持续更新)
雪花雪花雪花雪花雪花雪花思路:雪花六个角,通过旋转和翻转后能不能匹配到相同的两种排列,如果有,就代表两者相同,否则不同。其实可以简化为将两种排列进行旋转和翻转后得到两种最小的字典序排列,如果两者最小字典序排列相同,就证明两个相同。翻转可以分为奇数和偶数次奇数次相当于翻转一次,偶数次相当于没有翻转。实质上只用在一开始就储存原排列的时候进行翻转一次后另外储存,再进行旋转找最小字典序排列进行比较即可。题解1:#include<iostream>#include<algorithm&原创 2022-01-03 16:54:20 · 131 阅读 · 0 评论 -
排序方法总结(稳定性和复杂度问题)
排序方法总结(稳定性和复杂度问题)文章目录排序方法总结(稳定性和复杂度问题)前言稳定性时间复杂度一、直接插入法排序二、折半插入法排序前言数据结构期末考试啦,要将各种排序方法进行分析,复杂度问题和稳定性问题,那就在此总结一下啦,希望能够帮助到在看这篇文章的你!( ^ - ^ )!稳定性所谓稳定性,通俗的来说就是如果一个数组中有两个相等的数字,arr[i]=arr[j],i<j,且通过排序后仍然有i<j。即相等的两个数没有进行交换,就称这个排序为稳定的。时间复杂度所谓时间复杂度就是整个原创 2021-12-21 18:30:51 · 380 阅读 · 0 评论 -
洛谷P5727 【深基5.例3】冰雹猜想(递归和栈)
P5727 【深基5.例3】冰雹猜想题目:初步解题思路:将数据进行处理后用数组进行储存后倒着输出。有关倒着输出就可以用到栈了(>-<),或者用递归,一层一层将数据输出,从里到外。递归#include<iostream>using namespace std;void func(int n){ if (n == 1) { cout << n << " "; return; } else if (n % 2 != 0) fun原创 2021-07-21 17:54:33 · 938 阅读 · 0 评论 -
洛谷 P1597 语句解析(scanf的返回值问题)
P1597 语句解析题目初步解题思路:将一整串字符串直接输入之后进行每个数据的识别处理,结果会发现处理每一个数据会很有困难,需要讨论每一种情况。但是这一题借鉴别人的题解发现还有更加简洁易懂的思路。(看了很久题解,这篇应该是最短的题解了,暴力枚举实在是太麻烦了)重点在这里:这里的思路可以使用scanf()的输入格式,以及根据scanf的返回值循环输入。然后用数组储存三个字母代表的值就好了。#include<bits/stdc++.h>//万能头文件using namespace s原创 2021-07-21 17:21:32 · 694 阅读 · 2 评论 -
常用数据处理与时间优化(素数筛)
文章目录前言一、判断奇偶数二、判断素数1.引入库2.读入数据总结前言本文是对刷题过程中常常用到的一些数据判断和处理的方法,会不断进行积累与修改,可作为做题参考。一、判断奇偶数int func(int n){ if (n % 2 == 0) return 1; else return 0;}二、判断素数int func(int n){ for(int i=2;i*i<n;i++) if (n % i == 0) return 0; return 1;}注意:原创 2021-07-17 12:35:47 · 96 阅读 · 1 评论 -
算法--数学入门
经典数学问题文章目录经典数学问题前言一、快速幂二、欧几里得算法(gcd(x,y))1.更相减损术(九章算术)1.辗转相除法(欧几里得算法)三.求取整的和总结前言本文是通过学习郑州大学ACM实验室课程总结的知识点,详细介绍了一些在算法题中可能会用到的一些基础的数学知识。一、快速幂**大致题目**计算a的b次幂对m取模(mod运算)b<=1e18初步计算思想如果说用需要算十进制的n次幂,就需要依次相乘进行计算。按照一般的思想,一秒内程序能运行一亿次运算即1e8次,但是b的范围的时间复杂原创 2021-07-15 16:24:39 · 109 阅读 · 0 评论 -
二分刷题记录一
文章目录前言一、P1024 [NOIP2001 提高组] 一元三次方程求解1.暴力枚举2. 盛金公式3.小区间二分二、P2249 【深基13.例1】查找三.P1873 砍树总结前言学习了几天的排序开始了二分的学习,二分的思想就是将一段数据不断从中间分割,在分出的两份数据中只留下需要的数据在的那一部分,对数据范围不断缩小,最后得到需要的数据。最常见的就是利用二分思想去解二元一次方程组,但是当方程组的次数增加的时候又该如何用二分的思想求解呢?一、P1024 [NOIP2001 提高组] 一元三次方程求解原创 2021-07-14 18:21:40 · 142 阅读 · 0 评论 -
排序题技巧刷题记录一
文章目录前言一、P1012 [NOIP1998 提高组] 拼数1.sort函数2.cmp函数二、P1055 [NOIP2008 普及组] ISBN 号码1.x的寓意2.mod运算总结前言本文于短学期开始第一天,通过复习前面所学以及在洛谷上刷题进行记录一些目前没学到或者不熟练的知识点,以此来记录学习历程供以后反复复习使用。知识点容易遗忘,但是反复复习就能形成长期记忆啦!一、P1012 [NOIP1998 提高组] 拼数解题的初步思路:想将每一个数字的最高位就进行比较后在进行排序后输出,但是想到每原创 2021-07-12 16:16:53 · 145 阅读 · 0 评论 -
模拟、排序刷题记录二
文章目录前言一、P1786 帮贡排序二、使用步骤1.引入库2.读入数据总结前言本文章是短学期第二天的刷题记录,通过做题熟悉模拟与复习排序,增强逻辑思维与加快解题速率,达到能快速解题的效果。一、P1786 帮贡排序二、使用步骤1.引入库2.读入数据代码如下(示例):data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')print(data.head())该处使用的url原创 2021-07-14 09:00:31 · 131 阅读 · 0 评论