HDU 1305 Immediate Decodability 可直接解码吗?
题意:一个码如果是另一个码的前缀,则 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 可直接解码吗?的更多相关文章
- hdu 1305 Immediate Decodability
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1305 字典树裸题,如下: #include<algorithm> #include< ...
- hdu 1305 Immediate Decodability(字典树)
Immediate Decodability Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- (step5.1.2)hdu 1305(Immediate Decodability——字典树)
题目大意:输入一系列的字符串,判断这些字符串中是否存在其中的一个字符串是另外一个字符串的前缀.. 如果是,输出Set .. is not immediately decodable 否则输出Set . ...
- Immediate Decodability HDU - 1305(模板trie)
求这些01串是否有一个是另一个的前缀.. 就是求次数就好了嘛...emm... 网上竟然都用指针写.... #include<cstdio> #include<iostream> ...
- hdu 1305 还是字典树
#include<cstdio> #include<iostream> #include<string> #include<cstdlib> #defi ...
- 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 ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
- HDU——PKU题目分类
HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...
- HDU 5513 Efficient Tree
HDU 5513 Efficient Tree 题意 给一个\(N \times M(N \le 800, M \le 7)\)矩形. 已知每个点\((i-1, j)\)和\((i,j-1)\)连边的 ...
随机推荐
- 20169219《linux内核原理与分析》第七周作业
网易云课堂学习 把write系统调用加入到MenuOS里面 我在试验过程中在MenuOS里加入了time.time-asm.write和write-asm命令.以time和time-asm为例, 步骤 ...
- 利用表达式树Expression优化反射性能
最近做了一个.Net Core环境下,基于NPOI的Excel导入导出以及Word操作的服务封装,涉及到大量反射操作,在性能优化过程中使用到了表达式树,记录一下. Excel导入是相对比较麻烦的一块, ...
- [开源]OSharpNS 步步为营系列 - 5. 添加前端Angular模块[完结]
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
- PAT L2-006【二叉树中序后序构造树】
#include<bits/stdc++.h> using namespace std; typedef long long LL; struct BT{ int w; BT *L; BT ...
- 自定义进度条PictureProgressBar——从开发到开源发布全过程
自定义进度条PictureProgressBar——从开发到开源发布全过程 出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处! 本项目JCenter地址:htt ...
- html标签的补充—— b,strong标签
b,strong标签 表意: 强调文本中的比较重要的词语 b标签,仅仅只是规定文本加粗 strong标签,不仅规定文本加粗,而且还能够表示强调 如果仅仅是为了视觉效果,使用样式(CSS)调整Web提倡 ...
- Exadata SL6 是个什么鬼?
就在 前两天,ORACLE的Exadata家族又发布了一个新成员:SL6. 变化上给人最直观的感觉是:从以前的X86架构变成了SPARC架构. Exadata Database Machine SL6 ...
- Helvetic Coding Contest 2016 online mirror F1
Description Heidi has finally found the mythical Tree of Life – a legendary combinatorial structure ...
- ThreadFactory 线程池工厂
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Thr ...
- strcpy、strncpy、strlen、memcpy、memset、strcat、strncat、strcmp、strncmp,strchr
1.strcpy #include<stdio.h> #include<assert.h> char *mystrcpy(char *dest, const char *src ...