甲级
ocnos
这个作者很懒,什么都没留下…
展开
-
pat必刷模板第十章 图
图的遍历 //图 //dfs遍历(模板) dfs(u){//访问顶点u(只能访问一个连通分量) vis[u] = true;//设置u已被访问 for(从u出发能到达的所有顶点v)//枚举u出发可以到达的所有顶点v if vis[v] == false; dfs(v);//递归v }原创 2021-08-19 13:57:28 · 89 阅读 · 0 评论 -
pat必刷模板第九章 树
二叉树的增删改查和四种遍历 //二叉树的增删改查,和四种遍历 //二叉树的存储结构 //二叉链表 struct node{ typename data;//数据域 node* lchild;//指向左子树根结点的指针 node* rchild; }; //新建结点 node* newNode(int v){ node* Node = new原创 2021-08-19 13:43:41 · 115 阅读 · 0 评论 -
pat必刷模板第八章 搜索
dfs //DFS //n件物品,每件物品重量为w[i],价值为c[i].现在选出若干件物品放在v的背包里 #include<iostream> const int maxn = 30; int n, v, maxvalue = 0;//物品件数n,背包容量v,最大价值maxvalue int w[maxn], c[maxn]; //sumw和sumc分别为当前重量和价值 void dfs(int index, int sumw, int sumc){ if(index == n){//原创 2021-08-19 13:33:08 · 78 阅读 · 0 评论 -
pat必刷模板第七章 顺序表
静态链表 //求两个链表的首个共用结点 #include<cstring> #include<iostream> const int maxn = 100010; struct NODE{ char data; int next; bool flag; }node[maxn]; int main(){ for(int i = 0; i < maxn; i++){ node[i].flag = false; } int s1, s2, n; scanf("原创 2021-08-19 13:31:02 · 55 阅读 · 0 评论 -
pat必刷模板第六章 STL
//STL的用法 //开头需要准备的头文件 #include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<map> #include<set> #i.原创 2021-08-19 13:28:12 · 80 阅读 · 0 评论 -
pat必刷模板第五章 数学问题
gcd和lcm的求法 //gcd求a和b的最大公约数 //辗转相除法 int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b); } int d = gcd(a, b) //lcm求a和b的最小公倍数 int lcm(int a, int b){ return a / d * b;//a/d一定可以整除(d为a,b的最大公约数),a*b里面有两个d, //所以再/一个d则得到a和b的最小公倍数 } 分数运算 //分数的表示和化简原创 2021-08-19 13:27:09 · 123 阅读 · 0 评论 -
pat必刷模板第三~四章
p进制转换为十进制,十进制转换为q进制(除基取余法) //进制转换 p进制转化为十进制(必背) int y = 0, product = 1; while(x != 0){ y = y + (x % 10) * product; //x%10是为了每次获取x的各位数 x = x / 10; //去掉x的个位 product = pro原创 2021-08-19 13:20:47 · 106 阅读 · 0 评论 -
pat必刷模板第二章
sscanf和sprintf的使用: //sscanf将n以"%d"的格式写到str字符数组中 #include<cstdio> int main(){ int n = 12; double db = 3.1415; char str[100], str2[100] = "good"; sprintf(str, "%d:%.2f,%s", n, db, str2); //把int型变量n,double型变量db, char型数组str 2按"%d:%.2f,%s"格.原创 2021-08-19 13:03:48 · 97 阅读 · 0 评论