uva10152 ShellSort

简介: uva10152 ShellSort
#include <stdio.h>#include <string.h>#define LOCALintt, n;
charsrc[201][90], dst[90];
intindex[201], la;
voidsearch(char*str);
intmain()
{
inti, j;
#ifdef LOCALfreopen("c://uva_in.txt", "r", stdin);
#endifscanf("%d", &t);
for (i=0; i<t; i++)
    {
scanf("%d", &n);
getchar();
la=0;
for (j=0; j<n; j++)
gets(src[j]);
for (j=0; j<n; j++)
        {
gets(dst);
search(dst);
        }
for (j=n-2; j>=0; j--)
if (index[j] >index[j+1])
break;
for (; j>=0; j--)
printf("%s/n", src[index[j]]);
printf("/n");
    }
return0;
}
voidsearch(char*str)
{
inti;
for (i=0; i<n; i++)
if (strcmp(src[i], str) ==0)
        {
index[la++] =i;
break;
        }
}
目录
相关文章
|
8月前
UVa11968 - In The Airport
UVa11968 - In The Airport
36 0
|
8月前
uva10112 Myacm Triangles
uva10112 Myacm Triangles
25 0
概率dp - UVA 11021 Tribles
Tribles  Problem's Link:  http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33059   Mean:  有k个细菌,每个细菌只能存活一天,在死去之前可能会分裂出0,1,2....n-1个细菌,对应的概率为p0,p1,p2....pn-1。
799 0
uva 11806 - Cheerleaders
点击打开链接 题意:在一个n行m列的矩形里面放k个相同的石子,要求第一行,最后一行,第一列,最后一列都要有石子。问有几种方法? 思路: 1 如果题目没有要求“第一行,最后一行,第一列,最后一列都要有石子”,那么答案就是C[n*m][k],我们用C[i][j]表示i个里面选择j个的组合数。
799 0
|
人工智能
uva 305 Joseph
点击打开链接uva 305 思路: 数学+打表 分析: 1 传统的约瑟夫问题是给定n个人和m,每次数m次把当前这个人踢出局,问最后留下的一个人的编号 2 这一题是前k个人是好人,后面k个是坏人。
1009 0
|
C++
uva 11136 Hoax or what
点击打开链接uva 11136 思路: STL 分析: 1 题目意思比较不好理解,理解了题目之后我们可以利用STL的multiset来做 2 每次找到最大和最小的值,然后求解即可 代码: #include #include #in...
826 0
uva 1203 Argus
点击打开链接uva 1203 思路: 优先队列 分析: 1 题目要求前k个事件的编号,我们利用优先队列来维护即可 2 优先队列保存的是一个struct,因此我们需要重载 s.
1279 0
|
人工智能
uva 11300 - Spreading the Wealth
点击打开链接uva 11300 思路:数学分析+贪心 分析: 1 首先最终每个人的金币数量可以计算出来,它等于金币总数除以人数n。接下来我们用m来表示每人的最终的金币数 2 现在假设编号为i的人初始化为Ai枚金币,Xi表示第i个人给第i-1个人Xi枚金币,对于第一个人来说他是给第n个人。
837 0

热门文章

最新文章