机试题
学习笔记
关关雎鸠儿
学而不思则罔,思而不学则die
展开
-
王道机试2.1:排序问题
(题目暂时不写了,主要是为了保研整理的资料,日后再进行补充)程序代码:#include<stdio.h>int main(){ int n; int buf[100]; while (scanf("%d",&n)!=EOF) { for (int i = 0; i < n; i++) { scanf("%d", &buf[i]); ...原创 2019-09-15 16:57:53 · 163 阅读 · 0 评论 -
王道机试5.2:并查集
代码实现:#include<stdio.h>using namespace std;#define N 1000int Tree[N];int findRoot(int x){ if (Tree[x]==-1) { return x; } else { int tmp = findRoot(Tree[x]); Tree[x] = tmp; retur...原创 2019-09-17 14:36:41 · 163 阅读 · 0 评论 -
王道机试5.3:最小生成树(MST)
畅通工程实现代码:#include<stdio.h>#include<algorithm>using namespace std;#define N 101int Tree[N];int findRoot(int x){ if (Tree[x]==-1) { return x; } else { int tmp = findRoot(Tree[...原创 2019-09-17 15:47:00 · 127 阅读 · 0 评论 -
王道机试5.4:最短路径
Floyd算法:#include<stdio.h>int ans[101][101];int main(){ int n, m; while (scanf("%d%d", &n, &m)!=EOF) { if (n==0&&m==0) { break; } for (int i = 1; i <= n; i++)...原创 2019-09-17 19:54:04 · 140 阅读 · 0 评论 -
王道机试5.5:拓扑排序
代码实现:#include<stdio.h>#include<vector>#include<queue>using namespace std;vector<int> edge[501];queue<int> Q;int main(){ int inDegree[501]; int n, m; while (scan...原创 2019-09-17 21:00:31 · 351 阅读 · 0 评论 -
王道机试6.1:枚举
代码实现 :#include<stdio.h>int main(){ int n; while (scanf("%d",&n)!=EOF) { for (int x = 0; x <= 100; x++) { for (int y = 0; y <= 100-x; y++) { int z = 100 - x - y; ...原创 2019-09-17 21:56:41 · 83 阅读 · 0 评论 -
王道机试6.2:广度优先遍历(BFS)
#include<stdio.h>#include<queue>using namespace std;bool mark[50][50][50];int maze[50][50][50];struct N{ int x, y, z; int t;};queue<N> Q;int go[][3] = { 1, 0, 0, -1, 0, ...原创 2019-09-17 22:43:09 · 214 阅读 · 0 评论 -
王道机试6.3:递归
汉诺塔3代码实现:#include<stdio.h>#include<string.h>long long F(int num){ if (num==1) { return 2; } else { return 3 * F(num - 1) + 2; }}int main(){ int n; while (scanf("%d",&n...原创 2019-09-18 11:36:37 · 113 阅读 · 0 评论 -
王道机试6.5:深度优先遍历(DFS)
#include<stdio.h>char maze[8][8];int n, m, t;bool success;int go[][2] = { 1, 0, -1, 0, 0, 0, 0, -1 };void DFS(int x, int y, int time){ for (int i = 0; i < 4; i++) { int nx = x + go[i...原创 2019-09-18 11:58:47 · 412 阅读 · 0 评论 -
王道机试7.1:递推求解
上楼梯问题:代码实现:#include<stdio.h>long long F[91];int main(){ F[1] = 1; F[2] = 2; for (int i = 3; i <= 90; i++) { F[i] = F[i - 1] + F[i - 2]; } int n; while (scanf("%d",&n)!=EOF) ...原创 2019-09-18 14:21:53 · 108 阅读 · 0 评论 -
王道机试7.2:最长递增子序列(LIS)
代码实现:#include<stdio.h>int max(int a, int b){ return a > b ? a : b;}int list[26];int dp[26];int main(){ int n; while (scanf("%d",&n)!=EOF) { for (int i = 1; i <= n; i++) {...原创 2019-09-18 15:50:39 · 133 阅读 · 0 评论 -
王道机试7.3:最长公共子序列(LCS)
代码实现:#include<stdio.h>#include<string.h>int dp[101][101];int max(int a, int b){ return a > b ? a : b;}int main(){ char S1[101], S2[101]; while (scanf("%s%s",S1,S2)!=EOF) { i...原创 2019-09-18 16:03:59 · 261 阅读 · 0 评论 -
王道机试7.5:动态规划问题举例
最近点对代码实现:#include<stdio.h>#include<algorithm>using namespace std;#define INF 0xfffffffint list[2001];int dp[1001][2001];int main(){ int n, k; while (scanf("%d%d",&n,&k)!=E...原创 2019-09-18 17:25:14 · 100 阅读 · 0 评论 -
王道机试7.6:背包
代码实现:#include<stdio.h>#define INF 0xfffffffint max(int a, int b){ return a > b ? a : b;}struct E{ int w; int v;}list[101];int dp[101][1001];int main(){ int s, n; while (scanf("...原创 2019-09-18 19:53:16 · 81 阅读 · 0 评论 -
王道机试8.1:标准模板库
字符串的查找删除:#include<stdio.h>#include<string>#include<iostream>#include<ctype.h>using namespace std;int main(){ char str[101]; gets(str); string a = str; for (int i = 0;...原创 2019-09-18 20:36:57 · 101 阅读 · 0 评论 -
王道机试4.9:高精度整数
123原创 2019-09-17 11:02:46 · 144 阅读 · 0 评论 -
王道机试4.8:二分求幂
实现代码:#include<stdio.h>int main(){ int a, b; while (scanf("%d%d",&a,&b)!=EOF) { if (a==0&&b==0) { break; } int ans = 1; while (b!=0) { if (b%2==1) { ...原创 2019-09-16 20:34:48 · 71 阅读 · 0 评论 -
王道机试4.7:分解素因数
4原创 2019-09-16 20:17:38 · 189 阅读 · 0 评论 -
王道机试2.2:日期类问题
(题目暂时不写了,主要是为了保研整理的资料,日后再进行补充)实现代码:#include<stdio.h>#define ISYEAP(x) x%100!=0&&x%4==0||x%400==0?1:0int dayOfMonth[13][2] = { 0,0, 31,31, 28,29, 31,31, 30,30, 31,31, 30,30, 3...原创 2019-09-15 19:13:58 · 145 阅读 · 0 评论 -
王道机试2.3:Hash的应用
代码实现:#include<stdio.h>int main(){ int n; while (scanf("%d",&n)!=EOF&&n!=0) { int Hash[101] = { 0 }; for (int i = 1; i <= n; i++) { int x; scanf("%d", &x); ...原创 2019-09-15 19:50:30 · 100 阅读 · 0 评论 -
王道机试2.4:排版题
实现代码:#include<stdio.h>int main(){ int h; while (scanf("%d",&h)!=EOF) { int maxLine = h + (h - 1) * 2; for (int i = 1; i <= h; i++) { for (int j = 1; j <= maxLine; j++) ...原创 2019-09-15 20:35:22 · 153 阅读 · 0 评论 -
王道机试2.5:查找
直接遍历代码实现:#include<stdio.h>int main(){ int buf[200]; int n; while (scanf("%d",&n)!=EOF) { for (int i = 0; i < n; i++) { scanf("%d", &buf[i]); } int x, ans = -1; sca...原创 2019-09-16 08:53:18 · 94 阅读 · 0 评论 -
王道机试2.6:贪心算法
背包问题代码实现:#include<stdio.h>#include<algorithm>using namespace std;struct goods{ double j; double f; double s; bool operator < (const goods &A) const{ return s>A.s; }}...原创 2019-09-16 08:55:24 · 131 阅读 · 0 评论 -
王道机试3.1:栈的使用
//括号匹配#include<stdio.h>#include<stack>using namespace std;stack<int> s;char str[110];char ans[110];int main(){ while (scanf("%s",str)!=EOF) { int i; for ( i = 0; i < ...原创 2019-09-16 10:42:43 · 107 阅读 · 0 评论 -
王道机试3.2:哈夫曼树
#include<stdio.h>#include<queue>#include<functional>using namespace std;priority_queue<int, vector<int>, greater<int>> Q;//小顶堆int main(){ int n; while (scanf...原创 2019-09-16 10:59:47 · 92 阅读 · 0 评论 -
王道机试3.3:二叉树
#include<stdio.h>#include<string.h>struct Node{ Node *lchild; Node *rchild; char c;}Tree[50];int loc;Node *create(){ Tree[loc].lchild = Tree[loc].rchild = NULL; return &Tree...原创 2019-09-16 11:33:07 · 105 阅读 · 0 评论 -
王道机试3.4:二叉排序树
#include<stdio.h>#include<string.h>struct Node{ Node *lchild; Node *rchild; int c;}Tree[110];int loc;Node *create(){ Tree[loc].lchild = Tree[loc].rchild = NULL; return &Tree...原创 2019-09-16 15:42:52 · 140 阅读 · 0 评论 -
王道机试4.2:数位拆解
#include<stdio.h>int main(){ int a, b; while (scanf("%d%d",&a,&b)!=EOF) { int buf1[20], buf2[20], size1 = 0, size2 = 0; while (a!=0) { buf1[size1++] = a % 10; a /= 10; ...原创 2019-09-16 16:12:04 · 79 阅读 · 0 评论 -
王道机试4.3:进制转换
#include<stdio.h>int main(){ long long a, b; int m; while (scanf("%d",&m)!=EOF) { if (m == 0) break; scanf("%lld%lld", &a, &b); a = a + b; int ans[50], size = 0; d...原创 2019-09-16 16:23:13 · 117 阅读 · 0 评论 -
王道机试4.4:最大公约数(GCD)
#include<stdio.h>int gcd(int x, int y){ if (y==0) { return x; } else { return gcd(y, x%y); }}int main(){ int a, b; while (scanf("%d%d",&a,&b)!=EOF) { printf("%d\n", gc...原创 2019-09-16 16:46:01 · 134 阅读 · 0 评论 -
王道机试4.5:最小公倍数(LCM)
#include<stdio.h>int gcd(int a, int b){ return b != 0 ? gcd(b, a%b) : a;}int main(){ int a, b; while (scanf("%d%d",&a,&b)!=EOF) { printf("%d\n", a*b / gcd(a, b)); }}原创 2019-09-16 16:57:36 · 188 阅读 · 0 评论 -
王道机试4.6:素数筛法
//素数判定#include<stdio.h>#include<math.h>bool judge(int x){ if (x<=1) { return false; } int bound = (int)sqrt((double)x) + 1; for (int i = 2; i < bound; i++) { if (x%i==0)...原创 2019-09-16 19:26:35 · 112 阅读 · 0 评论 -
回归与内插
Simple Linear Regression:>> x=[-1.2,-0.5,0.3,0.9,1.8,2.6,3.0,3.5];>> y=[-15.6,-8.5,2.2,4.5,6.6,8.2,8.9,10.0];>> fit=polyfit(x,y,1);>> xfit=[x(1):0.1:x(end)];>> yfit=...原创 2019-09-19 19:50:54 · 253 阅读 · 0 评论