当前位置: 首页 > 编程日记 > 正文

【HDU】1251统计难题 (字典树:二维数组,结构体数组,链表,map)

使用二维数组或者结构体数组都可以,但是在计数的时候有一点点小区别

一、结构体数组

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string>
typedef long long ll;
using namespace std;
const int maxn = 500000;
typedef struct 
{int cnt;int next[26];
}node;
int tot;
node T[maxn];void insert(char *s)
{int u =0;for(int i=0;s[i];i++){int x=s[i]-'a';if(T[u].next[x]==0){T[u].next[x]=++tot;}u=T[u].next[x];	T[u].cnt++;}
}int find(char *s)
{int u = 0;for(int i=0;s[i];i++){int x = s[i]-'a';if(T[u].next[x]==0)return 0;u=T[u].next[x];}return T[u].cnt;
}int main()
{char s[20];memset(T,0,sizeof(T));tot=0;while(gets(s)){if(s[0]=='\0')break;insert(s);	}while(scanf("%s",s)!=EOF){printf("%d\n",find(s));}return 0;
}

二、二维数组

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define maxn 2000005
using namespace std;
int tot=0,n;
int trie[maxn][26];
int sum[maxn];
void insert(char *s)
{int i,root=0;for(i=0;s[i];i++){int x=s[i]-'a';if(trie[root][x]==0){trie[root][x]=++tot;}sum[trie[root][x]]++;root = trie[root][x];}
}int find(char *s)
{int i,root=0;for(i=0;s[i];i++){int x=s[i]-'a';if(trie[root][x]==0)return 0;root = trie[root][x];}return sum[root];
}
char s[20];
int main ()
{int i,root=0;while(gets(s)){if(s[0]=='\0')break;insert(s);}while(scanf("%s",s)!=EOF){printf("%d\n",find(s)); }return 0;
}

三、链表,指针(C++提交/G++显示超内存)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
using namespace std;
const int maxn = 26;typedef struct node
{int v;struct node *next[maxn];node(){v = 1;for(int i=0;i<26;i++)next[i]=NULL;}
}N;N *root;void insert(char *s)
{N *p = root;for(int i=0;s[i];i++){int x = s[i]-'a';if(p->next[x]==NULL)p->next[x] = new N;elsep->next[x]->v++;p=p->next[x];}
} int find(char *s)
{N *p=root;for(int i=0;s[i];i++){int x = s[i]-'a';p=p->next[x];if(p==NULL)return 0;}return p->v;
}int main ()
{char str[30];root = new N;while(gets(str)){if(str[0]=='\0')break;insert(str);}	while(gets(str))printf("%d\n",find(str));return 0;
}

