Problem 1: Young tableau
An m × n Young tableau is an m × n matrix such that the entries of each row are in sorted order
from left to right and the entries of each column are in sorted order from top to bottom. Some of the
entries of a Young tableau may be ∞, which we treat as nonexistent elements. Thus a Young tableau
can be used to hold r ≤ mn numbers.
Here’s an example of a 4x4 Young tableau containing the elements {9, 16, 3, 2, 4, 8, 5, 14, 12}. Note that
this is not unique.
∞
2 4 9
∞
3 8 16
∞ ∞
5 14
∞ ∞ ∞
12
//the young tableau problem
#include<stdio.h>
#define M 4
#define N 4
#define BIGGEST 9999
int matrix[M][N]={{0,1,2,4},
{0,2,3,5},
{1,3,4,0},
{0,4,5,6}};
void print()
{
int i=0,j;
for(;i<M;i++)
{
for(j=0;j<N;j++)
printf("%d ",matrix[i][j]);
printf("\n");
}
}
void youngify(int a[M][N],int x,int y)
{
int smallx=x;
int smally=y;
if((x+1)<M&&a[x+1][y]<a[x][y])
{
smallx=x+1;
smally=y;
}
if((y+1)<N&&a[smallx][smally]>a[x][y+1])
{
smallx=x;
smally=y+1;
}
if(smallx!=x||smally!=y)
{
int temp=a[smallx][smally];
a[smallx][smally]=a[x][y];
a[x][y]=temp;
youngify(a,smallx,smally);
}
}
int extract_min()
{
int x=matrix[0][0];//get the miniest
matrix[0][0]=BIGGEST;
youngify(matrix,0,0);
return x;
}
void decreasekey(int a[M][N],int x,int y,int d)
{
if(a[x][y]<=d) return;
a[x][y]=d;
int threshold=BIGGEST;
int largestx=x;
int largesty=y;
int temp;
while((x>1||y>1)&&a[x][y]<threshold)
{
temp=a[x][y];
a[x][y]=a[largestx][largesty];
a[largestx][largesty]=temp;
x=largestx;
y=largesty;
if(x-1>=0&&a[largestx][largesty]<a[x-1][y])
{
largestx=x-1;
largesty=y;
}
if(y-1>=0&&a[largestx][largesty]<a[x][y-1])
{
largestx=x;
largesty=y-1;
}
threshold=a[largestx][largesty];
}
}
void insert(int a[M][N],int d)
{
decreasekey(a,M-1,N-1,d);
}
int main(int argc,char** argv)
{
print();
int i=extract_min();
printf("After Extract %d\n",i);
print();
printf("After Insert %d\n",5);
insert(matrix,5);
print();
return 0;
}
分享到:
相关推荐
you can solve your problem with ease and confidence; no more searching for help doc or waiting for support. This book will help you make the most of Tableau and become a Tableau expert.
数据驱动的决策支持是此类问题的关键,因此,掌握数据分析工具如Excel、Python的Pandas库或Tableau等,以及理解数据可视化的重要性是必不可少的。 同样在ICM部分,2020_ICM_Problem_E.pdf则可能关注的是新兴科技或...
It includes details on pivot steps, canonical forms, and tableau representations. - **Two-Phase Simplex Method:** Explains how artificial variables are used to handle problems with equality ...
- **步骤四**:选择“Solve and Display Steps-Tableau”来查看表上作业法的迭代过程,理解求解步骤。 - **步骤五**:在求解前,可以通过“Select Initial Solution Method”选择不同的初始解法,如最小元素法或伏...
在这一部分,学生需要展示他们的研究能力,查找并引用相关的数据可视化作品、工具、理论和技术,如D3.js、Tableau、ECharts等。分析这些工作如何为当前项目提供灵感或基础,同时也可以讨论不同可视化方法的优缺点,...
标签 "PTA" 可能指的是 "Problem, Task, or Assignment",暗示这可能是一个与编程或IT项目相关的学习材料或者挑战。然而,由于提供的信息有限,无法确定具体的内容。根据压缩包的名称 "RentCar",我们可以推测它可能...
- **数学建模相关论坛**:例如 AoPS(Art of Problem Solving)等,这些平台汇聚了众多数学建模爱好者和专家,可以在此提问、交流和学习。 #### 十、其他推荐资源 - **R 语言**:适用于统计分析和图形表示,非常...
提供使用单纯形算法(Tableau方法)求解LP的分步说明。 输出原始LaTeX文件。 LaTeX文件可以在编译。 注意:当前,仅支持标准格式的LP。 例子 1.标准格式最大化LP 考虑以下目标函数和约束: 可以通过使用以下...
- **TABL(Tableau)**:显示当前的单纯形表。 - **LOOK**:显示模型的数学形式。 - **NONZ(Nonzeros)**:显示解中的非零变量。 - **SHOC(ShowColumn)**:显示模型中的一列。 - **SOLU(Solution)**:显示当前得到的解...
- **杨表 (Young Tableau)** - 定义:一种特殊的二维数组,常用于组合数学中。 - **整数划分** - 定义:指将一个正整数写成若干个正整数之和的不同方式的数量。 - **错排公式** - 定义:错排问题是指将$n$个对象...