自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【解决方案】Pycharm 运行代码DLL,找不到numpy包

我的晚上/(ㄒoㄒ)/~~,研究一晚上,我系统变量改了不行,pycharm里面手动改了也不行,看了所有的方法,卸载重装,各种大操作,就在我打算放弃的时候,只需要anaconda打开pycharm就可以了,这样会自动配置虚拟环境的变量(虽然不知道为什么我手动不行,但是他就可以运行了!

2023-12-02 21:54:38 414

原创 分割字符串并输出

//1.矩阵链乘#include<bits/stdc++.h>#include<sstream>using namespace std;const int N=5000;const int inf=100010;int M[N][N];int s[N][N];int a[N];void print(int i,int j){ if(i==j) cout<<"A"; else{ cout<<"("; print(i,s[i][j

2021-12-22 19:09:55 595

原创 algrim第三章-dp

2021-11-02 22:01:52 105

原创 algm课后作业-dp

NO.1 链条切割问题NO.2 机器人两次走路NO.3 租用游艇------自底向上计算—//长度为n的链条进行切割 #include<bits/stdc++.h>using namespace std;const int N=10010;const int minn=0x0c0c0c0c;int a[N],n,r[N];int main(){ cin>>n; for(int i=1;i<=10;i++) cin>>a[i]; for

2021-10-13 11:37:02 157

原创 algm作业-第二章

2021-10-12 19:03:40 67

原创 algm作业-第一章

2021-09-21 17:11:17 157

原创 2021-5月碎碎念总结

今天算是恢复元气了哈哈还是不能通宵orz写这篇博客的目的:对五月做一个小小的总结对六月做一些规划五月算是半忙半颓废,是认真开始减肥的第一个月,现在的话,算作是减肥20天了,126---->122四斤,本来有一次118.7斤来着,结果又弹回来,因为最近饮食结构太不规律了,没有好好吃饭,吃了不少的零食和面包,也没有好好跑步,1是身体原因,2就是下雨,然后开始几天运动量太大,脚有点点疼,现在开始隔天跑。夏天好吃的诱惑太大了,但是美食有变成美女重要吗!?没有!所以还是继续减肥,不是很着急的事情

2021-06-01 22:04:21 241 4

原创 2021-5-17数据结构

深搜–vector#include<bits/stdc++.h>using namespace std;const int N=10100;int n,e;vector<int> adj[N];bool book[N];void dfs(int u){ book[u]=1; cout<<u<<" "; for(int i=0;i<adj[u].size();i++){ int v=adj[u][i]; if(book[v.

2021-05-17 10:53:53 74

原创 栈 表达式求值

把运算的处理专门放在一个函数里,然后通过优先级的判断去调用函数,注意那个’('还是放在else if里面吧,不要和运算混在一起了#include<bits/stdc++.h>using namespace std;const int N=1e5+10;stack<int> s1;stack<char> s2;int flag=0;//处理+-*/四个 map<char,int> cmp={ {'+',1}, {'-',1} , {'*',

2021-03-17 11:21:13 68

原创 3175.人物相关性分析

任务相关性分析还是超时,,有时间再改改吧//----好好写代码#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=1e6+10;int kk;string aa="Alice";string bb="Bob";int a[N],b[N];//记录出现的位置 long long cnt=0;int cmp(int a,i

2021-03-13 15:57:47 122

原创 字符串操作

1 对于字符串数组的操作可以输入空格—gets() 、cin.get() 、cin.getline() 、strlen 计算字符串数组的长度,计算长度的时候不会把\0计算进去strcat 拼接函数strcpy 拷贝函数strcmp 比较函数void text01(){// gets(b);//可以输入空格// cin.get(b,4); //接收3个字符+'\0 ',,当然也可以接收空格呀 cin.getline(b,4);//这俩差不多哈哈 cout<<a

2021-03-13 14:26:23 507

原创 找指定字符串

#include<iostream>#include<cstdio>#include<cstring>using namespace std;char pattern[]="ABABCABAA";char text[]="ABABABCABAABABABAB";int n=9;int prefix[9];//长度1-9 void prefix_table(char pattern[],int prefix[]){ prefix[0]=0; int

2021-03-13 12:53:50 68

原创 Kruskal算法

P1195 口袋的天空n个点,m条边,连成k个集合,也就是连(n-k)条边,并且使得连接的边权值最小1.判断能不能成功 m>n-k2.连n-k条边使得边权值之和最小,所以Kruskal算法有边的排序//口袋的天空//分析一下,就是k棵树要连n-k条边,怎么使边之和最小呢 //Kruskal算法有排序#include<iostream>#include<cstring>#include<algorithm>using namespace std

2021-03-12 22:23:27 68

原创 存在负权边

1.bfd算法—O(nm) 第一重是点,迭代k次的话是指,从1 开始最多不经过超过k条边注意的是要有备份,backup数组,更新的时候用备份的数组更新#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=510,M=10010;const int INF=0x3f3f3f3f;int n,m,k;int dist[N];int b

2021-03-12 10:58:58 279

原创 Dijkstra算法及优化

单源最短路径–都是正权边时1.一种特殊情况,当边权是1 的时候,可以直接bfs,用book[N]来继承路径长度(拓扑排序的时候book[N] 存的是入度2.朴素Dijkstra算法,,适用于稠密图,n^2<m时,注意这时邻接矩阵不能越界,当然可以用邻接表存#include<iostream>#include<cstring>using namespace std;const int N=1e5+10;const int INF=0x3f3f3f3f;int

2021-03-11 21:50:58 337

原创 数组存邻接表

模板://数组表示邻接表int top=0;//向--点中存第top个边 int head[MAX_N]=-1;//每个点在建立邻接表时,栈顶的边的编号 //边的结构体 struct Edge{ int v;//另一端连接的点 int next;//栈中 下面 一条边的编号 }e[MAX_E];void add(int u,int v){ e[top].v=v; e[top].next=head[u]; head[u]=top++;//top为要加入边的编号,更新后为下一次

2021-03-07 20:48:09 201

原创 子序列

//最长连续不重复子序列#include<iostream>using namespace std;const int N=1e6+10;int a[N],s[N];int main(){ int n;cin>>n; for(int i=0;i<n;i++) cin>>a[i]; int res=0; for(int i=0,j=0;i<n;i++){ s[a[i]]++; while(s[a[i]]>1){ s[a[j]

2021-03-06 21:12:45 105

原创 sort

C语言qsort#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;void print(int *array,int n){ for(int i=0;i<n;i++){ cout<<array[i]<<" "; } cout<<endl;}int cmp(const void* a,const void* b){

2020-12-29 20:45:47 68

原创 排序

O(n^2)选择排序冒泡排序插入排序#include<iostream>#include<cstring>using namespace std;void swap(int &a,int &b){ int t=a; a=b; b=t;}void bubble_sort(int *array,int size){ int flag=1; for(int i=1;flag && i<size;i++){ flag=

2020-12-24 20:41:57 95 2

原创 堆 46

h->data =new int[max+1];这里是中括号才行!#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<climits>using namespace std;typedef struct Node{ int *data; int size; int capacity;}heap,*Heap;.

2020-12-24 17:52:35 130 2

原创 图的一系列操作c++

#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<vector> #include<map>#include<queue>using namespace std;//基类class Graph{protected: int n_v;//顶点数量 bool directed;//有向的 ve

2020-12-22 11:04:46 90 2

原创 Tree Traversal again

题目链接根据前序和中序写出后序—可以创建出树再后序遍历—也可以不创建出树直接把后序遍历的结构存到数组两种代码差不多,之前写的并没有理解,重新写一遍要注意一些细节,以及递归出口有两个。#include<stack>#include<iostream>#include<cstring>using namespace std;int pre[50],in[50],post[50];int flag=0;void sol(int pre_f,int in_

2020-12-20 22:03:49 129 1

原创 DisJoint_Set

//不相交集的概念(并查集) Union Find //disjoint set && set//查找某个元素在那个集合 //map <A B > key - value#include<iostream>#include<set>#include<map>using namespace std;typedef struct Disjoint_Set{ int *data; int *parent;//负数利用起来

2020-12-08 11:52:56 143

原创 Prince and Princess

原题链接:https://nanti.jisuanke.com/t/42402思路:理解题意:有A个好人,B个坏人,C个路人,题目考虑的是最坏情况,所以就是A个好人,B+C个坏人。忽略一二问题,只关注第三个问题—公主在哪个房间,只能根据他们的话来判断,所以—哪个房间号被说的多就是哪个,最坏情况就是B+C串通一气说了同一个错误的房间号,这时候就需要A比B+C多,才能够判断出来。解决答案:王子需要问A+B+C次嘛,不需要⑧,我们做这么多的目的就是为了,让好人的答案,比坏人的答案多一个就够了,因为你已经

2020-11-29 19:45:26 121 2

原创 最近遇到的错误

最近一直犯一些很憨的错误(lll¬ω¬)1最小堆,就是基本的插入/删除操作,然后插入的时候调用up上溯函数,删除的时候调用down下溯函数①这里的改成x,或者不改无所谓②如果Traverse里面有递归哈,那个flag判断空格的就要放在函数外面,i也要放在外面另一种打印方法没用flag,我觉得也很好哈哈void printheap(Heap h){ for(int i = 1; i < h->size; i++) cout << h->data[i] &lt

2020-11-25 22:11:09 103

原创 PTA6-23 判断是否为二叉搜索树

整体思想是,中序遍历,存储得到的遍历序列,⭐⭐⭐从头到尾扫描序列,出现逆序则返回false,否则返回true因为这是函数题,1.递归不能用 2.STL不能用然后就是数组模拟栈⭐bool IsBST ( BinTree T ){ if(!T) return true; BinTree* temp=(BinTree*)malloc(sizeof(BinTree)*100100); int* result=(int *)malloc(sizeof(int)*100100); int i

2020-11-15 17:26:30 109

原创 根据xz hz创建树

1.xzBinT creat_Tree(char *a,char *b,int n){ BinT T; int i=0; if(!n) return NULL; T=new Tree(); T->data =a[0]; for(i=0;i<n;i++){ if(a[0]==b[i]) break; } //创建树就是把他们连起来,左右 T->left =creat_Tree(a+1,b,i); T->right =creat_Tree(a+1+i,b+

2020-11-10 22:10:31 236

原创 二叉树的顺序操作

注意的地方1 结构体数组2 floor函数 向下取整--------ceil函数 向上取整---------round函数 四舍五入取整当然要头文件#include<math.h>3 函数中把要改变的结果引用传过去,,,#include<bits/stdc++.h>using namespace std;int n;int flag=0;typedef struct Tree{ int data; bool isEmpty;}Tree;void Ini

2020-11-10 20:42:10 110

原创 数据结构_实验1.2

#include<iostream>#include<string>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;int cnt=1;const int maxn=1e7+10;struct node{ int l; int r;}tree[maxn];void printa(int root){ if(root!=-1){

2020-11-10 20:34:46 121

原创 二叉树的创建&&遍历

#include<iostream>#include<cstring>#include<cmath>#include<algorithm> #include<queue>using namespace std;typedef struct Tree{ int data; struct Tree* left; struct Tree* right;}Tree,*Bin;int flag=1;Bin pre_Create(){

2020-11-10 20:18:04 59

原创 数据结构_38in-suf

这个代码是在上面的代码上改的,之前老师讲的都是没有考虑到前缀符号的问题,所以,,第四个测试点就过不了,第四个测试点 -2*(+3) -----------------> -2 3 *只有两个改动的地方:①如果符号在第一个位置,-要和数字连着,+不用输出(就不必判断了,这种情况就既不用入栈也不用输出)②如果符号的前一个是(,同上改动如下对于+,没有入栈也没有输出,就是直接跳过了;对于这两种情况下的-,就看成数字一起处理while((isdigit(ss[i]..

2020-10-24 21:43:09 148

原创 中缀转后缀输出-普通版

1 如果有结束符的时候,用char//判断的时候有结束符 //就单个字符 char判断 #include<bits/stdc++.h>#include<ctype.h>using namespace std;#define Maxsize 100typedef struct Stack{ int data[Maxsize];//0~Maxsize-1 int top;}Stack,*pStack; pStack CreateStack(){ pStack

2020-10-24 21:18:05 70

原创 一元多项式的*与+

调了好久的bug,,不过在看到最后全是红色的答案正确,激动到起飞1.零多项式是指系数全为0的多项式2.别忘记开始的特判,加法是 if(p1==NULL&&p2==NULL) return 0;乘法是 if(t1==NULL||t2==NULL) return 0;3.因为自己做的是带头结点的链表,所以主函数里面的if(pa) TraverseList(pa); else cout<<"0 0"<<endl;pa不可能为空,所以在前面返回head的时候要判断一

2020-10-17 15:50:41 239

原创 pair

112.雷达设备两个注意的地方:按照 尾 排序以选中的第一个区间的 尾 去和下一个区间的 首 比较#include<bits/stdc++.h>using namespace std;typedef pair<double,double>PDD;const int N=1010;const double eps=1e-6, INF=1e10;int n,d;PDD seg[N];int main(){ cin>>n>>d; b

2020-10-15 12:06:08 68

原创 一元多项式

两种空间复杂度不一样#include<bits/stdc++.h>using namespace std;typedef struct node{ int coef; int expon;//指数 struct node* next;}node,*pnode;pnode CreateNode(){ pnode head,end,p; head=new node(); head->next =NULL; end=head; int n;cin>>n;

2020-10-13 21:48:08 161

原创 链表传递

一般情况下,向函数传递指针类型的参数,可以让函数改变指针指向的内容,并将改变的效果返回但是,如果要改变指针本身的值,使它指向新开辟的内存空间,而不是改变它指向内容的值,这里有两个方法,①是引用,无返回值 ②是传递指向指针的指针,即二级指针void Attach1(int coef,int expon,pnode &p){ pnode ptr; ptr=new node(); ptr->coef =coef; ptr->expon =expon; ptr->nex.

2020-10-13 20:49:14 480

原创 sort

1.对string排序#include<bits/stdc++.h>using namespace std;vector<string>a;bool compare1(string a,string b){ return a>b;}//升序bool compare2(string a,string b){ return a.size()>b.size();}//字符串的长度 int main(){ int n;cin>>n; .

2020-10-10 21:10:28 115

原创 auto

今天遇到auto,所以来总结一下在之前devc++需要支持一下c++111auto代替for循环#include<bits/stdc++.h>using namespace std;vector<string>a;bool compare1(string a,string b){ return a>b;}//升序bool compare2(string a,string b){ return a.size()>b.size();}//字符串的长

2020-10-10 20:52:56 81

原创 双指针

No.1最长连续上升子序列主要想说一下,昨天写的最长上升序列是动态规划(一般只要求写出结果),,如果+连续就变成双指针了(可能要求把子列输出)emmm 昨天写的连续最大乘积是动态规划#include<bits/stdc++.h>using namespace std;int main(){ int n;cin>>n; int a[110]; for(int i=0;i<n;i++){ cin>>a[i]; } int i=0,j=1,l=1;

2020-10-10 19:21:57 94

原创 动态规划

No.1 硬币#include<bits/stdc++.h>using namespace std; #define MAX 0x3f3f3f3fint main(){ int A[]={2,5,7} ,M; cin>>M; int n=3; int f[M+1];//因为要用到f[M] f[0]=0;//初始化 for(int i=1;i<=M;i++){ f[i]=MAX;//全部初始化 for(int j=0;j<n;j++){

2020-10-09 17:56:51 206 7

空空如也

空空如也

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

TA关注的人

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