hdu 3724 Encoded Barcodes

简介: 点击打开链接hdu 3742 思路:字典树 分析: 1 题目给定n个单词,有m次的询问。每一次的询问会有k个长度为8的条形码,条形码是8个double组成。

点击打开链接hdu 3742


思路:字典树

分析:
1 题目给定n个单词,有m次的询问。每一次的询问会有k个长度为8的条形码,条形码是8个double组成。现在要求将条形码转化为字符串然后求出n个单词中以该字符串为前缀的个数,最后把m次询问结果相加。
2 利用字典树在节点里面存储以某一个子串为前缀的单词的个数;接下来就是怎样把条形码转化为字符串,由于题目明确指出只有两种的宽度,并且有两倍的关系。但是由于存在误差,所以输入的数据是有差的;其实我们只要求出8个数的总和然后求平均值,那么肯定就有比平均值小的肯定用0表示,比平均值大的肯定用1表示,为什么呢(因为误差的范围只在(0.95-1.05))。所以这样就可以解决问题。

代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;

#define eps 1e-9 
#define MAXN 1000010
#define MAX 40
#define N 30

int cnt , n , m , k;
int ans;
struct Trie{
   int count;
   Trie *child[N];
}trie[MAXN];
Trie *root;

/*节点的空间分配*/
Trie *newTrie(){
   trie[cnt].count = 0;
   for(int i = 0 ; i < N ; i++)
      trie[cnt].child[i] = NULL;
   return &trie[cnt++];
}

/*字典树的插入*/
void insert(char *str){
   Trie *s = root;
   int len = strlen(str);
   for(int i = 0 ; i < len ; i++){
      int num = str[i]-'a';
      if(s->child[num] == NULL)
        s->child[num] = newTrie();
      s = s->child[num];
      s->count++;
   }
}

/*字典树的查找*/
int search(char *str){
   Trie *s = root;
   int len = strlen(str);
   for(int i = 0 ; i < len ; i++){
      int num = str[i]-'a';
      if(s->child[num] == NULL)
        return 0;
      s = s->child[num];
   }
   return s->count;
}

int main(){
   int i , j;
   char words[MAX];
   double num[8];
   double sum;
   int number;
   while(scanf("%d%d" , &n , &m) != EOF){
       ans = 0;
       cnt = 0;
       root = newTrie();
       /*输入单词*/
       for(i = 0 ; i < n ; i++){
          scanf("%s" , words);
          insert(words);
       }
       /*输入m次的询问*/
       for(i = 0 ; i < m ; i++){
          scanf("%d" , &k);
          memset(words , '\0' , sizeof(words));
          for(j = 0 ; j < k ; j++){
             sum = 0.0;
             for(int t = 0 ; t < 8 ; t++){
                scanf("%lf" , &num[t]);
                sum += num[t];
             }
             /*求要搜素的字符串*/
             sum /= 8;
             number = 0;
             for(int t = 0 ; t < 8 ; t++){
                 if(num[t]-sum > eps)
                   number += pow(2.0 , 7-t);
             }
             char c = number;
             words[j] = c;
          }
          ans += search(words);/*相加*/
       }
       printf("%lld\n" , ans);
   }
   return 0;
}


目录
相关文章
|
弹性计算 运维 容灾
阿里云使用体验
经过进一步的体验云服务器我感受到阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了采购IT硬件的前期准备,就像是使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩,在使用期间给阿里云我最大的印象就是方便,快捷。使用界面简单明了,通过不断地尝试,我了解到了更多的特殊概念,专业名词,也了解到了如快照等容灾备份能力的实际用途,现实生活中,如果我们的电脑磁盘出现了故障,数据出现了损坏就无能为力了,或者只能够找专业的人把数据能够找回来,但是不能够保证说所有的数据都能找回来。
|
5天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1701 7
|
9天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
1627 2
|
6天前
|
SQL 人工智能 前端开发
QoderWake 1.0 正式发布:从桌面里的 Agent,到工作现场的数字员工
QoderWake v1.0正式发布:企业级数字员工团队平台。支持“一句话建岗”,预置10类特训岗位;Waker常驻钉钉/飞书群,@即响应、自动协作、跨任务记忆;具备定时/事件/API多触发方式与统一任务看板;已沉淀27.6万条记忆、12.3万项技能,助力组织实现人机协同增效。
744 1
|
10天前
|
网络协议 Linux iOS开发
【2026实测】Wireshark下载+安装+汉化+使用教程(图文版,巨详细)
Wireshark 是一款免费开源的网络协议分析工具,可实时捕获、解析并可视化数据包,助你诊断网络故障、分析通信协议(如HTTP、DNS、TCP等)。支持Windows/macOS/Linux,含中文界面,新手入门便捷。(239字)
|
18天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3903 5
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
4天前
|
缓存 测试技术 API
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
DeepSeek V4.1 Flash 内测不用申请,base_url 不变、改个模型名就能调,9/10 到期。本文讲清接入、计费限流与多模态注意点。
725 0
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
|
9天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1148 0

热门文章

最新文章