自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 递归实现指数型枚举

题述输入输出数据范围样例代码//非递归:#include<iostream>#include<cmath>#include<algorithm>using namespace std;int main(){ int n; cin>>n; cout<<endl; for(int i=1;i<pow(2,n);i++) { int temp=.

2021-11-29 21:39:01 171 1

原创 每日一题之明明的随机数(去重加排序)

题述输入输出样例加数据范围代码:读题编程式://#include<bits/stdc++.h>//#include<algorithm>#include<bits/stdc++.h>using namespace std;int main(){ int n,cnt; int s; int a[105]; cin>>n; s=0; for(int i=0;i<n;i++.

2021-11-25 21:13:14 547

原创 很令人无奈的周赛

题1:除法题述:数据范围输入输出样例代码#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; while(n--) { int m,res; cin>>m; int s=sqrt(m); if(s*(s+1)>m){ res=s*2; cout<<res<&lt.

2021-11-21 11:42:43 807

原创 每日一题之132模式

题述示例思路朴素的做法是分别对三个数进行枚举,这样的做法是 O(n^ 3)的,数据范围是 10^4,稳稳超时。我们可以从 132 的大小特性去分析,如果在确定一个数之后,如何快速找到另外两个数。枚举 i:由于 i 是 132 结构中最小的数,那么相当于我们要从 i 后面,找到一个对数 (j,k),使得 (j,k) 都满足比 i 大,同时 j 和 k 之间存在 j > k 的关系。由于我们的遍历是单向的,因此我们可以将问题转化为找 k,首先 k 需要比i 大,同时在 [i,.

2021-11-17 21:44:20 93

原创 acwing和力扣周赛

acwing题1:找规律输出题述输入输出数据范围和样例代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;int main(){ int n; cin >> n; string a[4]={"I hate that","I love that","I love it","I hate it"};.

2021-11-14 15:39:18 835

原创 同余方程——扩展欧几里得算法

题述输入输出数据范围样例概述因为a和b 、a和b都是gcd(a,b)gcd(a,b)的倍数,则ax+by也一定是gcd(a,b)的倍数ax+by也一定是gcd(a,b)的倍数,所以ax+byax+by能凑出来的最小的数就是gcd(a,b)即gcd(a,b)=d想求两个系数x,y有ax+by=dgcd(a,b)=gcd(b,a mod b)int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}当到达递归.

2021-11-12 20:16:44 567

原创 每日一题之——主导颜色

题述输入输出数据范围样例有点求众数的感觉了思路:开一个哈希表,保存颜色出现的次数。h[i] 的含义是:编号为 i 的颜色出现次数。读入一个颜色,该颜色出现的次数+1.输出出现次数最多的颜色代码#include <iostream>#include <unordered_map>using namespace std;const int N = 610, M = 810;unordered_map<long long.

2021-11-11 15:35:00 90

原创 线段树的入门

概述假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L到R的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)).线段树的原理:将[1,n]分解成若干特定的子区间(数量不超过4*n),然后,将每个区间[L,R]都分解为少量特定的子区间,通过对这些少量子区间的修改或者统计,来实现快速对[L,R]的修改或者统计。条件:用线段树统计的东西,必须符合区间加法,否则,不可能通过分成的子区间来得到[L,R]的统计结果。如图:.

2021-11-09 21:43:55 166

原创 acwing第 24 场周赛

题1题述输入输出数据范围样例题2题述

2021-11-07 18:55:22 108

原创 进制间转化

C语言对进制对的转化#include <math.h>#include <stdio.h>#include <string.h> #define N 50 //进制转换 char *Ten_MoreThanTen(int, int); //10进制数转换成10以上进制数的函数 int MoreThanTen_Ten(int, char[]); //10以上进制数转换成10进制数的函数 int Ten_LessThanTen(int, int).

2021-11-04 21:45:20 119

原创 链式前向星