四、map

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
#include <map>
using namespace std;
int main ()
{string s;char a,b;map<string,int> m;while(scanf("%c",&a)!=EOF){if(a=='\n')//第一个单词输入完毕{scanf("%c",&b);//输入下一个单词的第一个字母if(b=='\n')//所有单词输入完毕break;else{s=b;m[s]++;continue;}}else{s+=a;m[s]++;}}char s1[15];while(scanf("%s",s1)!=EOF){cout << m[s1] << endl;}return 0;
}

(G++ AC / C++ WA)

#include <stdio.h>
#include <string.h>
#include <map>
#include <string>
using namespace std;
map<string,int>m1;
int main()
{char z[10];while(gets(z)){if(strlen(z)==0)break;for(int i=strlen(z);i>0;i--){z[i]='\0';m1[z]++;}}while(gets(z)){printf("%d\n",m1[z]);}return 0;
}

相关文章:

Jmeter干货 不常用却极其有用的几个地方

1. Jmeter测试计划下Run Thread Groups consecutively 表示序列化执行测试计划下所有线程组中的各个请求 如下图配置&#xff0c;新建的测试计划中&#xff0c;不默认勾选此项&#xff0c; 而享用Jmeter做接口自动化测试的同学们&#xff0c;会发现一个问题是&#xff0c;可能多…

图像滤波总结(面试经验总结)

目录 图像平滑处理&#xff0c;6种滤波总结的综合示例 【盒式滤波、均值滤波、高斯滤波、中值滤波、双边滤波导向滤波】 1-图像滤波 2-代码演示 3-显示结果 4-程序说明 5 角点检测&#xff08;Harris,Fast,surf&#xff09; 图像平滑处理&#xff0c;6种滤波总结的综合示…

【小贴士】DEV 多行注释

多行注释 Ctrl / 取消多行注释 Ctrl &#xff0c;

JSP+Servlet基础一

2019独角兽企业重金招聘Python工程师标准>>> JSP中的指令: 格式&#xff1a;<%指令的名称(page&#xff0c;taglib&#xff0c;include...) 属性属性值%> 指令中的page&#xff1a;用于整个页面&#xff0c;定义与页面相关的属性。page属性一共有13个。 1、常…

Chameleon跨端框架——壹个理想主义团队的开源作品

文章较长&#xff0c;信息量很大&#xff0c;请耐心阅读&#xff0c;必然有收获。下面正文开始~背景解决方案原理久经考验生产应用举例易用性好多态协议学习成本低渐进式接入业内对比后期规划理想主义历经近20个月打磨&#xff0c;滴滴跨端方案chameleon终于开源了github.com/d…

尺度空间理论与图像金字塔(二)

SIFT简介 整理一下方便阅读&#xff0c;作者写的东西摘自论文&#xff0c;在此感谢xiaowei等的贡献 DoG尺度空间构造&#xff08;Scale-space extrema detection&#xff09;http://blog.csdn.net/xiaowei_cqu/article/details/8067881关键点搜索与定位&#xff08;Keypoint l…

仿桌面通知pnotify插件

在做网站的时候&#xff0c;alert弹出框是非常常见的情形。但是&#xff0c;有些情况下&#xff0c;弹框对用户来说是并不友好的。调研了几个其他的提示插件了&#xff0c;发现pnotify比较好用&#xff0c;可配置性也高。 使用示例&#xff1a; <!DOCTYPE html> <html…

【HDU】1305 Immediate Decodability(字典树:结构体数组,二维数组,链表/指针)

一、用的二维数组 #include <iostream> #include <cstring> #include <algorithm> using namespace std;const int maxn 100; int tr[maxn][2]; int mk[maxn]; int tot;void insert(string s) {int u 0;for(int i0;i<s.length();i){int x s[i]-0;if(tr…

Hyperledger Grid:一个用于分布式供应链解决方案的框架

Hyperledger在最近的一篇博文中发布了一个名为Hyperledger Grid的新项目。Grid是一个用于集成分布式账本技术&#xff08;DLT&#xff09;解决方案与供应链行业企业业务系统的框架。该项目提供了一个参考架构、通用数据模型和智能合约&#xff0c;所有这些都是基于开放标准和行…

尺度不变特征变换匹配算法详解

尺度不变特征变换匹配算法详解Scale Invariant Feature Transform(SIFT)Just For Fun对于初学者&#xff0c;从David G.Lowe的论文到实现&#xff0c;有许多鸿沟&#xff0c;本文帮你跨越。1、SIFT综述 尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视…

【POJ】2503 Babelfish(字典树,map,指针)

一、map 输入时候的格式有点难想&#xff0c;还有一种想法是用gets读取&#xff0c;然后用sscanf分开&#xff0c;分别存到两个数组中去&#xff0c;再加入map中&#xff0c;但是这一种方法目前还没有实现。。 #include <iostream> #include <cstring> #include …

ndk-build: CreateProcess error=193

为什么80%的码农都做不了架构师&#xff1f;>>> 问题&#xff1a;ndk-build": CreateProcess error193 解决&#xff1a;该问题表明&#xff0c;调用了非windows程序&#xff0c;在build.xml中将ndk-build修改为ndk-build.cmd即可ant编译 转载于:https://my.o…

AI芯片初创公司单纯卖芯片还是捆绑算法的商业模式更好?...

雷锋网在《资本寒冬&#xff0c;这样的AI芯片公司2019年危矣》一文中已经提到&#xff0c;2019年的资本寒冬以及整个半导体行业的低迷&#xff0c;将会让那些没有技术独特性以及缺乏商业落地能力&#xff0c;且现金流控制不好的AI芯片公司面临巨大的挑战&#xff0c;甚至大概率…

VS2017配置OpenCV3.2+contrib3.2

VS2017配置OpenCV3.2contrib3.2前言opecv3.2opencv_contrib3.2模块都编译配置了在配置contrib之前&#xff0c;尝试直接配置OpeCV3.2-vc14&#xff0c;发现可以正常使用&#xff0c;也就是说官方包虽然只有vc14,但vs2017(vc15)也支持的很好。操作环境&#xff1a;WIN10 64bit &…

【ACM】二叉搜索树(Binary Search Tree /BS Tree) 小结

动态管理集合的数据结构——二叉搜索树 搜索树是一种可以进行插入&#xff0c;搜索&#xff0c;删除等操作的数据结构&#xff0c;可以用字典或者优先队列。 二叉排序树又称为二叉查找树&#xff0c;他或者为空树&#xff0c;或者是满足如下性质的二叉树。 &#xff08;1&…

android安卓动态设置控件宽高

LayoutParams layoutParamsp_w_picpathView.getLayoutParams();layoutParams.width100;layoutParams.height200;p_w_picpathView.setLayoutParams(layoutParams);转载于:https://blog.51cto.com/11020803/1860242

《深入java虚拟机》读书笔记类加载

概述 类加载机制是指虚拟机将描述类的数据从Class文件中加载到内存&#xff0c;并进行数据验证、解析、初始化等过程&#xff0c;最后形成可以直接被虚拟机使用的java类型。在java语言中类的加载、链接、初始化等过程并不是在编译时期完成&#xff0c;而是在运行时期才进行的&a…

SLAM之特征匹配(一)————RANSAC-------OpenCV中findFundamentalMat函数使用的模型

目录 1.RANSAC原理 2. RANSAC算法步骤&#xff1a; 3. RANSAC源码解析 step one niters最初的值为2000&#xff0c;这就是初始时的RANSAC算法的循环次数&#xff0c;getSubset&#xff08;&#xff09;函数是从一组对应的序列中随机的选出4组&#xff08;因为要想计算出一…

I hope so 2016-Oct-10

2019独角兽企业重金招聘Python工程师标准>>> <I hope so> - A joke A: Do you think your son will forget all he learned at college? B: I hopse so. He certainly cant make a living by kissing girls! 转载于:https://my.oschina.net/u/553266/blog/75…

【Codeforces】158B-Taxi(贪心,怎么贪咧)

贪心 emmmm http://codeforces.com/contest/158/problem/B 题目大意&#xff1a;有四种旅客&#xff0c;四人一组&#xff0c;三人一组&#xff0c;两人一组&#xff0c;一人一组&#xff0c;一辆出租车最多可以坐四个人&#xff0c;并且一组里的人必须坐一辆车&#xff0c…

90 后 CTO 创业 6 年,做了一件改变互联网的“小事”

TGO 鲲鹏会在武汉举行了一场线下分享活动 —— 冲破壁垒&#xff0c;打造精英的技术团队 。来自极验的 90 后 CTO 黄胜蓝分享了他的团队故事&#xff0c;以及在他看来一个创新团队应该具备的特征。极验 CTO \u0026 TGO 鲲鹏会会员黄胜蓝在现场进行分享 1. 创新&#xff1a;非典…

ORB特征(二)

为了满足实时性的要求&#xff0c;前面文章中介绍过&#xff08;具体链接如下&#xff09;快速提取特征点算法Fast,以及特征描述子Brief。本篇文章介绍的ORB算法结合了Fast和Brief的速度优势&#xff0c;并做了改进&#xff0c;且ORB是免费Ethan Rublee等人2011年在《ORB&#…

【POJ】2377 Bad Cowtractors(最大生成树)

简单题&#xff0c;模板题 求解最大生成树&#xff0c;提交一直WA&#xff0c;感觉没有什么问题啊&#xff0c;就是在求解最小生成树的模板基础上稍加修改即可&#xff0c;后来发现在输出a&#xff0c;b&#xff0c;c给map二维数组的时候还必须有判断条件&#xff0c;略为有点…

使用let替换var实现块级作用域的小发现

在讲述javascript没有块级作用域的时候都会提到一个非常经典的例子&#xff1a; var obj{name:helo,age:15 }; var arr[];for(var i0;i<5;i){arr[i]i;console.log(i);} console.log(arr); console.log(i);因为javascript没有块级作用域&#xff0c;所以控制台打印出来的结果…

windows系统下node、npm的安装和卸载

Greta有话说&#xff1a;我是在有道云笔记只弄个记录的笔记&#xff0c;粘贴过来之后&#xff0c;没有图片&#xff0c;我的笔记地址为&#xff1a; 有道云笔记&#xff0c;请点我   一、卸载 1、node.js、nvm、 npm &#xff08;1&#xff09;在cmd中输入where node找到node…

OpenCV4Android开发实录(2): 使用OpenCV3.4.1库实现人脸检测

OpenCV4Android开发实录(2)&#xff1a; 使用OpenCV3.3.0库实现人脸检测 转载请声明出处&#xff1a;http://write.blog.csdn.net/postedit/78992490OpenCV4Android系列&#xff1a; 1. OpenCV4Android开发实录(1)&#xff1a;移植OpenCV3.3.0库到Android Studio 2.OpenCV4Andr…

活动|跟着微软一起,拥抱开源吧!

由开源社主办的中国开源年会2016 (COSCon16 - China Open Source Conference 2016) 即将于今年10月15日-16日在北京举办。微软大咖将为您呈现区块链&#xff0c;容器&#xff0c;大数据&#xff0c;Xamarin等时下热点技术&#xff0c;参会者还可获取价值1,500 元 Azure 服务使用…

【HDU/算法】最短路问题 杭电OJ 2544 (Dijkstra,Dijkstra+priority_queue,Floyd,Bellman_ford,SPFA)

最短路径问题是图论中很重要的问题。 解决最短路径几个经典的算法 1、Dijkstra算法 单源最短路径&#xff08;贪心&#xff09;&#xff0c;还有用 priority_queue 进行优化的 Dijkstra 算法。 2、bellman-ford算法 例题&#xff1a;【ACM】POJ 3259 Wormholes 允许负权边…

javaSE基础知识 1.5整数类型

整数的四种声明类型它们分别是&#xff0c;byte&#xff0c;short&#xff0c;int&#xff0c;long&#xff0c;这四种类型所占用的空间是不同的byte是占用1个字节&#xff0c;它的取值范围是 -128~127&#xff0c;short是占用2个字节&#xff0c;他的取值范围是-32768~32767&a…

源码分析-GLSurfaceView的内部实现

GLSurfaceView类是继承自SurfaceView的&#xff0c;并且实现了SurfaceHolder.Callback2接口。GLSurfaceView内部管理着一个surface&#xff0c;专门负责OpenGL渲染。GLSurfaceView内部通过GLThread和EGLHelper为我们完成了EGL环境渲染和渲染线程的创建及管理&#xff0c;使我们…