自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 Leetcode 1379. 找出克隆二叉树中的相同节点 && 1385. 两个数组间的距离值

Leetcode 1379和1385

2022-09-18 16:57:42 758

原创 Leetcode1624. 两个相同字符之间的最长子字符串

Leetcode 1624.两个相同字符之间的最长子字符串

2022-09-17 23:01:22 318

原创 leetcode 1386.安排电影院座位

leetcode 1386

2022-09-15 14:40:27 427

原创 Acwing 每日一题 3715.最少交换次数

学习了y神的讲解,但是对树状数组还不理解,写下博客为了方便后面学习,下面代码为Acwing题解里Jackle的代码。归并排序为先查找l到mid的逆序对并排序,再查找mid+1到r的逆序对排序,算法内是双指针进行操作。二、树状数组O(n*logn)三、归并排序O(n*logn)一、暴力枚举O(n*n)...

2022-07-15 16:02:09 216

原创 y神动态规划第四课背包问题

一、多重背包问题#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N=20010;int n,m;int f[N],g[N],q[N];int main(){ cin>>n>>m; for(int i=0;i<n;i++){ int v,w,s; cin>>v>>w&

2021-09-01 10:48:30 164

原创 y神动态规划第二课、第三课代码

一、最长上升子序列问题#include<iostream>#include<algorithm>using namespace std;const int N=1010;int n;int a[N],f[N];int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++){ f[i]=1; for(i

2021-08-27 22:37:41 115

原创 y神动态规划第一课

一、摘花生问题#include<iostream>#include<algorithm>using namespace std;const int N = 110;int n,m;int w[N][N];int f[N][N];int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) sca

2021-08-23 10:49:19 126

原创 逆序对的数量(归并排序模板y神)

#include<iostream>using namespace std;typedef long long LL;const int N = 100010;int n;int q[N],tmp[N];LL merge_sort(int l, int r){ if(l>=r)return 0; int mid = (l+r)/2;//l+r >> 1;等价 LL res = merge_sort(l,mid)+merge_sort(mid+1,r); /

2021-05-30 20:51:10 88

原创 在n个数中找第k小的数(快选算法模板y神学习)

#include<iostream>using namespace std;const int N = 100010;int n,k;int q[N];int quick_sort(int l,int r,int k){ if(l == r) return q[l]; int x = q[l],i=l-1,j=r+1; while(i<j) { while(q[++i]<x); while(q[--j]>x); if(i<j)swa

2021-05-30 17:39:57 349

原创 PAT (Basic Level) Practice (中文)1022 D进制的A+B (20 分)

本题就是考怎么换算10进制到d进制,就是对和不断相除d取余数,然后反着输出就可以,本题得考虑到a和b都是0的情况,

2021-04-19 20:41:45 74

原创 PAT (Basic Level) Practice (中文)1020 月饼 (25 分)

做的时候想到了是贪心的思想,但是对于排序以及如何满足条件退出还是不熟练,代码是理解思想照着别人打的,希望下一次可以自己做出来,下面是完整的代码#include<iostream>#include<algorithm>using namespace std;struct mooncake { float ku; float money; float average;}cake[1000];int cmp(struct mooncake a, struct moonc.

2021-04-19 20:11:55 90

原创 PAT (Basic Level) Practice (中文)1019 数字黑洞 (20 分)

本题是对四个数字进行数组转整型,整型转数组是个难点,还有排序(本题用的冒泡)也是个难点,下面先展示一下冒泡//升序排列void dasort(int a[]) { int i, j, temp; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3 - i; j++) { if (a[j] < a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] ..

2021-04-17 21:30:39 81

原创 PAT (Basic Level) Practice (中文)1018 锤子剪刀布 (20 分)

本题最开始是对怎么存储数据进行疑惑,在搜别人代码后,对进行设置a,b数组进行存储(现在想想发现不用数组也可以,单纯的用a,b)。然后记录甲赢输平的次数即可,然后每一次都记录获胜的是那个手势,最后按照输出规则进行输出即可。别人的思路:完整的代码如下:#include<iostream>#include<map>using namespace std;int main() { int n, win = 0, lose = 0, ping = 0; int c1 = ..

