UVA 10132 - File Fragmentation

Android逆向分析 Android 逆向开发是指对已发布的 Android 应用进行分析和破解,以了解应用程序的内部工作原理,获取应用程序的敏感信息,或者修改应用程序的行为。Android应用 Java编写的,利用Android SDK编译代码,并并且把所有的数据和资源文件打包成一个APK(Android Package)文件这是一个后缀名为.apk的压缩文件,apk文件中包含了一个Anddroid应用程序的所有内容,是Android平台用于安装应用程序的文件。 阅读详情

File Fragmentation

The Problem

Your friend, a biochemistry major, tripped while carrying a tray of computer files through the lab. All of the files fell to the ground and broke. Your friend picked up all the file fragments and called you to ask for help putting them back together again.

Fortunately, all of the files on the tray were identical, all of them broke into exactly two fragments, and all of the file fragments were found. Unfortunately, the files didn't all break in the same place, and the fragments were completely mixed up by their fall to the floor.

You've translated the original binary fragments into strings of ASCII 1's and 0's, and you're planning to write a program to determine the bit pattern the files contained.

Input

The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs.

Input will consist of a sequence of ``file fragments'', one per line, terminated by the end-of-file marker. Each fragment consists of a string of ASCII 1's and 0's.

Output

For each test case, the output must follow the description below. The outputs of two consecutive cases will be separated by a blank line.

Output is a single line of ASCII 1's and 0's giving the bit pattern of the original files. If there are 2N fragments in the input, it should be possible to concatenate these fragments together in pairs to make N copies of the output string. If there is no unique solution, any of the possible solutions may be output.

Your friend is certain that there were no more than 144 files on the tray, and that the files were all less than 256 bytes in size.

Sample Input

1

011
0111
01110
111
0111
10111

Sample Output

01110111

================================

每次输入完毕后都会再输入一个空行……每组输出之间也要有空行……

先排序,总长度就是a[0]和a[n-1]的长度和。

长度相等的最多有两个(不会有两个文件在同一个地方断掉),所以只要出现有长度相等的ab,和与它们对应的长度相等的两个cd一定可以组成两份相同的原文件。只有ac ad bc bd四种方式,枚举即可。

如果都只出现一次,那么a[0]和a[n-1]、a[1]和a[n-2]一定可以组成两份相同的原文件,同样枚举即可。


#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>

using namespace std;

string str[333],s1,s2;
char s[333];

int cmp(string a,string b)
{
    if(a.length()==b.length())
        return a<b;
    else return a.length()<b.length();
}

int main()
{
    int t;
    scanf("%d",&t);
    getchar();
    getchar();
    while(t--)
    {
        int n=0,p=-1;
        while(gets(s))
        {
            if(s[0]!='\0')
                str[n++]=s;
            else break;
        }
        sort(str,str+n,cmp);
        //for(int i=0;i<n;i++) cout<<"---"<<str[i]<<endl;
        int sumlen=str[0].length()+str[n-1].length();
        for(int i=0;i<n-1;i++)
        {
            if(str[i].length()==str[i+1].length())
            p=i;
            break;
        }
        if(p!=-1)
        {
            if(str[p]+str[n-1-p]==str[p+1]+str[n-2-p]) cout<<str[p]+str[n-1-p]<<endl;
            else if(str[p]+str[n-1-p]==str[n-2-p]+str[p+1]) cout<<str[p]+str[n-1-p]<<endl;
            else if(str[n-1-p]+str[p]==str[p+1]+str[n-2-p]) cout<<str[n-1-p]+str[p]<<endl;
            else if(str[n-1-p]+str[p]==str[n-2-p]+str[p+1]) cout<<str[n-1-p]+str[p]<<endl;
        }
        else
        {
            if(str[0]+str[n-1]==str[1]+str[n-2]) cout<<str[0]+str[n-1]<<endl;
            else if(str[0]+str[n-1]==str[n-2]+str[1]) cout<<str[0]+str[n-1]<<endl;
            else if(str[n-1]+str[0]==str[1]+str[n-2]) cout<<str[n-1]+str[0]<<endl;
            else if(str[n-1]+str[0]==str[n-2]+str[1]) cout<<str[n-1]+str[0]<<endl;
        }
        if(t) cout<<endl;
    }
    return 0;
}


