题意:如题,用表达式树来表示一个表达式,且消除公共的部分,即用编号表示.编号 K 定义为表达式第 K 个出现的字符串. 解法:先构造表达式树,给每棵子树用(string,left_son,right_son)-->(哈希值,...,...)编号.由于最多出现4个小写字母,所以可以用27进制数表示,同时也要利用好映射map的count(),和对应的dict[]的编号. 再递归输出表达式,利用编号的定义,看输出编号或字符串. 注意--这里的自定义比较器用的是"显式定义",若是2个键值…
题意: 求最小的表达式树,也就是把相同的表达式子树给替换成最前面相同的编号. 分析: 用map<string,int>smp;存放子树对应的字符串,如果以后出现相同的子树则用相同编号表示.用build函数先根据输入的语句建树. 代码: #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <vector> #incl…
一般来说,把一颗子树离散成一个int,把一个结点的字符离散成一个int会方便处理 直接map离散.当然一个结点最多只有4个小写字母,也可以直接编码成一个27进制的整数,舍掉0,为了区分0和0000. 需要注意的是有可能只有一个结点. #include<bits/stdc++.h> using namespace std; const int maxlen = 5e5; ; char str[maxlen]; map<string,int> smp; map<string,in…
今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetStack Computer)的思路敲了半天,但是efficiency是贼鸡儿低,而且最后我搞不明白怎么输出结果了....然后只好参考了这位同学的代码.思路大致是跟着lrj的走的,具体的实现有些需要注意的地方. 代码 #include <bits/stdc++.h> #define QUICKIO #…
POJ 3342 Party at Hali-Bula / HDU 2412 Party at Hali-Bula / UVAlive 3794 Party at Hali-Bula / UVA 1220 Party at Hali-Bula(树型动态规划) Description Dear Contestant, I'm going to have a party at my villa at Hali-Bula to celebrate my retirement from BCM. I w…
与SortedSet接口类似,SortedMap也是一个结构,待排序的Map,其一个比较常用的实现类是TreeMap. TreeMap的put(K key, V value)方法在每添加一个元素时,都会自动排序. 构造方法: TreeMap() 使用键的自然顺序构造一个新的.空的树映射. TreeMap(Comparator<? super K> comparator) 构造一个新的.空的树映射,该映射根据给定比较器进行排序. TreeMap(Map<? extends K,? exte…
一.方法概述 自定义比较器需要实现接口IComparer<T> 二.示例过程 1.新建一个Product产品类 /// <summary> /// 产品类 /// </summary> public class Product { /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 价格 /// </summ…
Object中的equals()方法默认是按地址比较,而不按内容进行比较, public boolean equals(Object obj) { return (this == obj); } 在String中覆写了Object中的equals方法,以用于判断字符串是否相同, public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String…
上面我们介绍了Spring Boot 的默认资源映射,一般够用了,那我们如何自定义目录? 这些资源都是打包在jar包中的,然后实际应用中,我们还有很多资源是在管理系统中动态维护的,并不可能在程序包中,对于这种随意指定目录的资源,如何访问? 自定义目录 以增加 /myres/* 映射到 classpath:/myres/* 为例的代码处理为: 实现类继承 WebMvcConfigurerAdapter 并重写方法 addResourceHandlers (对于 package org.spring…
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系概念(http://www.cnblogs.com/yjboke/p/8761195.html),本篇介绍一下集合扩展内容:Collections工具类的使用:可变参数:集合数组相互转换方法: Collection与Collections的区别: Collection是java.util下的一个接口…