- 博客(23)
- 收藏
- 关注
原创 深度优先搜索(一)Ⅰ
迷宫游戏:dfs地图:核心代码:那个“!=”要改成“==”,有错误仅供参考int ans = 0;int dir[4][2] = {{-1,0},{0,-1},{1,0},{0,1}};void dfs(int x, int y){ if(maze[x][y] == 'T'){ ans++; return; } vis[x][y] = true; for(int i = 0; i < 4; i++){ int tx = x ...
2022-01-21 19:31:20
6382
原创 图论基础(二)I
储存方法:路径有1条分支或多条不是叶子结点,有0条就是叶子结点。性质:1.每颗非空有根树且仅有一个根结点。2.父结点可以有多个孩子结点,除根结点外,其余的结点有且仅有一个父结点。3.根结点没有父结点,叶结点没有孩子结点。4.若树上的结点数为n,则边数一定为n-1。5.树上的任意一对结点之间有且仅有一条路径。...
2022-01-21 18:55:14
239
原创 邻接表的存储bilibili-TV
二维数组是邻接矩阵;动态规划是邻接表。如果是稀疏图,一般选择邻接表作为图的存储结构。查询两个顶点之间是否有边,邻接矩阵比邻接表更方便。无向图的邻接矩阵一定是对称矩阵。点数较多时使用邻接表。#include <bits/stdc++.h>using namespace std;vector<node> G[105];//插入有向边void insert(int u,int v,int w){ node temp; te...
2022-01-07 20:28:51
426
原创 图论基础II(阿这)
#include <bits/stdc++.h>using namespace std;int qian[1001][1001];int main(){ int n,m,chu = 0,ru = 0,zong = 0; cin >> n >> m; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ cin >> .
2022-01-07 19:15:48
112
原创 图论基础I
那么什么是图呢?那么图有什么概念呢?????有讲到度,什么是度?????????什么是入度,出度?例如:指着a有几个那么入度就是几;a有几个指着别的那么出度就是几,画了橙色两行的是错误的!只有无向图中,顶点的度数总和为边数的两倍;memset只能初始化0和-1哦!配对:权值:(带权图)...
2021-12-31 20:31:05
168
原创 高精度减法
高精度加法想必大家都会了吧!那我们来学习一下高精度减法#include <bits/stdc++.h>using namespace std;int a1[1001] , a2[1001] , a3[1001];string s1,s2;bool cmp(string num1, string num2){ if(num1.size() != num2.size()){ return num1.size() < num2.size(); } return nu.
2021-12-31 19:12:16
411
原创 高精度代码
#include <bits/stdc++.h>using namespace std;int a[105],x,len;string sb;int main(){ cin >> sb >> x; //将高精度读入到a,倒叙放置 len = sb.size(); for(int i = 0; i < len; i++){ a[i] = sb[len - i - 1] - '0'; } //高i为len //将单精度舒读入到x a[0] .
2021-12-24 20:29:06
405
原创 高精度代码
一:string num;cin >> num;int a[105];int len = num.size();for(int i = 0; i < len; i++){ a[i] = num[len - i - 1] - '0';}二:int a[105],len;cin >> len;for(int i = len - 1; i >= 0; i--){ cin a[i];}高精度要倒着输出:高精度加单精度:...
2021-12-24 19:37:21
496
原创 高精度的基本运算
可以学习一下下面的链接的视频:高精度算法全套(加,减,乘,除,全网最详细)_哔哩哔哩_bilibili当一个数很大的时候,怎么存呢?long long 和 int 都存不下我们就要使用高精度来存:...
2021-12-24 19:20:37
300
原创 2进制转10进制
上代码:#include <bits/stdc++.h>using namespace std;string n;int main(){ int sum = 0 , a; cin >> n; int w = n.size(); for(int i = 0; i < w; i++){ a = pow(2 , w - 1 -i); sum += (n[i] - '0') * a; } cout << sum << endl.
2021-12-17 20:14:18
280
原创 k进制转10进制
上代码:#include <bits/stdc++.h>using namespace std;int k,ans = 0;string n;int main(){ cin >> n >> k; for(int i = 0; i < n.size(); i++){ if (n[i] >= 0 && n[i] <= 9){ ans = ans * k + n[i] - '0';
2021-12-17 19:36:47
526
原创 10进制转K进制
我们学会了十进制转k进制,那么我们来学习一下k进制转十进制。代码:int dight[25] //从高位往低拉放的int ans = 0; //最后结果for(int i = 0; i < cnt; i++){ //循环着每一位 ans = ans * k * dight[i];}...
2021-12-17 19:25:45
922
原创 二进制的转换
大家应该都会从十进制转到二进制吧,就是除2求余,然后从下往上写结果。如图:但是c++代码怎么写呢,我才教大家一个简单的方法。先打好代码:#include <bits/stdc++.h>using namespace std;int main(){ return 0;} 在main函数上面打"std;"下面打:int a[1001];先int一个列表;在mian函数下打上while循环: int n,m = 0; cin >>.
2021-12-17 19:06:59
4436
原创 数字组合c++
题目:【数字组合】有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式。如: n=5,5个数分别为1,2,3,4,5,t=5; 那么可能的组合有5=1+4和5=2+3和5=5三种组合方式。 【输入】输入的第一行是两个正整数n和t,用空格隔开,其中1≤n≤20,表示正整数的个数,t为要求的和(1≤t≤1000); 接下来的一行是n个正整数,用空格隔开。 【输出】和为t的不同的组合方式的数目。 【输入样例】5 51 2 3 4 5 【输出样例】3来上代.
2021-12-10 20:30:43
2861
4
原创 公共子序列
题目:【公共子序列】我们称序列Z=<z1,z2,...,zk>是序列X=<x1,x2,...,xm>的子序列当且仅当存在严格上升的序列<i1,i2,...,ik>,使得对j=1,2,...,k,有xij=zj。比如Z=<a,b,f,c> 是X=<a,b,c,f,b,c>的子序列。 现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子序列也是Y的子序列。 【输入】输入包括多.
2021-12-10 20:28:47
301
原创 最长公共子序列
#include <bits/stdc++.h>using namespace std;int dp[10001][1001]; //, s1[1001] , s2[1001];int main(){ string s1 , s2;//x,y; cin >> s1 >> s2;//x >> y;// ————————好戏开始———————— int n = s1.size();//截取s1的长度 int m = s2.size();//截.
2021-12-03 19:58:40
209
原创 混合背包问题
氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵氵
2021-11-23 21:28:01
106
原创 混合背包问题
#include <bits/stdc++.h>using namespace std;int w[101],c[101],v,n,num[101],m = 10,f[101];//v背包容量,n物品数量。v<=200,n<=30 。//W:重量 ,C:价值,num此物品可购买的最多件数 ,m背包总容量 void ZeroOnePack(int cost , int weight){ for(int v = m; v >= weight; v--){ f[v] .
2021-11-12 19:28:47
740
原创 猪八戒带宝石
先打好代码#include <bits/stdc++.h>using namespace std;int main(){ return 0;}有a个宝石和b块钱,那么输入a,b和数组#include <bits/stdc++.h>using namespace std;int sb[100000];int f[101][101];int main(){//类似走楼梯,分两步上来和三步上来 int a,b; cin >>
2021-10-29 19:44:58
70
原创 八戒的背包(一维数组)
打好普通代码。#include <bits/stdc++.h>using namespace std;int main(){ return 0;} 然后打上代码。#include <bits/stdc++.h>using namespace std;int main(){ int m,n; cin >> m >> n; return 0;}在main函数外面打:int w[1001], c[10..
2021-10-15 19:09:37
235
1
原创 Hello world
#include <iostream>using namepsace std;int main(){ return 0;}一、题解(尽量详细)二、易错点(坑)三、个人总结(遇到的问题、解决办法)
2021-10-01 16:20:26
90
1
原创 笨小猴,猴子
#include <bits/stdc++.h>using namespace std;const int inf = 0x3f3f3f3f;int f[200];bool ok(int x){ for(int i = 2; i * i <= x; i++){ if(x % i == 0){ return false; } } return x >= 2;}int main(){ ...
2021-10-01 16:09:25
132
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人