用V E S C 6-M K V I 第六代调速控制器给VESC电调刷固件 文章摘要:本文介绍了一款先进的电机控制器,具备多项创新技术。核心亮点包括三相电流/电压检测、四象限无缝运行、多模式兼容等先进电机控制技术,以及智能感知与安全保护、高效能电源管理、多样化连接与扩展功能。此外,该控制器支持实时数据监测与用户交互,具备开源生态和工业级可靠性,适用于电动载具、机器人及工业领域。用户需注意散热要求和兼容性提示,可通过VESC-Tool软件进行灵活配置。产品可在常竹科技淘宝店购买,并加入技术交流群获取支持。 阅读详情

相关推荐

手把手教你用UC3844设计多路输出反激电源(附PCB布局避坑指南)

本文详细介绍了使用UC3844设计多路输出反激电源的实战技巧,包括核心电路设计、变压器参数计算、PCB布局优化及EMI抑制方法。通过实验室实测数据和项目经验,帮助工程师避开常见设计陷阱,提升电源性能和可靠性。特别附赠PCB布局避坑指南,助力高效完成开关电源设计。

weixin_30300225的博客 568

UVa 10132 - File Fragmentation

链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=1073 类型: 贪心+回溯 原题: The Problem Your friend, a biochemistry major, tri

D_Double's Journey 1294

Ubuntu 24.04中文输入法终极指南:从安装到疑难排解

本文是Ubuntu 24.04中文输入法的完整指南,详细介绍了如何通过图形界面或命令行安装和配置Intelligent Pinyin输入法。内容涵盖IBus框架的运作原理、输入法快捷键调校、模糊音设置,并重点解决了Qt应用无法输入中文的疑难问题,最后提供了Fcitx5备选方案及常见故障的排解方法。

weixin_29294975的博客 1245

UVA 10132 File Fragmentation(字符串还原)

File Fragmentation Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Description Question 2: File Fragmentation The Problem Your friend, a bioc

KongWX 611

Altium Designer20-柔性PCB绘制技巧

Altium Designer2020-柔性PCB绘制技巧 注:教程所用PCB随意找的,并没有完全绘制完,大家学习PCB折弯方法即可。 1.打开PCB,点击视图->板子规划模式1,如下图所示 2.点击设计->定义分割线,用两条分割线绘出要折弯的区域 3.点击设计->定义弯曲线(弯曲线呈现黄色) 4.用快捷键d,k进入layer manage stack(层叠管理器),在f...

weixin_44450279的博客 1万+

台达B3伺服电机485通讯的调试过程

最近上了一项目,没办法直接把B3伺服接到PLC上去,怎么办?偶说试下直接电脑通过100多米的485线控制好了,定型前的测试就这样展开了。 1、焊CN1口 如果不安装CN1,是开不了机的,要报很多错误,比如SERV EMG ALERT, 上限报警,下限报警什么的,怎么办?直接焊好CN1头子吧,烦了点,但是必要的。 主要接的是11,9,10,32,31,30几个脚,按照图上连接好就是了。 2、 接线路 按照上面的图,接上伺服电机线,编码器线,电源线,包括限位常闭开关、485连线等,就完..

shidong01的博客 1万+

UVA10132 ZOJ1832 File Fragmentation【vector】

Your friend, a biochemistry major, tripped while carrying a tray of computer files through the lab. All of the files fell to the ground and broke. Your friend picked up all the file fragments and call...

海岛Blog 579

保姆级教程:用K210麦克风阵列模块实现声源定位(附完整Python代码与坐标计算)