2021-04-16 23:55:36 92

原创 PAT (Basic Level) Practice (中文)1015 德才论 (25 分)

本题是进行分类排序,但是开始确实是不会,所以是参考别人的代码抄下来的。本题重点是对每组数据进行分类,将说明好的进行分类,然后未说明的,其他的情况直接else;还有一个难点是分类排序,要自己写cmp函数,下面会有对sort排序的讲解和对strcmp的讲解:sort函数需要头文件#include,strcmp需要头文件#include<string.h>(在pta需要加上.h,VS2012不需要),下面是完整的源码:#include<iostream>#include&lt..

2021-04-16 22:39:09 70

原创 PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20 分)

本题是对字符串的匹配,然后感觉有些繁琐,所以直接找的代码跟着打了一遍,感觉别人的思路很清晰,一步一步的,值得学习#include<iostream>#include<string>using namespace std;int main() { string a, b, c, d; int flag = 0; string week[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" }; cin >> a .

2021-04-13 11:07:31 97

原创 PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分)

本题木有难度,下面是完整代码#include<iostream>using namespace std;int main() { int a[10], j = 0; for (int i = 0; i < 10; i++) { cin >> a[i]; } for (int i = 1; i < 10; i++) { if (a[i] != 0) { j = i; a[i]--; break; } } cout <&.

2021-04-11 17:05:12 75

原创 PAT (Basic Level) Practice (中文)1017 A除以B (20 分)

这个是模仿大数相除,开始有些蒙,就参照着别人的代码打了一遍,后面理解原理还是很简单的,就是按手写除法来计算,除最高位外,等需要借上一位来计算,这样就能保证每次除法都是一个两位数或者一位数来算除法,下面是完整的代码#include<iostream>#include<string>using namespace std;int main() { string a; int b; cin >> a >> b; int t, temp; int .

2021-04-11 16:42:58 85

原创 PAT (Basic Level) Practice (中文)1013 数素数 (20 分)

最开始以为控制换行和空格是难点,结果自己在输入m=1时就错了,想着素数只能是奇数,除2以外,导致2就被排除了,另外本题无法判断i最大取到多少,所以让i为1000000(100000还会有一个测试数据错误),下面是完整的代码#include<iostream>#include<math.h>using namespace std;int issushu(int n) { int a = 1; for (int i = 2; i <= sqrt(n); i++) {.

2021-04-11 16:20:21 79

原创 PAT (Basic Level) Practice (中文)1012 数字分类 (20 分)

这个题有个坑,可能导致最后一个测试不通过:a2可能因为加减变成了0,但并不是没有满足a2要求的数字,所以当a2为0有两种情况,一直是没有数字,一直是加减正好为0,所以加一个计数器flag1,下面是完整的代码#include<iostream>using namespace std;int main() { int n, a[1000], a1 = 0, a2 = 0, a3 = 0, a5 = 0, k = 1, flag1 = 0, flag2 = 0; double a4 = 0.

2021-04-11 15:23:57 116 1

原创 PAT (Basic Level) Practice (中文)1010 一元多项式求导 (25 分)

不难,看懂题找到规律就行了,下面是完整的代码#include<iostream>using namespace std;int main() { int a, b, flag = 0; cin >> a >> b; if (b == 0) cout << "0 0" ; else cout << a * b << " " << b - 1; while(cin >> a >>.

2021-04-11 11:37:03 53

原创 PAT (Basic Level) Practice (中文)1009 说反话 (20 分)

这个题是感觉用数组数组也是可以做的,但是我觉得有更好的就去网上找了找,在一篇文章中看到了栈的使用,简单不少,便打了一样的代码,其中C++如何退出while(cin>>s)循环,可以加一个判断,但是本题没有最后的判断单词,所就是用VS的时候可以输入结束后按回车,然后按Ctrl+z,再按回车就可以了,这是可以作为流结束的标志(缓冲区是没有^z字符的),下面是完整的代码#include<iostream>#include<string>#include<stack.

2021-04-11 11:14:30 130

原创 PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)

