![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题笔记
文章平均质量分 60
学习算法使用的OJ
一个董憨憨
这个作者很懒,什么都没留下…
展开
-
算法——链表
算法原创 2022-09-16 18:26:49 · 292 阅读 · 1 评论 -
AcWing刷题笔记(五)动态规划
动态规划动态规划背包问题01背包问题动态规划背包问题背包问题详细解答01背包问题有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。第 i件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N行,每行两个整数 vi,wi,用空格隔开,分别表示第 i件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V原创 2021-09-26 11:14:39 · 146 阅读 · 0 评论 -
Acwing刷题笔记(二)数据结构
数据结构单链表单链表三级目录单链表单链表实现一个单链表,链表初始为空,支持三种操作:向链表头插入一个数; 删除第 k个插入的数后面的数;在第 k个插入的数后插入一个数。现在要对该链表进行 M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第 k个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n个插入的数。输入格式第一行包含整数 M,表示操作次数。接下来 M行,原创 2021-09-26 11:14:25 · 127 阅读 · 0 评论 -
牛客刷题笔记(c/c++语言基础)
C/C++语言基础(1)选村长/*自己写的,有些问题*/#include <iostream>#include <math.h>using namespace std;int main(){ int n; cin>>n; int flagA=0,flagB=0,flagC=0,others=0; int Tot,tot; while(n!=-1) { if(n==1) .原创 2021-09-26 11:14:00 · 334 阅读 · 0 评论 -
算法竞赛入门经典习题
第一章:程序设计入门总结1、%.2f 表示保留两位小数2、const double Pi=acos(-1.0) //尽量用const声明常量3、三整数排序: If(a>b) {交换} if(a>c){交换} if(b>c){交换}`第二章:循环结构设计总结1、重复次数可变、递增:for(初始化 ; 条件 ; 调整)循环次数不确定、也不是递增:while循环终止判断是在计算之后:do while2、溢出问题:int32_t uint32_t (约21亿) 若溢出用 l原创 2021-09-26 11:13:41 · 1108 阅读 · 0 评论 -
算法基础系列——二分问题mid值得两种计算方式有所区别
算法基础系列——二分问题补充寻找峰值寻找峰值今天在打卡leetcode的时候,寻找峰值这道题,是使用二分进行求解的,但是我发现了一个很奇怪的问题,就是mid计算的问题,因为二分问题的边界是很易错的地方,问题如下。int l=0,r=1;int mid1=l+(r-l)/2;int mid2=r-(r-l)/2;System.out.println(mid1);//0System.out.println(mid2);//1很奇怪,不知道为什么本来一样的算式会算出不同答案,这道题由两种解法,不原创 2021-09-16 00:10:59 · 372 阅读 · 0 评论 -
算法基础系列——牛顿迭代法
算法基础系列——牛顿迭代法1、介绍2、例题1、介绍牛顿迭代法介绍2、例题求解:x2+3∗x+1=0x^2+3*x+1=0x2+3∗x+1=0使用牛顿迭代法进行近似值的计算,解题思路如下所示等式写为x2+3∗x+1−C=0x^2+3*x+1-C=0x2+3∗x+1−C=0得到交点坐标为(xi,xi2+3∗xi+1−C)(xi,xi^2+3*xi+1-C)(xi,xi2+3∗xi+1−C)对等式进行求导得到直线斜率为2∗xi+32*xi+32∗xi+3代入点斜式直线方程中得y=(2原创 2021-09-15 21:24:36 · 482 阅读 · 0 评论 -
狱吏问题的三种解法——因数的相关应用
狱吏问题的三种解法题目描述解题思路一:暴力求解解题思路二:求解因数个数求解因数的两个模型求N的因数求1—N所有数的因数个数题目描述解题思路一:暴力求解外层循环为递增的间隔数,内层循环不断操作所有的牢房情况long start=System.currentTimeMillis();Scanner sca=new Scanner(System.in);System.out.println("请输入牢房数量: ");int num=9;int[] flag=new int[num+1];for原创 2021-09-15 21:14:44 · 1062 阅读 · 1 评论 -
PTA天梯赛练习做题日记
2021.2.27(1-5题)打印沙漏/*这道题就是语言书上的简单循环例题,就是打印出三角形。思路就是先计算出层数,然后利用等差数列进行空格和字符的打印。*/#include <iostream>using namespace std;int main(){ int x, N; char C; cin >> N; cin >> C; for (x = 1; x <= N; ++x) { if (2 * x * (x + 2)+1 &原创 2021-03-01 22:34:57 · 220 阅读 · 1 评论 -
AcWing刷题笔记(一)基础算法
算法基础课基础算法快速排序快速排序第K个数归并排序三级目录基础算法快速排序快速排序#include <iostream>using namespace std;const int N=1e6+10;int q[N];int n;void quick_sort(int q[],int l,int r){ if(l>=r)return; int x=q[(l+r)/2],i=l-1,j=r+1; while(i<j) { do i++;while(q[原创 2021-05-20 20:52:18 · 597 阅读 · 0 评论 -
Leetcode第254场周赛——题解及总结
1、作为子字符串出现在单词中的字符串数目给你一个字符串数组 patterns 和一个字符串 word ,统计 patterns 中有多少个字符串是 word 的子字符串。返回字符串数目。子字符串 是字符串中的一个连续字符序列。示例 1:输入:patterns = [“a”,“abc”,“bc”,“d”], word = “abc”输出:3解释:“a” 是 “abc” 的子字符串。“abc” 是 “abc” 的子字符串。“bc” 是 “abc” 的子字符串。“d” 不是 “abc” 的原创 2021-08-15 17:05:38 · 329 阅读 · 0 评论