- 浏览: 70043 次
- 性别:
- 来自: 杭州
最新评论
见hdoj 1015 或 zoj 1403 或tzu 1308
我使用了枚举法,代码写的很罗嗦,可能还是深度优先搜索写起来更清晰。
/* hdoj 1015 */ #include <stdio.h> #include <string.h> #define MAX (12+5) #define RESLEN 5 int bubSort(int a[], int n); int str2Ints(char str[], int a[], int len); int ints2Str(int a[], char str[], int len); int isLegal(int i, int j, int k, int l, int m, int target); int main(void) { int n; char str[MAX],resStr[RESLEN+2]; int intArray[MAX]; int i,j,k,l,m; int len; int flag; while(scanf("%d %s", &n, str) == 2 && (n != 0 || strcmp("END",str) != 0)) { flag = 0; memset(resStr,0,sizeof(resStr)); memset(intArray,0,sizeof(intArray)); len = strlen(str); str2Ints(str,intArray,len); bubSort(intArray,len); for(i = 0; i < len && !flag; i++) for(j = 0; j < len && !flag; j++) if(j != i) { for(k = 0; k < len && !flag; k++) if(k != i && k != j) { for(l = 0; l < len && !flag; l++) if(l != i && l != j && l != k) { for(m = 0; m < len && !flag; m++) if( m != i && m != j && m != k && m != l) { if(isLegal(intArray[i],intArray[j],intArray[k], intArray[l],intArray[m],n)) { flag = 1; resStr[0] = 'A' + intArray[i] - 1; resStr[1] = 'A' + intArray[j] - 1; resStr[2] = 'A' + intArray[k] - 1; resStr[3] = 'A' + intArray[l] - 1; resStr[4] = 'A' + intArray[m] - 1; resStr[5] = '\0'; break; } } } } } if(flag) printf("%s\n",resStr); else printf("no solution\n"); } return 0; } int bubSort(int a[], int n) { int i,j,temp; for(i = n-1; i >= 0; i--) for(j = 0; j < i; j++) if(a[j] < a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } return 0; } int str2Ints(char str[], int a[], int len) { int i; for(i = 0; i < len; i++) a[i] = str[i] - 'A' + 1; return 0; } int ints2Str(int a[], char str[], int len) { int i; for(i = 0; i < len; i++) str[i] = a[i] + 'A' - 1; str[i] = '\0'; return 0; } int isLegal(int i, int j, int k, int l, int m, int target) { if(i - j * j + k * k * k - l * l * l * l + m * m * m * m * m == target) return 1; else return 0; }
发表评论
-
最小c编译器
2011-11-08 14:09 1408最小c编译器(来源 (最好在linux下操作))代码有好几个 ... -
the development of c language(转)
2011-11-08 09:25 1061c语言之父Dennis Ritchie 写的关于c语言开发历 ... -
C语言,你真的弄懂了么?
2011-11-07 12:42 1715程序(来源 ): #include <stdi ... -
pe文件格式实例解析
2011-11-07 10:05 0环境:windows xp 速龙3000+(即x86兼容32位 ... -
小型elf "Hello,World"程序
2011-11-06 23:59 1315参考链接:http://timelessname.com/el ... -
elf文件格式实例解析
2011-11-05 23:00 6267试验环境:archlinux 速龙3000+(即x86兼 ... -
高质量的c源代码
2011-11-03 10:18 1083现在自由软件及开源软件越来越流行,有大量的附带源程序 ... -
fltk 库
2011-09-26 19:47 1761fltk是一个小型、开源、支持OpenGL 、跨平台(win ... -
《Introduction to Computing Systems: From bits and gates to C and beyond》
2011-09-25 23:33 2110很好的一本计算机的入门书,被很多学校采纳作为教材,作者Yale ... -
csapp bufbomb实验
2011-09-16 14:21 4534csapp (《深入理解计算机系统》)一书中有一个关于缓冲区 ... -
the blocks problem(uva 101 or poj 1208)
2011-09-11 20:57 1793题目描述见:uva 101 or poj 1208 ... -
the blocks problem(uva 101 or poj 1208)
2011-09-11 20:56 0题目描述见:uva 101 or poj 1208 ... -
部分排序算法c语言实现
2011-09-02 14:51 982代码比较粗糙,主要是用于对排序算法的理解,因而忽略了边界和容错 ... -
编译器开发相关资源
2011-08-31 08:40 1164开发编译器相关的一些网络资源: how difficu ... -
zoj 1025 Wooden Sticks
2011-07-23 20:25 937题目见:zoj 1025 先对木棒按照长度进行排序,然后再计 ... -
zoj 1088 System Overload
2011-07-23 17:30 1131约瑟夫环 (josephus problem )问题, ... -
zoj 1091 Knight Moves
2011-07-23 09:05 810题目见zoj 1091 使用宽度搜索优先来求解, ... -
zoj 1078 palindrom numbers
2011-07-22 19:31 1111题目见zoj 1078 主要是判断一个整数在基数为2 ... -
zoj 1006 do the untwist
2011-07-22 13:24 895题目见zoj 1006 或poj 1317 简单 ... -
zoj 3488 conic section
2011-07-22 12:23 959题目见zoj 3488 很简单的题目,却没能一次搞定,因 ...
相关推荐
HDOJ题目分类HDOJ题目分类HDOJ题目分类
hdoj1001标程
ACM ICPC HDOJ1002
hdoj上的资源,代码有注释,很不错的哦
ACM ICPC HDOJ1001
hdoj1004,解题代码,答案代码,欢迎下载
ACM ICPC HDOJ1003
杭州电子科技大学hdoj1002,大整数相加问题
ACM ICPC HDOJ1008
杭州电子科大HDOJ
c语言 最短路 是hdoj上的一个最短路问题,写的很牛
一些HDOJ上的DP题目的小总结,但愿能帮到那些想专攻DP的人吧
ACM ICPC HDOJ1000
hdoj解题代码,题目为1000-1050
codj,hdoj的源码(50-60题)
HDOJ 源代码 包含几百道HDOJ题目源码
hdoj 2013 多校训练3标程+解题报告
杭电OJ(1000-1099) AC 代码
hdoj1005 Number Sequence, 杭州电子科技大学oj题目代码
HDOJ使用指南——公开版.docHDOJ使用指南——公开版.docHDOJ使用指南——公开版.doc