本题是正好学到了数据结构中倒置右移的方法,就是倒置右边,再倒置左边,最后整个数组倒置,右移和左移的区别是倒置的分界点,然后本题还有一个坑的地方是,m有可能比n大,需要m=m%n,否则会出现答案错误,下面是完整的代码#include<iostream>using namespace std;void reverse(int a[],int left,int right,int k ) { int temp; for (int i = left, j = right; j < le.

2021-04-11 10:57:02 71

原创 PAT (Basic Level) Practice (中文)1007 素数对猜想 (20 分)

本题难点是最后一个输入用例,估计a是个很大的值,会造成超时,所以需要对判断素数进行简化,首先是只需判断a的平方根范围内判断即可,第二个是除2以外,偶数绝对不会是素数,所以从3开始,步长调为i=i+2。下面是完整代码在这里插入代码片...

2021-04-09 20:52:34 61

原创 PAT (Basic Level) Practice (中文)1005 继续(3n+1)猜想 (25 分)

主要是对过程的记录,感觉是用动态数组做的,但是太菜了不会就自己用一个数组来时时记录,不过时间复杂度就大了很多,还是就是控制从大到小的输出,也是一个考验,可以看一下引用,显示怎么让结尾的空格去掉。这里是引用另外就是快速排序,正好算法课用到了,就直接引用的函数,因为需要同时排序两个数组,但是是同一个下标,就稍微更改了下。下面是完整的代码...

2021-04-09 13:20:05 99

原创 PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)

就是对string的记录,事先对第一组数据进行记录,然后比较

2021-04-08 17:38:11 45

原创 PAT (Basic Level) Practice (中文)1003 我要通过! (20 分)

首先本题对于理解题意上是难点,我也是看了他人的讲解,代码是跟着打理解的,先说明一下map关联器的使用map 是一种关联容器, 提供一对一的关联, 关联的形式为: KEY----VALUE(键值对),另外关键字不能重复。 map 也可看做是 关键字映射的集合, 即,map中不可出现重复的关键字,每条映射的关键字都是不同的。 1.map基本用法#include#includeusing namespace std;int main(){map<string,int> myma..

2021-04-08 17:23:42 122

原创 PAT (Basic Level) Practice (中文)1002 写出这个数 (20 分)

终于步入20分的题啦,本题在最后输出无法回退掉那个空格, 试过cout<<’\b’<<endl;但是不行,如果有大佬看见了给讲讲怎么不区分最后一个,直接回退掉那个空格。下面是完整的代码#include<iostream>#include<string>#include<math.h>using namespace std;int main() { int sum = 0; string s; cin >> s; fo.

2021-04-06 10:36:08 75

原创 PAT (Basic Level) Practice (中文)1091 N-自守数 (15 分)

下面是完整的代码#include<iostream>#include<math.h>using namespace std;int main() { int m, a,x=0,temp,flag; cin >> m; for (int i = 0; i < m; i++) { cin >> a; flag = 0; for (int j = 1; j < 10; j++) { x = 0; temp = a;.

2021-04-06 10:18:07 56

原创 PAT (Basic Level) Practice (中文)1086 就不告诉你 (15 分)

本题有将int型转换为string,利用函数to_string()。另外就是输出开始不能是0,做除直到余数不为0就可以了,下面是完整的代码#include<iostream>#include<string>using namespace std;int main() { int a, b, c; string s; cin >> a >> b; c = a * b; while (c % 10 == 0) { c = c / 10; .

2021-04-05 21:09:57 87

原创 PAT (Basic Level) Practice (中文)1076 Wifi密码 (15 分)

本题不难,下面是完整的代码#include<iostream>using namespace std;int main() { int n; char a[100][4],b[100][4],c; cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < 4; j++) { cin >> a[i][j] >> c >> b[i][j]; } }.

2021-04-05 12:29:50 110

原创 PAT (Basic Level) Practice (中文)1071 小赌怡情 (15 分)

本题还是对输出格式有着要求,空格是两个需要注意,其他就是对情况的分类,没有太大难度,下面是完整的代码#include<iostream>using namespace std;int main() { int T, K, n1, b, t, n2; cin >> T >> K; for (int i = 0; i < K; i++) { cin >> n1 >> b >> t >> n2; if..