本教程详细介绍了如何使用K210麦克风阵列模块实现高精度声源定位,包括硬件连接、算法解析与实战代码。通过Python代码示例,展示了从原始数据获取到三维空间坐标计算的完整流程,适用于智能家居、机器人导航等场景。

weixin_42558093的博客 227

UVA - 10132 File Fragmentation(贪心)

Question 2: File Fragmentation The Problem Your friend, a biochemistry major, tripped while carrying a tray of computer files through the lab. All of the files fell to the ground and broke. Your f

小G的ACM之路 1007

【51单片机仿真】基于51单片机设计的多功能电子时钟日历(实时时钟闹钟秒表温度检测)系统__资料编号5

该项目是基于单片机的多功能电子时钟系统,集成了时间显示、闹钟设置、秒表功能以及温度显示等功能。主要硬件包括1602液晶显示屏、DS1302时钟芯片、DS18B20温度传感器和蜂鸣器。系统通过按键进行时间和闹钟的设置,并实时显示当前时间和温度。

嵌入式阿齐Archie 2万+

YOLO26全新改进 | 最全损失函数改进篇 | SIoU 、WIoU、GIoU、DIoU、EIOU、CIoU, InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数

🔥本文详细介绍了如何修改YOLO26中的损失函数。首先提供了完整的损失函数核心代码,包括WIoU_Scale类和各种IoU计算方法。然后分三步指导修改:1)替换metrics.py中的bbox_iou方法;2)修改loss.py中的iou计算代码;3)更新tal.py中的相关代码。文中特别强调了修改损失函数应在模型结构调整后使用,并提供了多种IoU损失函数的参数配置建议,包括SIoU、WIoU、GIoU等,可根据实际需求灵活选择搭配使用。

Ai缝合怪、助力小伙伴高效发论文 450

Fragmentation 源码分析

Fragmentation 源码分析 前言 前段时间突然发觉,Fragmentation 这个库我已经使用了这么久了,从 0.10.1 版本开始接触,用到现在已经 1.3.x 了。这是一段很长的时间,自己在这段时间里也成长了不少。其实从使用 Fragmentation 这个库以来,这个库虽然好用,但是一直也没有看过它的源码,不知道内部实现,挺惭愧的,这段时间正好有点空闲时间,就分析一波它的源码吧...

wdeo3601的博客 2300

手把手教你学Simulink--电机电磁兼容与可靠性​场景示例:基于Simulink的电机轴电压与轴电流抑制仿真

本文带你完成了电机轴电压与轴电流抑制的Simulink仿真,实现了:✅ 揭示了共模电压 → 寄生电容 → 轴电压 → 轴承电蚀的完整链路✅ 搭建了含寄生参数的高频电机等效模型共模电压最小化PWM(源头抑制)dv/dt滤波器(路径阻断)轴接地(终端泄放) ✅ 通过仿真验证了轴电压从68 V降至<3 V的显著效果 ✅ 为高可靠性电机系统提供低成本、高效益的轴承保护方案。

MHD0815的博客 315

File Fragmentation Uva 10132

思路:最长的碎片和最短的碎片的组合中肯定有答案。所以先求长度,然后组合他们,最后检测组合结果字符串是否确保输入的碎片字符串都在其开始或结尾处。 总结:代码编写边注释,当你注释写不好的时候,说明你的思路也不是很清晰,请停下来思考,理清思路。下面这段代码是我注释得最详细的,因为我体会到,当自己写的程序不能AC的时候,搜搜看看别人没有注释的代码会更加让自己烦躁。 #include #include

最后的坚持 732

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

File Fragmentation UVA - 10132 暴力

问题 https://vjudge.net/problem/UVA-10132 有n个相同的文件,每个文件恰好分成两半,现在有2n个碎片,求原来的文件是什么? 分析 这题没啥思路,直接看别人的答案吧。 晕,审题不仔细,没有看到每一个文件都恰好分成两个碎片。那就很明显是暴力了。 所有的原文件都是相同的,那么先按照长度排序,原文件长度一定等于最长的+最短的。然后最长的和最短的依此拼接,每个拼接结果去校...

