题目来源:字符消除 解题思路: 1.在给定字符串中的任意位置插入'A'.'B'.'C'中的任意一个字符,然后计算插入后的字符经过消除后最短的字符串长度: 2.在计算字符消除后最短长度时,智能一遍一遍的计算,个人没有想出什么更好地方法 3.记录每次插入一个字符后经过第2步计算后最短的字符串长度min,最后原字符串的长度-min+1. 具体算法(java版,可以直接AC) import java.util.Scanner; public class Main { public static int…
#1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串.例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和…
#1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串.例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和…
Description 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串.例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和"B"拼成新的字符串"ABB". 2)…
http://hihocoder.com/problemset/problem/1039 因为字符串只由3种字母组成,并且插入的字符也只能是这三种字符的其中一个,那么可以考虑枚举这三个字符其中一个字符到字符串中任意一个位置.如果可以消除则不断消除,最后更新求得一个最大值. 首先介绍这个函数  substr    substr(start,length);  返回一个从指定位置开始,并具有指定长度的字符串. start 必选.所需子字符串的起始位置,字符串的第一个字符的索引为0. length可选…
题目来源:hihoCoder 1037 数字三角形 解题思路:请好好看看 提示一.提示二.提示三 具体算法(java版,可以直接AC) import java.util.Scanner; public class Main { public static int[][] rewards; public static int[][] best; public static void main(String[] args) { Scanner scanner = new Scanner(System…
题目来源:国庆出游 解题思路(下面是大神的写的): 把题目中的序列称作S,树称作T.那么对于S中的任意节点x,x的子孙节点如果在S出现的话,那么这个子孙节点的位置是有一定要求的:x的所有子孙节点在S中的位置都恰好紧跟在x的后面,没有被其他节点隔开. 设x的子孙节点是abcd,那么--xabcd--, --xbcda-- 等等是合法的,--xab-cd--, --axbcd--, --x--abcd--, 都是不合法的('-'指其他节点).对于S中每个节点都做如上判断,如果有不合法的就输出NO,如…
题目来源:矩阵判断 解题思路: 1.判断矩阵的4个点是否相连,一共输入8个点,只要判断是否4个点是否都经过2遍: 2.判断矩阵中任意一条边与其他边之间要么平行,要么垂直.设A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4),则线段AB的向量为A’(x2-x1,y2-y1),线段CD的向量C'(x4-x3,y4-y3),另x2-x1=a1,y2-y1=a2,x4-x3=c1,y4-y3=c2,判断A’是否平行C'的方法是a1*c2-a2*c1=0:判断A’是否垂直C'的方法是a…
#1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串.例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和…
题目:http://hihocoder.com/problemset/problem/1039 给定一个字符串s,只包含'A', 'B', 'C'三种字符 1. 向 s 的任意位置 (包括头和尾) 中插入'A', 'B', 'C'中任意一个字符 2. 递归删除 s 中的相同字符,要求第1步的插入位置使得消除的字符最多 递归删除: "ABCCBCCCAA"->"ABB"->"A' 思路 1. 枚举:向 s 中插入一个字符获得新字符串s', 计算s…