uva_644暴力加字典树解法
暴力
#include<iostream>
#include<string.h>
#include<cstdio>
using namespace std;
int main()
{
int t=0,i=0;
char s[10][12];
bool a[12][12];
memset(s,'\0',sizeof(s));
while(scanf("%s",s[i])!=EOF)
{
if(s[i][0]=='9')
{
t++;
int state=1;
memset(a,false,sizeof(a));
for(int j=0;j<i;j++)
for(int k=j+1;k<=i;k++)
for(int l=0;s[j][l]!='\0'&&s[k][l]!='\0';l++)
{if(s[j][l]!=s[k][l])
{a[j][k]=true; //cout<<j<<k<<l<<endl;
}
//cout<<j<<k<<l<<endl;
//cout<<l<<s[k][l]<<endl;
}
for(int j=0;j<i;j++)
for(int k=j+1;k<=i;k++)
if(a[j][k]==false)
state=0;
if(!state)
printf("Set %d is not immediately decodable\n",t);
if(state==1)
printf("Set %d is immediately decodable\n",t);
memset(s,'\0',sizeof(s));
i=0;
}
else
i++;
}
return 0;
}
字典树
#include<iostream>
#include<string.h>
#include<cstdio>
using namespace std;
int tree[5000][2];
int w[5000];
int numv=0;
char s[10][12];
void insert(char s[])
{ int u=0;
w[0]++;
int len=strlen(s);
for(int i=0; i<len; i++)
{
if(tree[u][s[i]-'0']==0)
{
tree[u][s[i]-'0']=++numv;
}
u=tree[u][s[i]-'0'];
w[u]++;
}
//cout<<w[1]<<w[2]<<endl;
}
bool find(char s[])
{
int u=0;
int len=strlen(s);
for(int i=0; i<len; i++)
{
u=tree[u][s[i]-'0'];
//cout<<w[u]<<" "<<u<<s[i]<<endl;
if(w[u]==1)
{
return true;
break;
}
}
return false;
}
int main()
{
int t=0,i=0;
bool a[12];
memset(s,'\0',sizeof(s));
while(scanf("%s",s[i])!=EOF)
{
if(s[i][0]=='9')
{
numv=0;
memset(tree,0,sizeof(tree));
memset(w,0,sizeof(w));
memset(a,false,sizeof(a));
t++;
int state=1;
for(int j=0; j<i; j++)
insert(s[j]);
for(int j=0; j<i; j++)
if(find(s[j])==true)
{
a[j]=true;
} for(int j=0; j<i; j++)
if(a[j]==false)
{state=0; //cout<<j<<"as"<<endl;
}
if(!state)
cout<<"Set "<<t<<" is not immediately decodable"<<endl;
else
cout<<"Set "<<t<<" is immediately decodable"<<endl;
memset(s,'\0',sizeof(s));
i=0;
}
else
i++;
}
return 0;
}
uva_644暴力加字典树解法的更多相关文章
- Chip Factory(HDU5536 + 暴力 || 01字典树)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5536 题目: 题意: 对于给定的n个数,求出三个下标不同的数使得(si+sj)^sk最大. 思路: ...
- Codeforces 979 字符串强制N变换最多出现字母 DFS子树 暴力01字典树
A /* Huyyt */ #include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define mkp(a,b) ...
- hdu 2896 字典树解法
#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> ...
- HDU 5536 Chip Factory (暴力+01字典树)
<题目链接> 题目大意: 给定一个数字序列,让你从中找出三个不同的数,从而求出:$\max_{i,j,k} (s_i+s_j) \oplus s_k$的值. 解题分析:先建好01字典树,然 ...
- Educational Codeforces Round 12 E. Beautiful Subarrays 字典树
E. Beautiful Subarrays 题目连接: http://www.codeforces.com/contest/665/problem/E Description One day, ZS ...
- hust 1605 - Gene recombination(bfs+字典树)
1605 - Gene recombination Time Limit: 2s Memory Limit: 64MB Submissions: 264 Solved: 46 DESCRIPTION ...
- Phone List POJ-3630 字典树 or 暴力
Phone List POJ-3630 字典树 or 暴力 题意 目前有 t 组数据, n 个电话号码,如果拨打号码的时候 先拨通了某个号码,那么这一串号码就无法全部拨通. 举个例子 911 和 91 ...
- hdu5536 Chip Factory 字典树+暴力 处理异或最大 令X=(a[i]+a[j])^a[k], i,j,k都不同。求最大的X。
/** 题目:hdu5536 Chip Factory 链接:http://acm.hdu.edu.cn/showproblem.php?pid=5536 题意:给定n个数,令X=(a[i]+a[j] ...
- 从Trie树(字典树)谈到后缀树
转:http://blog.csdn.net/v_july_v/article/details/6897097 引言 常关注本blog的读者朋友想必看过此篇文章:从B树.B+树.B*树谈到R 树,这次 ...
随机推荐
- ES等待任务——是master节点上的task任务
等待中的任务编辑 有一些任务只能由主节点去处理,比如创建一个新的 索引或者在集群中移动分片.由于一个集群中只能有一个主节点,所以只有这一节点可以处理集群级别的元数据变动.在 99.9999% 的时间里 ...
- htmlunit 简单操作
首先我们新建一个Maven普通客户端项目,然后打开pom.xml 引入htmlunit支持: <dependency> <groupId>net.sourceforge.htm ...
- BZOJ 3052 树上带修莫队
思路: 就是把带修莫队移到了树上 块的大小开到(n^2/3)/2 比较好- 这是一个卡OJ好题 //By SiriusRen #include <cmath> #include <c ...
- Electron 问题
打包 Mac 桌面程序时报上述错误 E:\research\node\XXX>electron-packager ./ XXX --platform=darwin --arch=x64 --ic ...
- React组件化开发
环境搭建: 1.安装node.js 2.安装cnpm # npm install -g cnpm --registry=https://registry.npm.taobao.org 3.全局安装c ...
- P1726 上白泽慧音(0分)
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- 使用BigDecimal完成小数点后的精确位数的四舍五入
package com.ryan; import java.math.BigDecimal; class MyMath { public static double round(double num ...
- 页面定制CSS代码初探(三):设置正文最小高度
前言 没想到再次写这篇,已经过去1年半了. 现在审美也发生了改变,一开始做的样式全删了,只保留了h2的样式.原先认为界面要宽,两边留太多空很浪费,看惯了知乎和简书,觉得默认最大1000px的排版也不错 ...
- CF343E Pumping Stations(最小割树)
没学过最小割树的出门左转. 我们已经知道了两点的最小割就是最小割树上,对应两点之间路径的权值的最小值. 找到最小割树中权值的最小的边. 那么一定是先选完一侧的点在选完另一侧的点. 因为当前边最小,那么 ...
- [读书笔记] R语言实战 (五) 高级数据管理
1. 数值函数 1) 数学函数 2) 统计函数 3. 数据标准化 scale() 函数对矩阵或者数据框的指定列进行均值为0,标准化为1的标准化 mydata <- data.frame(c1=c ...