自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 数据结构可视化(适合考研党)

还在疑惑平衡二叉树、红黑树、B树、B+树怎么插入构建的吗,不要慌张,这个网站会一步一步来演示.

2024-04-30 16:34:28 768 2

原创 Go语言map、slice、channel底层实现(go面试)

Go语言map、slice、channel底层实现

2024-04-10 21:58:04 396

原创 Go使用的格式化占位符汇总

GO的格式化占位符大全

2024-04-08 18:07:59 227

转载 解决pycharm开启一直在Update index

解决pycharm开启一直在Update index

2023-04-27 08:26:08 2870 1

转载 简单的二维梯度下降 (适合入门)

神经网络 梯度下降

2022-10-21 21:15:06 319

原创 测量计算机大小端代码

测量计算机大端还是小端

2022-09-18 15:43:13 118

原创 Java中自定义排序(cmp)

java中可以利用Arrays.sort()进行顺序排和逆序排。逆序排的话得重写Comparator中compara这个方法import java.util.Arrays;import java.util.Comparator;public class test2{ public static void main(String[] args) { Integer a[]={5,1,8,2}; Comparator cmp = new MyComparator

2022-05-22 10:16:24 411

原创 L2-020 功夫传人 (25 分)

题目浅浅的复习一下dfs,这个题就是用简单搜索,题目输入用vetor记录就行。#include<bits/stdc++.h>using namespace std;const int N=1e5+5;map<int,int>mp;double ans=0;double z,r;vector<int>v[N];bool vis[N];bool dedao[N];int p[N];void dfs(int i,int deep){ if(dedao[

2022-04-17 22:36:40 179

原创 清点代码库 (25 分)

题目链接这个题看起来思路一下子就来了,但是就是过不了全部样例,起初自己用string来存后面的数字,用map映射,但是总是有样例过不了,后来看到了大佬的博客真的绝绝子,属实自己对STL了解太少了。。这里有要注意,vector竟然可以比较大小!!!还有可以用来作为map的关键字!!!#include<bits/stdc++.h>using namespace std;map<vector<int>,int>mp;vector<int>v;bool

2022-04-16 00:07:21 524 1

原创 纯质数(十二届蓝桥杯c++B组国赛)(欧拉筛)

结果1903,运行以下代码会RE,因为数值开太大了,不过可以在自己电脑上运行然后再得到结果欧拉筛B站视频这里:点这里#include<bits/stdc++.h>using namespace std;const int N=20210605;const int maxn=3e8+5;int prime[maxn];bool vis[maxn];int k=0;void ols(){ for(int i=2;i<=N;i++){ if(!vis[i]) prime[

2022-04-05 23:45:05 797

原创 全排列的两种方法

回溯法:#include <bits/stdc++.h>using namespace std;int n, num[50], a[50];bool mark[50];void dfs(int x) { if (x == n+1) { for (int i = 1; i <= n; i++) cout << a[i]; putchar('\n'); return; } for (int i = 1; i <=n; i++) { int t

2022-03-22 23:31:13 82

原创 stringstream读取带空格的字符串中数字

#include <bits/stdc++.h>using namespace std;int main(){ string str,tstr; stringstream ss; getline(cin,str);// ss<<str; while(ss>>tstr){ stringstream tss;//只可以再while里面定义一个临时的 tss,如果定义在外面,值不会改变 tss<<tstr; int val;

2022-03-10 17:21:50 403

原创 树状数组(单修区查+区修单查+离散化)

B站视频入门单点修改 区间查询洛谷原题代码中ask(x)为查询tree的前缀和#include<bits/stdc++.h>using namespace std;#define lowbit(x) (x&(-x)) const int N=5e5+9; int tree[N];int n,m;void add(int x,int k){ while(x<=n){ tree[x]+=k; x+=lowbit(x); }}int ask(int x

2022-02-07 16:34:13 114

原创 最小生成树代码模板(prim+kruskal)

prim(邻接矩阵存图):#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3fconst int N=1e3+5;int dis[N],mst[N];int graph[N][N];int n,m;void prim(int graph[][N],int n){ int dis[N];//dis[i]:MST到i点的最小距离 dis[i]=0表示已经加入最小生成树 int mst[N];//m

2022-01-18 20:51:43 914

原创 (数据结构)二叉排序树的插入、删除

关于插入不多说,主要讲讲删除操作的第三种情况吧。前面的两种情况比较简单,包含了只有左或者只有右还有左右都没 有的第三个情况就比较复杂,左右子树都存在,想删除这个节点(设为P)我们采 用取代的方法,在P的左右子树里面找到合适的一个节点代替它,根据二叉排序树的特点,可以找P的左子树中最大 的或者右子树中最小的,这里我们讲讲前者。假设一个二叉排序树如图:我们要删除节点47,执行玩第50行时P,q,s分别指向47,47,35跳出while循环时,P不变,s指向37,q一直指向s的父节点,即35,如

2021-11-26 16:56:37 6823 3

原创 (数据结构)图的邻接矩阵创建+DFS遍历(字符串顶点)

数据结构书上面的代码太复杂了,笔者直接简化来写#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3fconst int N=101;bool vis[N];typedef struct { int vexnum;//节点数 string vexname[N];//节点名字 int arc[N][N];//边权 int acrnum;}Graph;int Locatevex(Graph &am

2021-11-25 11:57:47 586

原创 DP背包问题(01+完全+多重)

01背包用于每个物体可拿无限次题目有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。in第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。out输出一个整数,表示最大价值。样例:in:4 51 22 43 44 5out:

2021-10-24 21:46:00 100

原创 初认set(set的插入+遍历+删除)

废话不多说,上代码:#include <bits/stdc++.h>using namespace std;set<int> myset;set<int>::iterator it;int main () { for(int i=5;i>0;i--) myset.insert(i*100);/*set可以自动排序*/ printf("原数列:\n"); for(it=myset.begin();it!=myset.end();it

2021-09-23 20:07:07 463

原创 初认map(map的遍历和删除)

废话不多说,上代码解释:/*mapj就是元素的映射 */ #include <bits/stdc++.h>using namespace std;map<char,int>mymap;map<char,int>::iterator it;int main () { mymap['a']=1; mymap['b']=2; mymap['c']=3; mymap['d']=4; mymap['e']=5; mymap['f']=6

2021-09-23 20:05:00 137

原创 单链表的头插和尾插精简代码

尾插:void input(Linklist &L,int n) //头插 { Linklist p,head,tail; int i; tail = L; for(i = 1;i <= n;i ++) { p=(Linklist)malloc(sizeof(LNode)); p->next=NULL; scanf("%d",&p->date); tail->next = p; tail = p; } retu

2021-09-09 20:37:53 141

原创 快速幂模板

具体看这个大佬的博客真的超级详细#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod=10000007;// base 为底 power为指数 ll fastpower(ll base,ll power){ ll ans=1; while(power){ if(power&1){//power奇数? ans=ans*base%mod; } power

2021-09-05 15:23:26 75

原创 数列分块入门1-9

这里写目录标题数列分块入门1数列分块入门2数列分块入门1Description给出一个长为n 的数列,以及 n 个操作,操作涉及区间加法,单点查值。Input第一行输入一个数字n。第二行输入n个数字,第i个数字为ai,以空格隔开。接下来输入n行询问,每行输入四个数字opt,l,r,c,以空格隔开。若opt=0,表示将位于[l,r]的之间的数字都加c。若opt=1,表示询问ar 的值(l和c忽略)Output对于每次询问,输出一行一个数字表示答案。SamplesInput41

2021-08-15 11:46:07 753

原创 MAX-=min

题目Snuke had N cards numbered 1 through N. Each card has an integer written on it; written on Card i is ai.Snuke did the following procedure:Let X and x be the maximum and minimum values written on Snuke’s cards, respectively.1.If X=x, terminate the pro

2021-07-26 19:34:19 107 2

原创 对大数取余的简单方法(字符串)

一个大数用字符串表示,求将其对n取余的结果#include<bits/stdc++.h>using namespace std;const int N=1e5+5;char s[N];int main(){ int n; scanf("%s", s); cin>>n; int len = strlen(s); int ans = 0; for (int i = 0; i < len; i++) ans = (ans

2021-07-26 17:25:23 833

原创 UVa12325 12325 - Zombie‘s Treasure Chest(思路+代码)

UVa12325 12325 - Zombie’s Treasure Chest(思路+代码)题意:给定一个容积为n的箱子,装两种宝物,每一种宝物有数量s和价值v这两个参数,问如何装才能使价值最大(输入均为32位带符号的整数)思路一开始肯定会想到贪心来找性价比高的,但是举个例子(n=100,s1=90,v1=90;s2=25,s2=24)此时物体1的性价比高,但是放了物体1才价值90,如果全部放物体2有价值96,所以不仅仅只看性价比,这个时候我们应该来枚举性价比低的那个物体(物体2),但是范围是多少

2021-07-24 10:24:09 149

原创 关于string 的一些小知识

输入输出也可以用s.size()输出插入去除字串

2021-03-22 20:36:21 85 1

原创 牛客——等价串

题目题目网址一串长度为 n 的字符串 A 和一串长度为 m 的字符串 B。并且这两串字符串只会含有 0 或 1 。铁子可以对字符串 A 执行两种操作,两种操作可以执行任意次。操作1(无情替换):铁子可以用 11 替换掉 0 ,也可以用 00 替换掉 1 .操作2(极限删除):铁子可以删除掉 111 ,也可以删除 000 .现在问,字符串 A 可以变成字符串 B 吗?输入描述:第一行有一个整数T,表示有T(1<=T<=1000)组测试数据。接下来的每组数据,第一行有两个整数n,m

2021-03-18 20:54:42 161

原创 并查集(路径压缩)

并查集其实就是两个函数一个找祖先节点(find)一个来联合(join)//并查集2个函数的代码//查找x的祖先节点 int find(int x){ if(pre[x]==x) return x; return pre[x]=find(pre[x]);}//合并 x 和 y 使他们到一个祖先节点上面 4void join(int x ,int y){ int fx=find(x),fy=find(y); if(fx!=fy){ pre[fx]=fy; }}

2021-03-07 15:41:15 105

原创 Go Home(UPC)

Go Home(UPC)There is a kangaroo at coordinate 0 on an infinite number line that runs from left to right, at time 0. During the period between time i−1 and time i, the kangaroo can either stay at his position, or perform a jump of length exactly i to the l

2021-02-19 11:30:31 106 1

原创 巴什博奕(一看就懂)

题目有一堆n个物品,两个人轮流从这堆物品中取, 每次至少取一个,最多取m个,最后取完者得胜。说明不管怎么样,就是想尽办法给对手留下(m+1)的倍数个物体,你就可以赢,比如你给对手只留下(m+1)2个,对手也会想尽办法给你留下(m+1)的倍数个,但是此时对手没办法留下(m+1)的倍数个,那就假设他拿了m个,而此时你就有办法留下(m+1)的倍数个给对手,此时还剩m+2个,你就拿1个,只剩下m+1个物体了,不管对手怎么拿必输!前面假设他拿了m个如果还不理解那就在假设对手拿了1个,那此时还剩2m+1个物体,你

2021-01-15 19:50:14 279 2

原创 解决冒泡排序中的先后顺序问题

解决冒泡排序中的先后顺序问题说明冒泡排序是我们经常用到的排序方式;但是也有一个致命缺点:就是排序时是将一个数与它后面的每一个数进行比较当两个数相等时,如果被比较的那个数后面有比他小的数,那么他前面的那个比较数就会和他后面的数交换位置,但是一些题目要求当两个数相等时,按先后顺序排序,那这个时候冒泡就不行了。比如一组数:13(a) 9 16 11(a) 13(b) 11(b)我们要得到:9 11(a) 11(b) 13(a) 13(b) 16 ;而冒泡排序只能得到:9 11(a) 11(b) 13(

2020-12-18 16:16:49 475 3

原创 OJ最大回文数(1e32)

题目回文数指的是一个数字,从左到右读和从右到左读都一样。例如,1221和1234321 是回文数,1234 不是回文数。现有n 个正整数ai(i=0,1,2,3,…,n−1),请找出其中最大的回文数。注:对于30%的数据,1≤n≤100,1≤ai≤108。对于60%的数据,1≤n≤1000,1≤ai≤1016。对于100%的数据,1≤n≤104,1≤ai≤1032。输入输入文件的第一行只有一个正整数n,代表正整数ai 的个数。接下来的n 行,每行包含一个正整数ai。输入保证一定有回文数。输出

2020-12-02 20:48:48 2549

原创 OJ汉诺塔问题

汉诺塔题目如图所示的三根针,其中A针上穿好了由大到小的64片金片,不论白天黑夜,总有一个和尚在按照下面的法则移动金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。和尚们预言,当所有的金片都从A针移到C针上时,世界就将在一声霹雳中消失,这就是所谓的汉诺塔。请编程求出将A针上所有金片移到C上的步骤。输入标准输入,一个整数N,表示有N(N不超过5)个金片。输出标准输出,输出所有步骤,每一步骤占一行。#include<bits/stdc++.h>using namespace s

2020-11-19 21:03:19 815

原创 OJ开关灯问题

开关灯问题标题将n个灯泡编成n号,即1,2,3,…n。现有n个人去拉开关,第一个人把1的倍数的灯号开关都拉一下,第二个人把2的倍数的灯号都拉一下,第三个人把3的倍数的灯号都拉一下,……直到第n个人将第n号灯泡拉一下。假定开始时,灯泡全不亮,请问:这n个人全拉完后,有多少个灯泡是亮的?输入一个整数n(1<n≤1000000000)二、说明这个题如果循环用i++来做的话一定超时;注意到,第n个人拉完后,剩下的亮着的灯号一定是一个平方数,不行的话可以自己举例子,又注意到,每一个平方数都可以拆为k个奇数

2020-11-16 23:08:42 1378 2

空空如也

空空如也

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

TA关注的人

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