概述链式前向星其实就是静态建立的邻接表,时间效率为O(m),空间效率也为O(m)。遍历效率也为O(m)。步骤1、建图void addEdge(int start ,int end ,int distance){ edge[cnt].to=end; edge[cnt].dis=distance; edge[cnt].next=head[start]; head[start]=cnt++;}2、遍历for(int i=0;i<n;i++){ for(int j=hea.

2021-11-02 21:08:57 168

原创 再谈博弈问题——复盘周赛石子问题

题述输入输出数据范围样例知识点回顾博弈的必备知识:必胜态:可以转移至必败态。必败态:只能走到必胜态。本题的规律:先找出好找的所有必败态,然后将必败态衍生,其中就是必胜态1.在小于k的时候,n%3==0时才是必败态2.k%3!=0时不需要考虑k的值。那么综合考虑我们只需要找到k%3==0时的规律即可.代码#include<iostream>#include<cstdio>using namespace std;int .

2021-10-31 20:28:46 77

原创 acwing23场周赛

题1输入输出数据范围样例代码解1:#include <iostream>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int main(){ int n,s2; double s1; int a[1010]; cin>>n; for(int i=0;i&.

2021-10-30 20:21:21 123

原创 每日一题之整数的拆分

题述输出输入样例代码

2021-10-29 16:11:30 121

原创 每日一题之2的重新排序

题述输出输入代码class Solution {public: bool check(int targ, int num) { int a[10]; memset(a, 0, sizeof(a)); int b[10]; memset(b, 0, sizeof(b)); while (targ != 0) { int x = targ % 10;.

2021-10-28 21:19:50 53

原创 树状数组入门知识点

树状数组可以解决的问题:这里通过一个简单的题目展开介绍,先输入一个长度为n的数组,然后我们有如下两种操作:输入一个数m,输出数组中下标1~m的前缀和;对某个指定下标的数进行值的修改多次执行上述两种操作...

2021-10-26 21:27:52 97

原创 每日一题之最大的数

题述输入输出注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数代码class Solution {public: string largestNumber(vector<int> &nums) { sort(nums.begin(), nums.end(), [](const int &x, const int &y) { long sx = 10, sy = 10; .

2021-10-25 22:03:37 72

原创 acwing第22场周赛

题1:排位输入输出数据范围代码#include <iostream>#include <algorithm>using namespace std;int main(){ int T,a,b,n,count; cin>>T; while(T--) { count=0; cin>>n>>a>>b; for(int i=1;i<=n;i++) if(i>a.

2021-10-24 20:28:39 128

原创 STL相关知识

vector:向量名:a取向量首元素的迭代器:a.begin()尾元素:a.end()qu首元素的值:a.front()尾元素:a.back()下标形式访问:int value0=a[0]//普通数组的访问向尾部加元素:a.push_back(value)删尾部的元素:a.pop_back()判断是否为空:a.empty求向量元素个数:a.size()翻转向量:reverse(a.begin(),a.end())vector——邻接表(空间优势)struct edge{int fo

2021-10-21 22:12:28 74

原创 最小操作数使数组元素相等

题述输入输出样例解析两种理解:法1、如果我们只是希望让所有元素相等;只看相对差距的话,那选出n-1个增加1和剩下那个减少1有什么区别?所以计算每一个数组内的元素到最小数的差值就好;法2、题干中说每次操作都会使n - 1个元素加1,那么我假设目前数组的总和为sum,最少需要移动的次数为m,所以说整体数组的总和最终会增加m * (n - 1)。最终所有元素都相等,这里我设为x。那么,sum + m * (n - 1) = x * n。所以联立这两个方程就可以得出m = sum - mi.

2021-10-20 17:29:17 419

原创 倒排输出单词

题述输入输出样例代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;int main(){ string s[105]; int n=0; while(cin>>s[n])n++; for(int i=n-1;i>=0;i--) { cout<&.

2021-10-19 21:11:55 66

原创 出现次数最多的数

题述输入输出样例代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;int n;int s[10005],temp[10005];int main(){ cin>>n; for(int i=0;i<n;i++){ cin >> s[i].

2021-10-18 21:25:55 32

原创 位操作总结

位运算在计算机里面,任何数据最终都是用数字来表示的(不管是我们平时用的软件,看的图片,视频,还是文字)。并且计算机运算单元只认识高低电位,转化成我们认识的逻辑,也就是 0 1 。这就是导致计算机里面任何数据最终都是用二进制(0 1)来保存的数字,有时也经常遇到有关的题目。常用位操作判断奇偶(x & 1) == 1 —等价—> (x % 2 == 1)(x & 1) == 0 —等价—> (x % 2 == 0)x / 2 —等价—> x >&gt.

2021-10-17 16:32:46 70

原创 背包问题之摆花

题述输入输出样例代码#include <iostream>#include <algorithm>using namespace std;const int N = 110;int n, m;int f[N];int main(){ cin >> n >> m; f[0] = 1; for (int i = 0; i < n; i ++ ) { .

2021-10-15 20:32:31 37

原创 优先队列BFS

优先队列优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。但是它有一个特性,就是队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队。这点类似于给队列里的元素进行了由大到小的顺序排序。元素的比较规则默认按元素值由大到小排序,可以重载“<”操作符来重新定义比较规则,和普通队列不同的是,队首元素是q.top()。例题http://acm.hdu.edu.cn/showproblem.php?pid=1242题意:某人被关在囚笼里等待.

2021-10-14 21:53:19 426

原创 记忆化DFS

朴素dfs的求解思路朴素dfs实质上就是递归,在递归的过程中获取我们想要的数据。dfs朴素代码 const dfs = (num: number) => { if (num === 1) { return 0; } return num % 2 === 0 ? dfs(num / 2) + 1 : dfs(3 * num + 1) + 1; }记忆化dfs核心是在朴素dfs的基础上新增了一个记录递归中间状

2021-10-13 21:27:03 232

原创 组合博弈入门

简单描述组合博弈定义①有两个玩家②游戏的操作状态是一个有限集合(比如:限定的总的牌的数量③游戏双方轮流操作④双方每次操作符合游戏规定(按规定取牌数量取牌⑤当一方不能继续进行的时候,游戏结束,同时,对方为获胜方⑥无论如何操作,游戏总能在有限次数操作后结束必败点、必胜点定义:必败点(P点):前一个选手(Previous player)将取胜的位置称为必败点(即将要在这个点操作的玩家,一定会输)必胜点(N点):下一个选手(Next player)将取胜的位置称为必胜点(在必胜点的玩家不一定赢

2021-10-12 21:19:40 866

原创 bfs和dfs算法

bfs(广度优先搜索)从某一个顶点出发开始访问,被访问的顶点做相应的标记,输出访问顶点。从被访问的顶点出发,搜索与该顶点有边的关联的某个未被访问的邻接点,并做相应标记。再从根据上述中所有被访问的邻接点,访问与这些邻接点相关的未被访问的邻接点,直到所有顶点访问完为止。实现代码#include<iostream>#include<queue>using namespace std;int visit[101],cnt,n,g[101][101];int main.

2021-10-11 21:07:22 5665

原创 二分图最大匹配

题述翻译大意有n门课程和m个同学,每个课程有多个同学学习,问能不能给每一个课程找一个课代表,每个人只能担任一个课程的课代表。一翻译过后就感觉到了熟悉的气息!输入输出代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <algorithm> using namespace std; con.

2021-10-10 19:01:40 44

原创 一元多式项式相加

题述1.创建两个一元多项式;2.输出一元多项式;3.实现两个一元多项式相加;4.输出相加后的一元多项式目的掌握利用单链表实现两个多项式相加算法代码#include <stdio.h>#include <stdlib.h>typedef struct{ float coef; int expn;} DataType;typedef struct Node{ DataType data; struct Node .

2021-10-08 20:19:53 412

原创 爆炸的奶牛

题述输入输出样例代码#include<bits/stdc++.h>using namespace std;int n,k;int x[(int)5e4+10];bool check(int R){ int s=0,now=INT_MIN; for(register int i=1;i<=n;i++) { if(now<x[i]-R) { s++; now=x[i]+R; //更新当前范围 if(.

2021-10-06 09:56:34 55

原创 洛谷之—水晶灯火灵(吐血)

题述输入输出样例题目的大概解释有没有和我一样的看到这道题的题目描述之后蒙圈了的小伙伴啊,这道题看了半天,发现迷迷糊糊的,反应了老半天。最后发现是斐波那些数列,把自己整的无语了。。。。。那就上代码代码#include<stdio.h>int main(){ int m,n; int k; int c; scanf("%d",&k); for(m=n=1;m+n<k;){ c=m+n; .

2021-10-05 09:01:37 74

原创 acwing 3992 树上有猴

题述输入输出样例代码//#include<stdio.h>//#include<iostream>//#include<cstdlib>//#include<string.h>#include<bits/stdc++.h>using namespace std;int main(){ long long int n,w; scanf("%lld %lld",&n,&w);.

2021-10-05 08:52:27 77

原创 看图做题——找规律

题述数据及输入输出样例代码#include<bits/stdc++.h>using namespace std;int main(){ int a,b; int n; //int f[1]=1; cin>>n; a=1; for(int i=1;i<=n;i++){ a=a+(i-1)*12; } cout<<a<&l.

2021-09-28 20:32:47 301

原创 不同的数且找出下标

题述输入输出样例代码#include<iostream>using namespace std;int a[105]; int ans[105]; bool flag[105];//真假int main(){ int n,k; int count=0;//count为符合要求的元素个数 cin>>n>>k; for(int i=1;i<=n;i++) cin>&gt.

2021-09-27 16:54:07 51

原创 pow()函数的运用

题述输入输出数据范围代码//#include<bits/stdc++.h> #include<iostream>#include<math.h> //#include<cmath> using namespace std;int main(){ int a,b; long long d=0; cin>>a>>b; for (int c=1;c<=a;c++) {.

2021-09-24 21:23:36 2890

原创 在O(1)时间删除链表结点

题述样例代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void deleteNode(ListNode* node) { auto p=no.

2021-09-23 22:00:37 32

原创 01背包问题及完全背包问题

题述01背包输入输出代码#include<bits/stdc++.h>using namespace std;const int MAXN = 1005;int v[MAXN]; // 体积int w[MAXN]; // 价值 int f[MAXN][MAXN]; // f[i][j], j体积下前i个物品的最大价值 int main() { int n, m; cin >> n >> m;.

2021-09-22 21:26:22 72

原创 acwing3971——最小的商

题述输入输出代码代码一:#include<bits/stdc++.h>using namespace std;int main(){ int t,n,k; int m=0; int a[110],b[110]; cin>>t; while(t--){ cin>>n>>k; for(int i=0;i<n;i++)cin>>a[i]; .

2021-09-22 20:32:32 55

原创 acwing平衡数组——题都差点没看懂

题述输入输出大概的描述这题的样例具有极高的迷惑性,可以说本题就是直接输出1到n,这题出的确实好玩啊对数组中特定元素以外元素增加i等价于将特定元素减去i,其实我们只需要遍历数组每个元素并输出即可,遍历完成后等价于数组中元素全部为0(实际不是0,是一个其他数值,但数组中所有元素均等于这个数值。代码#include <iostream>#include <cstring>#include <algorithm>using namespa.

2021-09-17 20:04:42 48

KMP算法的实现.doc

模式匹配算法(主串中找子串)

2022-01-12

用C++制作一个简易计算器.docx

设计一个简易的计算器

2021-07-19

空空如也

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

TA关注的人

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