
计算机考研机试
哟米 2000
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【计算机考研机试指南】第十二章 动态规划:最长递增子序列——拦截导弹_北大
#include <iostream> #include <cstdio> using namespace std; const int MAXN = 25; int height[MAXN]; int dp[MAXN]; int main(int argc, char** argv) { int n; while(scanf("%d", &n) != EOF){ for(int i = 0; i < n; i++){ scanf("%d", .原创 2021-06-27 17:00:58 · 150 阅读 · 0 评论 -
【计算机考研机试指南】第十二章 动态规划:最大连续子序列和——最大子矩阵_北大
二维矩阵的最大子矩阵和,从i到j行的最大矩阵 当i=j时,即为最大连续子序列和 当i != j时,把从i到j行的所有行元素加起来,得到只有一行的一维数组,转变为求一维数组的最大连续子序列和,即为最大子矩阵和。 注意,用辅助二维矩阵记录原始矩阵从上到下加起来的累加矩阵,求i到j行的一维数组只需要将辅助矩阵进行对行的减法即可。 #include <iostream> #include <cstdio> using namespace std; const int MAX.原创 2021-06-27 16:29:05 · 270 阅读 · 0 评论 -
【计算机考研机试指南】第十二章 动态规划:最大连续子序列和——最大序列和_清华
寻找状态转移方程 dp[i] 是以A[i]作为末尾的连续序列最大和 #include <iostream> #include <cstdio> using namespace std; const int MAXN = 1000000; long long arr[MAXN]; long long dp[MAXN]; long long MaxSubsequence(int n){ long long maximum = 0; for(int i = 0; i &.原创 2021-06-27 15:48:22 · 143 阅读 · 0 评论 -
【计算机考研机试指南】第十二章 动态规划:递推求解——N阶楼梯上楼问题_华中科大学
数列递推关系式 #include <iostream> #include <cstdio> using namespace std; const int MAXN = 91; long long dp[MAXN]; int main(int argc, char** argv) { dp[0] = 0; dp[1] = 1; for(int i = 2; i < MAXN; i++){ dp[i] = dp[i - 1] + dp[i - 2]; } .原创 2021-06-27 15:37:44 · 148 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:关键路径——p3_清华
#include <iostream> #include <cstdio> #include <queue> #include <vector> #include <cstring> #include <climits> using namespace std; const int MAXN = 1e5 + 7; const int INF = INT_MAX; const int MOD = 1E9 + 7; vector&l.原创 2021-06-27 15:06:45 · 309 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:关键路径——Instruction Arrangement
emmm还有点疑问,待更新完善。 #include <iostream> #include <cstdio> #include <queue> #include <vector> #include <cstring> #include <climits> using namespace std; const int MAXN = 1001; const int INF = INT_MAX; struct Edge{ int.原创 2021-06-27 14:41:43 · 214 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:拓扑排序—确定比赛名次(输出拓扑序列)
努力加油!棒棒的! #include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; const int MAXN = 501; vector<int> graph[MAXN]; int inDegree[MAXN]; vector<int> TopologicalSort(int n){ vect.原创 2021-06-27 13:56:22 · 177 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:拓扑排序——LegalnorNot
判断某图是否是无向图(图中是否存在环)时,即求拓扑排序。 一个图存在符合拓扑次序的顶点序列,即为有向无环图。反之,非有向无环图 #include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; const int MAXN = 500; vector<int> graph[MAXN]; int inDegree[.原创 2021-06-27 11:20:50 · 255 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:最短路径——最短路径问题_浙大
#include <iostream> #include <cstdio> #include <vector> #include <cstring> #include <queue> #include <climits> using namespace std; const int MAXN = 1001; const int INF = INT_MAX; struct Edge{ int to; int length; .原创 2021-06-27 11:00:57 · 185 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:单源最短路径——畅通工程续_浙大
#include <iostream> #include <cstdio> #include <vector> #include <cstring> #include <queue> #include <climits> using namespace std; const int MAXN = 200; const int INF = INT_MAX; struct Edge{ int to; int length; E.原创 2021-06-27 10:35:41 · 147 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:最小生成树——继续畅通工程_浙大
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int MAXN = 100; struct Edge{ int from; int to; int length; bool operator< (const Edge& e) const{ return length < e.length; } }; Ed.原创 2021-06-26 23:34:48 · 132 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:最小生成树——还是畅通工程_浙大
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int MAXN = 100; struct Edge{ int from; int to; int length; bool operator< (const Edge& e) const{ return length < e.length; } }; .原创 2021-06-26 23:20:14 · 139 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:并查集——Is it a tree_北大
#include <iostream> #include <cstdio> using namespace std; const int MAXN = 1000; int father[MAXN]; int height[MAXN]; int inDegree[MAXN]; bool visit[MAXN]; void Initial(){ for(int i = 0; i <= MAXN; i++){ father[i] = i; height[i] .原创 2021-06-26 21:30:27 · 184 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:并查集——连通图_吉林
连通分量判断连通图。 不断合并图中边相连的两个点所属集合,最后计算集合个数便是图的连通分量个数。如果连通分量等于1,即为连通图。 #include <iostream> #include <cstdio> using namespace std; const int MAXN = 1000; int father[MAXN]; int height[MAXN]; void Initial(int n){ for(int i = 0; i <= n; i++){ .原创 2021-06-26 21:17:06 · 206 阅读 · 0 评论 -
【计算机考研机试指南】第十一章 图论:并查集——畅通工程_浙大
#include <iostream> #include <cstdio> using namespace std; const int MAXN = 1000; int father[MAXN]; int height[MAXN]; void Initial(int n){ for(int i = 0; i <= n; i++){ father[i] = i; //父亲结点 height[i] = 0; //结点高度 } } int Find(i.原创 2021-06-26 20:57:22 · 127 阅读 · 0 评论 -
【计算机考研机试指南】第十章 数据结构二:子串计算_北大
利用映射,将子串当做关键字,将其出现次数当做映射值 #include <iostream> #include <cstdio> #include <string> #include <map> using namespace std; int main(int argc, char** argv) { string str; while(cin >> str){ map<string, int> number; f.原创 2021-06-25 21:36:15 · 186 阅读 · 0 评论 -
【计算机考研机试指南】第十章 数据结构二:魔咒词典_浙大
注意一点:双向映射 #include <iostream> #include <cstdio> #include <string> #include <map> using namespace std; map<string, string> dictionary; int main(int argc, char** argv) { string str; while(getline(cin, str)){ if(str == .原创 2021-06-25 21:25:11 · 176 阅读 · 0 评论 -
【计算机考研机试指南】第十章 数据结构二:映射应用——查找学生信息_清华
#include <iostream> #include <cstdio> #include <map> #include <string> using namespace std; map<string, string> student; int main(int argc, char** argv) { int n; scanf("%d", &n); getchar(); for(int i = 0; i < n;.原创 2021-06-25 21:12:29 · 144 阅读 · 0 评论 -
【计算机考研机试指南】第十章 数据结构二:map
#include <iostream> #include <cstdio> #include <map> using namespace std; map<string, int> mmp; int main(int argc, char** argv) { mmp["Emma"] = 67; mmp["Benedict"] = 100; mmp.insert(pair<string, int>("Bob", 72)); mmp.i.原创 2021-06-25 20:59:33 · 141 阅读 · 0 评论 -
【计算机考研机试指南】第十章 数据结构二:哈夫曼树_北邮
#include <iostream> #include <cstdio> #include <queue> using namespace std; int main(int argc, char** argv) { int n; while(scanf("%d", &n) != EOF){ priority_queue<int, vector<int>, greater<int> > mpq; while(.原创 2021-06-25 20:41:26 · 129 阅读 · 0 评论 -
【计算机考研机试指南】第十章 数据结构二:二叉树遍历
#include <iostream> #include <queue> #include <cstdio> using namespace std; struct TreeNode{ int data; TreeNode *leftChild; TreeNode *rightChild; }; //前序遍历 void PreOrder(TreeNode* root){ if(root == NULL){ .原创 2021-06-25 16:15:53 · 149 阅读 · 0 评论 -
【计算机考研机试指南】第九章 搜索:BFS——Catch That Cow
#include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; const int MAXN = 100001; struct Status{ int n; int t; //到n 所消耗的时间 Status(int n, int t): n(n), t(t){ } }; bool visit[MAXN]; //记.原创 2021-06-24 23:13:29 · 177 阅读 · 0 评论 -
【计算机考研机试指南】第八章 递归与分治:二叉树_北大
#include <iostream> #include <cstdio> using namespace std; int CountNodes(int m, int n){ if(m > n){ //递归出口,以m为根节点的树为空 return 0; }else{ return 1 + CountNodes(m*2, n) + CountNodes(m * 2 + 1, n); } } int main(int argc, char** arg.原创 2021-06-24 22:49:29 · 127 阅读 · 0 评论 -
【计算机考研机试指南】第八章 递归与分治:汉诺塔3
#include <iostream> #include <cstdio> using namespace std; long long Function(int n){ if(n == 1){ return 2; }else{ return 3 * Function(n-1) + 2; //重点在这! } } int main(int argc, char** argv) { int n; while(scanf("%d", &n) != EOF.原创 2021-06-24 22:36:40 · 114 阅读 · 0 评论 -
【计算机考研机试指南】第七章 贪心策略:Case of Fuigitive
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <queue> using namespace std; const int MAXN = 200001; struct Island{ long long left; //岛屿左端点 long long right; //岛屿右端点 }; struct .原创 2021-06-24 22:19:22 · 165 阅读 · 0 评论 -
【计算机考研机试指南】第七章 贪心策略:区间贪心——今年暑假不AC
简单贪心策略,先对数组排序(无排序,不贪心),然后找出最优方案即可 #include <iostream> #include <cstdio> #include <algorithm> using namespace std; struct Program{ int startTime; int endTime; }; const int MAXN = 1000; Program arr[MAXN]; bool Compare(Program x, P.原创 2021-06-24 20:30:11 · 123 阅读 · 0 评论 -
【计算机考研机试指南】第七章 贪心策略:Senior‘s GUN
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int MAXN = 1000; long long gun[MAXN]; long long monster[MAXN]; bool Compare(long long x, long long y){ return x > y; //从大到小排序 } int main(int.原创 2021-06-24 20:16:29 · 218 阅读 · 0 评论 -
【计算机考研机试指南】第七章 贪心策略:FatMouse‘ Trade
策略:对weight和cost进行性价比计算排序,之后根据性价比依次装入 #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int MAXN = 1000; struct JavaBean{ double weight; double cost; }; JavaBean arr[MAXN]; //比较性价比 bool Comp.原创 2021-06-24 20:04:40 · 96 阅读 · 0 评论 -
【计算机考研机试指南】高精度整数运算模板
#include <iostream> #include <cstdio> #include <string> #include <cstring> using namespace std; const int MAXN = 10000; struct BigInteger{ int digit[MAXN]; int length; BigInteger(); BigInteger(int x); BigInteger(string s.原创 2021-06-23 14:47:03 · 180 阅读 · 0 评论 -
【计算机考研机试指南】第六章 数学问题:矩阵幂
#include <iostream> #include <cstdio> using namespace std; struct Matrix{ int matrix[3][3]; int row, col; Matrix(int r, int c): row(r), col(c){ } }; //矩阵乘法 Matrix Multiply(Matrix x, Matrix y){ Matrix answer(x.row, y.col); for(int i.原创 2021-06-23 13:31:16 · 165 阅读 · 0 评论 -
【计算机考研机试指南】第六章 数学问题:矩阵乘积——哈工大
#include <iostream> #include <cstdio> using namespace std; struct Matrix{ int matrix[3][3]; int row, col; Matrix(int r, int c): row(r), col(c){ } }; Matrix Multiply(Matrix x, Matrix y){ Matrix answer(x.row, y.col); for(int i = 0; i &.原创 2021-06-23 13:18:50 · 143 阅读 · 0 评论 -
【计算机考研机试指南】第六章 数学问题:快速幂——人见人爱A^B
int FastExponentiation(int a, int b, int mod){ int answer = 1; while(b != 0){ //不断将b 转换成二进制数 if(b % 2 == 1){ answer *= a; answer %= mod; //只求后三位 } b /= 2; a *= a; //a 不断平方 a %= mod; } return answer; } #include <iost..原创 2021-06-23 13:06:51 · 207 阅读 · 0 评论 -
【计算机考研机试指南】第六章 数学问题:进制转换2——清华
#include <iostream> #include <cstdio> #include <string> #include <vector> using namespace std; char IntToChar(int x){ //数字转字符 if(x < 10){ return x + '0'; }else{ return x - 10 + 'a'; } } int CharToInt(char c){ //字符.原创 2021-06-21 22:29:49 · 103 阅读 · 0 评论