![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Codeup
Roxannekkk
这个作者很懒,什么都没留下…
展开
-
leetcode-10正则表达式匹配
题目链接动态规划:dp定义:*dp[i][j]*表示s的前i个字符是否能与p的前j个字符匹配;base case:dp[0][0]=true;s和p都为空时,匹配一定成功;(即字符串是从1开始,空串情况dp[0][0]作为基准点)状态转移方程:p[j - 1]为普通字符,若s[i - 1] == p[j - 1],则dp[i][j] = dp[i - 1][j - 1],否则匹配失败;p[j−1]为’.’,则dp[i][j] = dp[i - 1][j - 1];p[j−1]为’*’:(1原创 2020-12-13 12:27:06 · 86 阅读 · 0 评论 -
两个字符串的最小ASCII删除和
题目内容题目要求:给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。解题思路解题思路:此题为为最长公共子序列的变形定义:s1[0..i-1] 和 s2[0..j-1]的最小ascii码删除和dp[i][j]目标:s1[0..m-1] 和 s2[0..n-1] 的最小ascii码删除和,即 dp[m][n]base case: dp[0][..] 对应的(有长度的)字符串ascii码的和,因为如果一个字符串为空,另一个字符串必然要被全部删除,所以需要计算另原创 2020-11-19 15:01:18 · 653 阅读 · 0 评论 -
问题 A: Set Similarity (25)
题目链接题目大意:给定两个整数集合,它们的相似度定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度nc是两个集合的公共元素个数,nt是两个集合的所有包含的元素个数(其中元素个数表示各个元素之间互不相同)分析:因为给出的集合里面含有重复的元素,而计算nc和nt不需要考虑两个集合里面是否分别有重复的元素,所以可以直接使用set存储每一个集合,然后把set放进一个数组里面存储。当需要计算集合a和集合b的相似原创 2020-09-23 22:30:09 · 207 阅读 · 0 评论 -
问题 B: Student List for Course (25)
添加链接描述没做出来的方法:构建一个vector数组里面的每一个元素都是字符串类型,即每一个课号对应一串学生名;但不知道为什么输出全是最后一个人的名字;#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#原创 2020-09-20 19:53:19 · 77 阅读 · 0 评论 -
问题 A: Course List for Student (25)
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>#include<vector>using namespace std;//题目要原创 2020-09-20 18:40:00 · 68 阅读 · 0 评论 -
问题 B: 求组合数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;const int maxn = 60;long lo原创 2020-09-18 17:42:05 · 93 阅读 · 0 评论 -
问题 A: 计算组合数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;float fact(int n) { if (n =原创 2020-09-18 17:06:23 · 138 阅读 · 0 评论 -
问题 C: 浮点数加法
题目链接算法思路借鉴#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;const int maxn = 2000原创 2020-09-15 20:06:59 · 262 阅读 · 0 评论 -
问题 F: 10进制 VS 2进制(大整数)
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;struct bign { //存储大整数 int原创 2020-09-15 18:48:11 · 92 阅读 · 0 评论 -
问题 E: 大整数排序
题目链接利用compare函数比较大小的结果构建cmp函数,再利用sort函数来排序即可;#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using n原创 2020-09-10 13:43:29 · 143 阅读 · 0 评论 -
问题 D: 进制转换
题目链接第一次做时,单纯的利用了,先把m进制转成10进制,再将10进制转换为n进制的思路,且在考虑数据范围时过小,没有考虑到大整数的情况,所以没能ac;#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#原创 2020-09-10 13:05:56 · 359 阅读 · 0 评论 -
问题 B: N的阶乘
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;//自己定义的结构体不需要重载=,可以直接使用,一个结构原创 2020-09-10 11:24:34 · 248 阅读 · 0 评论 -
问题 E: 完数与盈数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int e[60] = {原创 2020-09-08 16:38:31 · 97 阅读 · 0 评论 -
问题 D: 约数的个数
题目链接利用此结论所做;#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;const int maxn = 1原创 2020-09-08 16:07:33 · 76 阅读 · 0 评论 -
问题 C: 质因数的个数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;const int maxn = 100010;int原创 2020-09-08 15:29:38 · 129 阅读 · 0 评论 -
完数
题目链接因为这里是因子,不是质因子,所以对每个1~n的数都寻找它的因子,每找到一个因子,就减去这个因子,如果找完所有因子之后,那个数被减为0,就说明这个数正好是个完数,于是输出即可。最后记得要控制空格的输出,如果是第一个数,就直接输出,如果是后面的数(第二第三个)就先输出一个空格,再输出数。#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#inc原创 2020-09-08 15:02:53 · 95 阅读 · 0 评论 -
问题 C: Goldbach‘s Conjecture
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;const int maxn = 1000000;in原创 2020-09-08 10:45:12 · 133 阅读 · 0 评论 -
问题 B: Prime Number
题目链接第一次做法利用了打表,有错误,仔细看后发现,他是要求第k个素数,k的取值<=10000,而打表的方法复杂度O(sqrt(n)*n),n超过105即会超时,所以不能利用打表法;fail to ac#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm原创 2020-09-08 10:14:16 · 138 阅读 · 0 评论 -
问题 A: 素数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;const int maxn = 10005;boo原创 2020-08-25 15:25:59 · 176 阅读 · 0 评论 -
问题 A: 分数矩阵
题目链接利用矩阵的规律即可,有n个1,2(n-1)个1/2,2(n-2)个1/3以此类推#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using na原创 2020-08-25 13:46:40 · 133 阅读 · 0 评论 -
问题 A: Least Common Multiple
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int gcd(int a, int b) { if原创 2020-08-17 00:57:48 · 106 阅读 · 0 评论 -
问题 K: 迭代求立方根
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int n; double原创 2020-08-17 00:21:39 · 84 阅读 · 0 评论 -
问题 M: 鸡兔同笼
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int n; scanf(原创 2020-08-17 00:05:01 · 114 阅读 · 0 评论 -
问题 C: 百鸡问题
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int n; while原创 2020-08-10 00:25:19 · 264 阅读 · 0 评论 -
问题 F: 计算两个矩阵的乘积
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int a[2][3] = { 0 }, b[3][2]原创 2020-08-10 00:18:08 · 129 阅读 · 0 评论 -
问题 L: 与7无关的数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int seven(int x) { if (x %原创 2020-08-09 23:14:26 · 149 阅读 · 0 评论 -
问题 G: 加法等式
题目链接#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int i, j, k; for (i = 0;i < 10;i++) fo原创 2020-08-09 23:03:12 · 118 阅读 · 0 评论 -
问题 J: 多项式的值
题目链接#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int m; scanf("%d", &m); while (m--) {原创 2020-08-09 23:01:51 · 116 阅读 · 0 评论 -
问题 H: 整数和
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int m; scanf原创 2020-08-09 01:05:07 · 102 阅读 · 0 评论 -
问题 E: 众数
题目链接#include<stdio.h>int main () { int a; while(scanf("%d", &a) != EOF) { int b[12] = {0}; b[a]++; for(int i = 1; i < 20; i++) { scanf("%d", &a); b[a]++; } int temp= 0; for(int i = 1; i < 11; i++) if(b[i] > b原创 2020-08-09 00:59:10 · 87 阅读 · 0 评论 -
问题 D: abc
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { for (int i =原创 2020-08-09 00:40:22 · 114 阅读 · 0 评论 -
问题 B: 反序数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;void toarray(int n, int a[])原创 2020-08-09 00:35:17 · 77 阅读 · 0 评论 -
问题 A: 守形数
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int main() { int n; while原创 2020-08-09 00:24:32 · 68 阅读 · 0 评论 -
codeup 问题 A: 求第k大数
添加链接描述题目要注意的地方:求第几大,此处可以有两种理解:eg{1,2,3,4,5,6}求第三大。1.第一大是6,第二大是5,第三大是4,而本题则是采用这种理解方式。2.1是最小,2是第二大,3是第三大。算法笔记中的代码的写法理解靠近于此,所以构建代码时需要进行改进,算法笔记中第k大,意味着题目中第n-k+1大;#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string原创 2020-08-08 23:49:46 · 120 阅读 · 0 评论 -
问题 B: 基础排序III:归并排序
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int a[100005];void merge(in原创 2020-08-04 00:50:35 · 95 阅读 · 0 评论 -
问题 C: 快速排序 qsort [2*]
题目链接#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;int a[100005];int partition原创 2020-08-04 00:26:47 · 96 阅读 · 0 评论 -
问题 B: 打印极值点下标
题目链接代码写的有点糙,利用了另外一个数组来存放最值下标(方便控制输出格式)#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int main() { int n; while (scanf("%d",原创 2020-07-27 00:27:32 · 121 阅读 · 0 评论 -
问题 C: 查找
题目链接注意:a是个无序数组,要对a排序后再使用;二分法建立在数组有序的情况下;#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int binsearch(int a[], int left, int ri原创 2020-07-26 23:54:23 · 77 阅读 · 0 评论 -
问题 A: 找x
题目链接利用倒叙查找,省去了单另设置x存在与否的标志位的麻烦;#pragma warning(disable:4996);#include<stdio.h>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int main() { int n; while (scanf("%d", &n)原创 2020-07-26 23:25:07 · 92 阅读 · 0 评论 -
问题 C: To Fill or Not to Fill
题目链接#pragma warning(disable:4996);//1.在油箱加满后到达另一个加油站,要考虑油箱剩余油量。即每次油箱加满之后,到达下一加油站的实际剩余油量为cmax - (station[min].distance - station[now].distance)/avg//2.在计算加满花费时,也要考虑油箱剩余油量。这部分是不算的,之前直接用cmax * station[now].price,最后的价钱变多。/*这里首先将各加油站按照距离进行排序,如果没有距离为0的加油站,则直原创 2020-07-15 22:00:53 · 121 阅读 · 0 评论