【转】http://blog.csdn.net/zxy_snow/article/details/6131852
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
typedef struct NODE{
char str[10];
int pos[5];
}NODE;
NODE arr[121];//存枚举出来的字符串
NODE brr[101];//存输入的字符串
int visit[5];
int cou,d;
char temp[5];
void DFS() //深搜,枚举出来120种情况。。。
{
int i;
if( d == 5 )
{
strcpy(arr[cou].str,temp);
cou++;
return ;
}
for(i=0; i<5; i++)
if( !visit[i] )
{
temp[d] = i + 'A';
visit[i] = 1;
d++;
DFS();
d--;
visit[i] = 0;
}
}
void init()
{
memset(visit,0,sizeof(visit));
cou = d = 0;
}
char str[110][7];
int main()
{
int n,i,k,sum,j,p,tmp,max,tempi;
init();
DFS();
while( scanf("%d",&n)!=EOF && n )
{
sum = 0;
for(i=0; i<n; i++)
scanf("%s",brr[i].str);
for(i=0; i<cou; i++) //存每个字符的位置
{
for(k=0; k<5; k++)
arr[i].pos[arr[i].str[k]-'A'] = k;
}
for(i=0; i<n; i++) //同上
{
for(k=0; k<5; k++)
brr[i].pos[brr[i].str[k]-'A'] = k;
}
max = INT_MAX,tempi;
for(i=0; i<cou; i++)
{
sum = 0;
for(k=0; k<n; k++)
{
tmp = 0;
for(j=0; j<5; j++)// 比较两个字符的相对位置是否一样。一样的话差值相乘肯定大于0的。
for(p=j+1; p<5; p++)
if( ( arr[i].pos[j] - arr[i].pos[p] ) *
( brr[k].pos[j]-brr[k].pos[p] ) < 0 )
tmp++;
sum += tmp;
}
if( sum < max )//保存最小的value以及标号
{
max = sum;
tempi = i;
}
}
printf("%s is the median ranking with value %d./n",arr[tempi].str,max);
}
return 0;
}
分享到:
相关推荐
训练时发现的好题目。#include #include int main() { char ch; char str[100]; while(gets(str)) { if(str[0] == 'E') return 0; int z = 0, o = 0, j = 0, i = 0; while(str[i] !...}
学习ACM程序设计的朋友一定要看,这是训练必备的POJ ZOJ题目分类及解题思路
Interview,ZOJ,POJ 等平台。 欢迎Coders对代码加以指正和提议! 常见问题总结 两整数求平均值 average = min + (max - min) / 2 防止两整数的和越界 整数乘积对比 1.0 * m * m == num 类似乘积对比, 需转为double...
自动探测POJ、HDU、SOJ、ZOJ水题,对于有志于刷遍各种水题的ACMer来说非常有用
利用vjudge源码改造爬虫抓取vjudge全局共享答案资源。 ACMer,请用于参考思路,对拍代码,不要直接提交。
ZOJ解题报告ZOJ解题报告ZOJ解题报告ZOJ解题报告
zoj题目简单归类zoj题目简单归类zoj题目简单归类
acm中zoj1002的可运行C++程序
包含了zoj700多道题目的源代码,在做题时可以参考
Problem Arrangement zoj 3777
ZOJ题目答案源码
一个非常非常非常非常实用的zoj结题代码
zoj 1003 c语言的,要写这么多描述吗。。
ZOJ1805代码
本代码是zoj上AC的1951的代码,把双重循环简化为O(n),不过素数判断的改进还不够
浙大ZOJ题目分类,可以让你更方便快速锁定那你想要联系的题目,是自己快速提高·
zoj1027解题指南和代码,还不错,是学校培训给的。
ZOJ题解集合-截至2835。共1244个文件,C/C++,有重复
zoj 题库 详细解答 解题代码 acm
zoj4041正确题解源代码,以及运行程序