zpf1998的博客 167

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

UVa 10132 - File Fragmentation

Question 2: File Fragmentation The Problem Your friend, a biochemistry major, tripped while carrying a tray of computer files through the lab. All of the files fell to the ground and broke. Your fri

ACM2272902662的专栏 991

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

uva 10132 File Fragmentation

这个题挺恶心,弄了不少时间,大概意思是有2n个文件碎片,他们都是从原来的一模一样的n个文件拆成两半形成的,要你根据这些碎片确定原来文件,一开始就应该能想到要把这些碎片长度从小到大排个序,然后我就天真的以为最短+最长的应该就是了,确实没错,但这里有个问题就是如果最短和最长的文件都有多个,那么问题就出来了,这里就必须得用枚举,来确定原文件碎片,不过这个题目数据有点水,只要把文件长度排序后,找到最长和最

NiaNiaJR的专栏 800

UVA - 10132 File Fragmentation

题目大意:输入有点恶心,首先是case数,然后一个空行,然后再输入信息,然后又以一个空行结束该组数据,如果是最后一组数据了,不以空行结束,而是直接以EOF结束。输出,case之间有一个空行,最后一个case后面不要加空行每组case的信息,就是N行的串,串中只有01,串的个数一定是偶数。原本有很多个一样的长串,每个长串都分成了两个短串但是分割的位置不一定相同即两个短串不一定是平分的(就是输入中的那些

Bingo 1761

uva 10132 - File Fragmentation

就是一个文件的很多副本碎成两半, 让你根据所有碎片求出原来的文件 排序枚举一下就ok了 题目: Question 2: File Fragmentation The Problem Your friend, a biochemistry major, tripped while carrying a tray of computer files through th...

aiezhen1717的博客 194

字符串uva 10132 File Fragmentation

uva 10132 File Fragmentation 一开始想太多,用深搜做直接超时了,换了方法过了,直接找出最长和最短,拼出得串去检查是否符合,符合输出即可 #include #include int t; int tt; int min, max; char a[300][300]; int len; char c[300]; char cn[300]; int judge(

Remilia's 831

UVa Problem Solution: 10132 - File Fragmentation

I solve this problem in a manner that seems not straight forward. I let the fragments to "vote" on each bit if it is 0 or 1. Specifically, for each fragment, it is either the head or tail of the f

Kaipeng Liu's Column 3059

UVA - 10132 File Fragmentation 暴力+回溯

题目大意:给出一系列的片段,片段

静静地码 762

uva10132File Fragmentation(贪心)

题目:uva10132File Fragmentation 题目大意:有n个文件,都是相同的,但是不小心打破了,而且每个文件的裂痕不一样,每个文件都损坏成两个碎片。每个文件的碎片都用2进制数表示,然后给出2*n个碎片,问这样的碎片能得到的文件(n个)。如果答案不唯一,给出其中一个就可以。 解题思路:因为每两个碎片形成一个文件,那么找出最长的碎片,那么它必然和最小的文件匹配组成文

830

uva 10132 - File Fragmentation

点击打开链接uva 10132 题目意思: 有一个人有n个文件,每个文件都是相同的,现在这n个文件的每一个文件都被分成了两部分用字符序列表示,要我们找到原来文件的字符序列。 解题思路: 1:每一个文件都是分裂成两部分,每一种文件都是相同的,那么只要找到最小的长度和最大的长度,那么加起来就是文件的长度记为L。 2:知道了文件的长度,那么如果我们从第一个子串假设为...

我是传奇 177
上一篇: UVA 10905 - Children’s Game
下一篇: UVA 10341 - Solve It(二分)
coco430
博客等级 码龄14年 9粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值