博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 10132 - File Fragmentation
阅读量:6581 次
发布时间:2019-06-24

本文共 1688 字,大约阅读时间需要 5 分钟。

hot3.png

基本思路:先按照长度排序,总长度等于第一个子串加上最后一个子串,然后从最后开始枚举子串与子串file[0]相加,也从后开始找到另一个子串与子串file[1]相加,并交换相加顺序,直到两个先加的串相等。

注意考虑所有子串都相等的特殊情况。

 

#include
#include
#include
#define MAX_LEN 256*8+5#define MAX_LINE 300char file[MAX_LINE][MAX_LEN];int cmp(const void*a, const void*b) { return strlen((char*) a) - strlen((char*) b);}void judge(int n) { qsort(file, n, MAX_LEN * sizeof(char), cmp); int len = strlen(file[0]) + strlen(file[n - 1]); int i, j; char str1[len + 5]; char str2[len + 5]; for (i = n - 1; i > 0; i--) { strcpy(str1, file[0]); strcat(str1, file[i]); for (j = n - 1; j > 1; j--) { if (j == i) continue; strcpy(str2, file[1]); strcat(str2, file[j]); if (strcmp(str1, str2) == 0) { printf("%s\n", str1); return; } } for (j = n - 1; j > 1; j--) { if (j == i) continue; strcpy(str2, file[j]); strcat(str2, file[1]); if (strcmp(str1, str2) == 0) { printf("%s\n", str1); return; } } } for (i = n - 1; i > 0; i--) { strcpy(str1, file[i]); strcat(str1, file[0]); for (j = n - 1; j > 1; j--) { if (j == i) continue; strcpy(str2, file[1]); strcat(str2, file[j]); if (strcmp(str1, str2) == 0) { printf("%s\n", str1); return; } } for (j = n - 1; j > 1; j--) { if (j == i) continue; strcpy(str2, file[j]); strcat(str2, file[1]); if (strcmp(str1, str2) == 0) { printf("%s\n", str1); return; } } }}int main() { int cases; scanf("%d", &cases); getchar(); getchar(); while (cases--) { int i = 0; while (1) { gets(file[i]); if (file[i][0] == 0) break; i++; } judge(i); if (cases) printf("\n"); } return 0;}

 

转载于:https://my.oschina.net/jdflyfly/blog/283644

你可能感兴趣的文章
1.2 linux哲学思想
查看>>
jQuery基础
查看>>
BZOJ5312:冒险——题解
查看>>
echarts,两点连线,中间断裂
查看>>
samba简易配置
查看>>
庆祝在CNBlogs开博!
查看>>
javascript reverse string
查看>>
南阳oj 题目6 喷水装置(一)
查看>>
运筹学上机实验 - 单纯形方法的两阶段法
查看>>
CF294C Shaass and Lights
查看>>
oracle 11g 报错记录
查看>>
文件状态是否变化
查看>>
MongoDB的副本集Replica Set
查看>>
Maven项目中的配置文件找不到以及打包问题
查看>>
面向对象
查看>>
HDU 1058 Humble Numbers
查看>>
NYOJ The Triangle
查看>>
wps10.1中将txt转为excel
查看>>
解决执行脚本报syntax error: unexpected end of file或syntax error near unexpected token `fi'错误的问题...
查看>>
[BZOJ3312][USACO]不找零(状压DP)
查看>>