题意:一个码如果是另一个码的前缀,则 is not immediately decodable,不可直接解码,也就是给一串二进制数字给你,你不能对其解码,因解码出来可能有多种情况。

思路:将每个码按长度从短到长排序,逐个与其后面的码比较,若前面相同位数完全一样了,那就可以输出了。

 #include <iostream>
#include <stdio.h>
#include <string>
#include <map>
#include <cstring>
#include <algorithm>
using namespace std;
vector< vector<int> > a;
bool cmp(vector<int> a, vector<int> b){return a.size()<b.size()? true: false;}
bool isid()
{
bool issub=false;
int t, j, k;
sort(a.begin(), a.end(), cmp); //按照元素的多少从少到多排序
/*test
for(t=0; t<a.size(); t++)
{
for(j=0; j<a[t].size(); j++)
{
cout<<a[t][j];
}
cout<<endl;
}*/
for( t=; t<a.size(); t++ ) //从小到大,一个个跟后面的比较前a[t].size()个是不是重叠,
{
for(j=t+; j<a.size(); j++)
{
issub=true;
for(k=; k<a[t].size(); k++)
{
if( a[t][k]!=a[j][k] )
{
issub = false; //只要有一个不同,就不是真子串
break;
}
}
if( issub==true ) //有一个串是另一个串的前缀
return false;
}
}
return true;
} int main()
{
//freopen("e:input.txt","r",stdin);
vector<int> tmp;
char c;
int i=, t, j, k, cnt=;
while( (c=getchar())!=EOF )
{
if( c=='' ) //一个例子结束
{ if( isid()==true ) //处理 a
cout<<"Set "<< ++cnt<<" is immediately decodable"<<endl;
else
cout<<"Set "<< ++cnt<<" is not immediately decodable"<<endl;
a.clear(); //例子结束,清理工作
}
else if( c=='\n' ) //只是换行
{
if(tmp.empty()==) //提交并清空
{
a.push_back(tmp);
tmp.clear();
}
}
else //c是0和1的
tmp.push_back(c-'') ;
}
return ;
}

Immediate Decodability

HDU 1305 Immediate Decodability 可直接解码吗?的更多相关文章

  1. hdu 1305 Immediate Decodability

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1305 字典树裸题,如下: #include<algorithm> #include< ...

  2. hdu 1305 Immediate Decodability(字典树)

    Immediate Decodability Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  3. (step5.1.2)hdu 1305(Immediate Decodability——字典树)

    题目大意:输入一系列的字符串,判断这些字符串中是否存在其中的一个字符串是另外一个字符串的前缀.. 如果是,输出Set .. is not immediately decodable 否则输出Set . ...

  4. Immediate Decodability HDU - 1305(模板trie)

    求这些01串是否有一个是另一个的前缀.. 就是求次数就好了嘛...emm... 网上竟然都用指针写.... #include<cstdio> #include<iostream> ...

  5. hdu 1305 还是字典树

    #include<cstdio> #include<iostream> #include<string> #include<cstdlib> #defi ...

  6. HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配)

    HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配) Description The zoo have N cats and M dogs, toda ...

  7. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  8. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  9. HDU 5513 Efficient Tree

    HDU 5513 Efficient Tree 题意 给一个\(N \times M(N \le 800, M \le 7)\)矩形. 已知每个点\((i-1, j)\)和\((i,j-1)\)连边的 ...

随机推荐

  1. Makefiles

    A tutorial by example Compiling your source code files can be tedious, specially when you want to in ...

  2. BMFont使用图片自定义字体(无需字体文件)

    网上搜BMFont做字体,很多都是从一个字体文件读取,然后选择需要的字,然后保存成图片文字,这个对于一般的文字的确很实用,因为Unity本身不支持中文,所以只好这样了. 但是做过游戏的都知道,策划总是 ...

  3. SqlDataReader

    using (mycon) { //using语句与try catch finally结合使用 mycon.Open(); // MessageBox.Show("dakai"); ...

  4. UE4简单实现描边高亮效果

    材质文件下载地址: 链接:https://pan.baidu.com/s/10HUmXR_YNMOTF-Cg4ybuUg 提取码:m1my 1. 将材质文件放到Content目录中 2. 在项目中添加 ...

  5. linux网络基础-网卡bonding技术

    1.bondingbonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,实现本地网卡的冗余,带宽扩容和负载均衡.在应用部署中是 ...

  6. Educational Codeforces Round 52E(构造,快速幂)

    #include <bits/stdc++.h>using namespace std;const int mod=998244353;long long b[200007];long l ...

  7. ICP备案接入商

    1. 什么是ICP备案中的接入商 ICP备案系统中所说的接入商:是指为您提供虚拟主机.服务器托管或者专线接入的公司. 现在ICP备案的原则是“谁接入谁负责”,接入商一般都有自己的电子平台和工信部对接, ...

  8. Mac 安装flutter 踩坑记

    完整版请看链接: http://b36d5043.wiz03.com/share/s/2Prl132RpQ3x2XpA4I2oTa2204K0FF0vB4J42tWIEQ04UrAg 首先下载flut ...

  9. 【ACM】孪生素数问题

    孪生素数问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 写一个程序,找出给出素数范围内的所有孪生素数的组数.一般来说,孪生素数就是指两个素数距离为2,近的不能再 ...

  10. 05.Spring 资源加载 - Resource

    基本概念 Spring 把所有能记录信息的载体,如各种类型的文件.二进制流等都称为资源. 对 Spring 开发者来说,最常用的资源就是 Spring 配置文件(通常是一份 XML 格式的文件). S ...