2021-04-05 11:55:59 89

原创 PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)

本踢本题也不难,是对数组的应用,但是对于格式输出,输出三位,不足用0补齐,需要用到printf函数,如下printf(“%03d”,x),下面是完整的代码#include<iostream>using namespace std;int main() { int m, n, a, b, ab, juzhen[500][500]; cin >> m >> n >> a >> b >> ab; for (int i = 0;

2021-04-05 11:31:33 124

原创 PAT (Basic Level) Practice (中文)1061 判断题 (15 分)

不难,但是运用了很多数组,还是比较繁琐的,只不过逻辑简单,下面是完整代码#include<iostream>#include<math.h>using namespace std;int main() { int n, m,sc[100],ans[100],st[100][100],sum=0; cin >> n >> m; for (int i = 0; i < m; i++) { cin >> sc[i]; } f.

2021-04-04 18:55:40 63

原创 PAT (Basic Level) Practice (中文)1056 组合数的和 (15 分)

本题不难,下面是完整的代码#include<iostream>#include<math.h>using namespace std;int main() { int n,a[10],sum=0; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j+.

2021-04-04 18:04:21 58

原创 PAT (Basic Level) Practice (中文)1051 复数乘法 (15 分)

每日一题,练题第三天此题难点是输出格式问题,printf函数输出两位小数是四舍五入,所以需要对最后的x,y进行0的判断,所以有下面的if语句,下面是完整的代码#include<iostream>#include<math.h>using namespace std;int main() { double r1, p1, r2, p2, r, p,x,y; cin >> r1 >> p1 >> r2 >> p2; r =

2021-04-04 17:57:14 62

原创 PAT (Basic Level) Practice (中文)1046 划拳 (15 分)

每日第三题,做题第二天题目:本题也不难,还是对数组的应用,下面是完整的代码。#include<iostream>using namespace std;int main() { int n,a[100][4],x=0,y=0; cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < 4; j++) { cin >> a[i][j]; } } for (int i

2021-04-03 20:02:43 75

原创 PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)

每日第二题,练题第二天本题也是挺简单的,可以用穷举遍历来做,结果也没有超时,下面是完整的代码:#include<iostream>#include<math.h>#include<string>using namespace std;int main() { int n,a[1000],b[1000],m,a1[1000]; cin >> n; string s[1000]; for (int i = 0; i < n; i++)

2021-04-03 17:34:59 66

原创 PAT (Basic Level) Practice (中文)1036 跟奥巴马一起编程 (15 分)

每日一题,刷题第二天这题也不难,下面是完整的代码#include<iostream>#include<math.h>using namespace std;int main() { int n; char a; cin >> n >> a; for (int i = 0; i < round(n/2.0); i++) { if (i != 0 && i != round(n / 2.0) - 1) { cou

2021-04-03 17:22:18 513

原创 PAT (Basic Level) Practice (中文)1031 查验身份证 (15 分)

每日第二题,刷题第一天题目:在做本体时,没有太大难度,下面是完整的代码:#include<iostream>#include<string>int qz[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char m[11]={'1','0','X','9','8','7','6','5','4','3','2'};using namespace std;int main() { int n,sum,flag = 0; cin

2021-04-02 23:35:41 58

原创 #PAT Basic Level) Practice (中文) 1026 程序运行时间 (15 分)

每日一题,练题第一天题目:首先在做本题时,有两个难点,四舍五入与格式输出。四舍五入有两个方法:一是应用头文件math.h的函数round(),确实#include<math.h>PTA会报错。二是自己手写int n = ((b - a) + 50) / 100。第二个就是格式的输入,因为没察觉到需要两位数输出时分秒,所以一直有输出错误。查看他人代码发现是格式输出错误,所以应用c的输出printf来进行格式输出(printf("%02d:%02d:%02d", x, y, z))。

2021-04-02 22:52:58 99

Logistic回归模型简述.docx

Logistic回归模型简述.docx

2021-10-12

基于遗传算法解决N皇后问题.rar

基于遗传算法解决N皇后问题,里面包含源代码,课设报告和答辩PPT

2021-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除