编程思维题
Zetaa
Email: [email protected]
展开
-
组合数元组编号
前言:仅个人小记。问题描述如何遍历nnn个点中的所有444元组呢,即如何遍历(n4)\binom{n}{4}(4n)个不同的四元组呢?举例:n=6n=6n=6,则所有的444元组共有(64)=15\binom{6}{4}=15(46)=15个,具体为(1,2,3,4)(1,2,3,5)(1,2,3,6)(1,2,4,5)(1,2,4,6)(1,2,5,6)(1,3,4,5)(1,3,4,6)(1,3,5,6)(1,4,5,6)(2,3,4,5)(2,3,4,6)(2,4,5,6)(3,4,5,6)原创 2020-05-20 20:24:25 · 413 阅读 · 0 评论 -
大数运算
声明: 仅作个人小记结果演示: 加法运算:减法运算:乘法运算:// 大数运算#include <iostream>#include <cstdio>#include <cstring>using namespace std;// 加法 void add(char a[], char b[], char res[]);void sub(char a[], char b[], char r原创 2016-11-21 22:37:06 · 538 阅读 · 0 评论 -
表达式求值(栈实现)
效果展示: 算法思想: 一、 设置一个运算符栈,设置一个后缀表达式字符串 二、 从左到右依次对中缀表达式中的每个字符ch分别进行一下处理,直至表达式结束: 1.若ch是左括号’(‘,将其入栈 2.若 ch 是数字,将其后连续若干数字添加到后缀表达式字符串之后,在添加空格作为分割符 3. 若ch是运算符,先将栈顶若干优先级高于原创 2016-11-25 14:22:34 · 2551 阅读 · 0 评论 -
单源最短路径(Dijkstra算法)
效果展示: 1. 2. . Dijkstra 算法思想: 逐步求解,每步将一条最短路径扩充一条边形成下一条最短路径,并将其他路径替换为更短的 #include <iostream>#include <vector>using namespace std;const int INFINITY = -1; // 记作无穷大 即表示两个顶点之间没有通路 stru原创 2016-11-25 17:08:39 · 620 阅读 · 0 评论 -
背包问题理解
申明:仅个人小记前言只讨论0-1背包和完全背包问题,以游戏闯关为背景辅助理解背包问题。一、基本交代0-1背包问题dp[i][j]dp[i][j]dp[i][j]定义为体积为j的背包,从编号为 1,2,…i 的i个物品中挑选并放入背包,背包能盛放的最大价值。状态转移方程为dp[i][j]=max{dp[i−1][j],dp[i−1][j−w]+v}dp[i][j]=max\{dp[i-...原创 2019-01-25 19:29:33 · 553 阅读 · 0 评论