hihoCoder 字符消除

莫比乌斯反演 本文从算法竞赛和数论角度出发,系统介绍了狄利克雷卷积与莫比乌斯反演的核心概念。首先定义了数论函数及其基本性质,重点阐述了狄利克雷卷积的代数结构(交换环)和关键恒等式(如μ*1=ε)。随后通过卷积视角简化了莫比乌斯反演的证明过程。最后将理论提升至抽象代数层面,揭示这些数论工具本质上是偏序集关联代数在整除关系下的特例,其中莫比乌斯函数对应Zeta函数的逆元。全文展现了数学概念从具体到抽象的升华过程,为理解这些工具提供了更深刻的代数视角。 阅读详情

题目地址:http://hihocoder.com/problemset/problem/1039

1039 : 字符消除

时间限制:1000ms
单点时限:1000ms
内存限制:256MB
描述
小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母”ABC”的字符串s,消除过程是如下进行的:

1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如”ABCCBCCCAA”中”CC”,”CCC”和”AA”会被同时消除,余下”AB”和”B”拼成新的字符串”ABB”。

2)上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的相同字符为止。例如”ABCCBCCCAA”经过一轮消除得到”ABB”,再经过一轮消除得到”A”

游戏中的每一关小Hi都会面对一个字符串s。在消除开始前小Hi有机会在s中任意位置(第一个字符之前、最后一个字符之后以及相邻两个字符之间)插入任意一个字符(‘A’,’B’或者’C’),得到字符串t。t经过一系列消除后,小Hi的得分是消除掉的字符的总数。

请帮助小Hi计算要如何插入字符,才能获得最高得分。

输入
输入第一行是一个整数T(1<=T<=100),代表测试数据的数量。

之后T行每行一个由’A”B”C’组成的字符串s,长度不超过100。

输出
对于每一行输入的字符串,输出小Hi最高能得到的分数。

提示
第一组数据:在”ABCBCCCAA”的第2个字符后插入’C’得到”ABCCBCCCAA”,消除后得到”A”,总共消除9个字符(包括插入的’C’)。

第二组数据:”AAA”插入’A’得到”AAAA”,消除后得到”“,总共消除4个字符。

第三组数据:无论是插入字符后得到”AABC”,”ABBC”还是”ABCC”都最多消除2个字符。

样例输入
3
ABCBCCCAA
AAA
ABC
样例输出
9
4
2

我的思路:
我采用的是简单的暴力遍历,插入3种字符,插入所有可能位置,从而获取所有可能分数,并从中取出做大分数作为结果。

我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test1039
{
class Program
{
// hihoCoder题库
// #1039:字符消除
// http://hihocoder.com/problemset/problem/1039
// 2015-07-22 : AC

    static void Main(string[] args)
    {
        string readline = "";
        int inputLines = 0;
        while ((readline = Console.ReadLine()) != null)
        {
            //Porgram start here
            inputLines = Convert.ToInt32(readline);
            string[] readlines = new string[inputLines];
            for (int i = 0; i < inputLines; i++)
            {
                readlines[i] = Console.ReadLine();
            }
            for (int i = 0; i < readlines.Length; i++)
            {
                Console.WriteLine(searchHighestScore(readlines[i]).ToString());
            }
        }
        Console.ReadKey();
    }

    /// <summary>
    /// 将输入字符串从尾到从遍历
    /// 当存在相邻字符重复的,删除重复的字符
    /// 同时得分增与删除字符相同分数
    /// </summary>
    /// <param name="str">待遍历字符串</param>
    /// <param name="score">得分</param>
    /// <returns>true:有字符被删除</returns>
    static bool deleteFromLast(ref List<char> str, ref int score)
    {
        int count = 0;
        bool delete = false;
        if (str.Count <= 1) return delete;
        for (int index = str.Count - 1; index > 0; index--)
        {
            if (str[index] == str[index - 1])
            {
                count = 2;
                while (index - count >= 0 && str[index] == str[index - count]) count++;
                str.RemoveRange(index + 1 - count, count);
                score += count;
                index = index + 1 - count;
                delete = true;
            }
        }
        return delete;
    }


    static int searchHighestScore(string str)
    {
        char[] compairedChar = new char[3] { 'A', 'B', 'C' };
        List<char> temp = str.ToList();
        int maxScore = 0;
        int currentScore = 0;

        for (int charIndex = 0; charIndex < compairedChar.Length; charIndex++)
        {
            for (int i = 0; i < str.Length; i++)
            {
                temp = str.ToList();
                currentScore = 0;
                temp.Insert(i, compairedChar[charIndex]);
                while (deleteFromLast(ref temp, ref currentScore)) ;
                if (currentScore > maxScore) maxScore = currentScore;
            }
        }
        return maxScore;
    }
}

}

基于deepseek本地模型的本地知识库构建 通过以上步骤,你已经成功构建了一个基于 AnythingLLM 和 LM Studio 的本地知识库。这个系统不仅能够高效地存储和检索知识,还能结合强大的语言模型生成准确的回答。你可以根据自己的需求进一步扩展和优化这个系统,比如增加更多的文档格式支持、优化检索算法等。 阅读详情

相关推荐

Labview数据存储与读取——TDMS文件的创建与写入

Labview数据存储与读取——TDMS文件的创建与写入 你好,这是我在自学Labview编写软件过程中使用的一些功能。我在存储采集卡数据时,通过阅读大量他人的程序,发现TDM及TDMS文件十分适合波形数据的记录,TDMS文件比TDM文件在存储动态类型数据时读写速度更快,而且TDMS 文件没有容量限制,适合存储数据量庞大的测试数据。 前言少叙,书归正传 这一篇博客,说明一下如何使用基本的TDMS功能实现数据文件的存储。 所需要的控件如上图所示,在程序框图——编程——文件I\O——TDMS 中,写入TDMS

滑板小帅程序开发 2万+

在字符串中删除特定的字符

package com.sort; public class DeleteSpecificChars { /** * Q 63 在字符串中删除特定的字符 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are * students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” */ public static

zjcheer_up的专栏 1094

数理金融学笔记 Chap2 二叉树模型Binomial

2 二叉树模型与期权定价 Binomial Model and Option Pricing 文章目录2 二叉树模型与期权定价 Binomial Model and Option Pricing单期二叉树模型 One-step Binomial Model风险与无风险资产单期二叉树模型与无套利条件无套利定价 No Arbitrage Pricing风险中性定价 Risk Neutral PricingDelta套期保值 Delta Hedging两期二叉树模型 Two-Step Binomial Model

weixin_66831131的博客 2387

Halcon对文件的创建、读取、写入、删除等操作

Halcon对文件的创建、读取、写入、删除等操作 Halcon可以操作普通文本文件,也可以操作二进制文件。如下图所示,只需要设置“FileType”参数的取值即可明确是操作文本文件还是二进制文件: 下面的程序是操作一个.txt文本文件的完整代码: 1 * ‘input’:将已存在的输入文件以ASCII格式打开以供读取。该文件打开以后,将不能再往里面写东西。 2 * ‘output’:将打开一个新的...

qq_45938470的博客 5643

机械臂速成小指南(八):标准DH法实战——从连杆坐标系到运动学方程

本文详细介绍了机械臂运动学建模中的标准DH法,从连杆坐标系的建立到运动学方程的求解,提供了实用的操作步骤和代码示例。通过DH参数表和变换矩阵的构建,帮助读者快速掌握机械臂运动学建模的核心技术,并解决实际应用中的常见问题。

oo7890的博客 211

微处理器实验报告-实验四

实验四 可编程定时/计数器8253实验 一、实验要求 利用8086外接8253可编程定时/计数器,可以实现方波的产生。 二、实验目的 1、学习8086与8253的连接方法。 2、学习8253的控制方法。 3、掌握8253定时器/计数器的工作方式和编程原理

青竹小轩的博客 5112

HALCON数组的增加 删除操作 二

HALCON数组的增加 删除操作 二

qq_42905899的博客 1948

同花顺自动化交易避坑指南:pywinauto实战中验证码识别与界面弹窗处理

本文深入探讨同花顺自动化交易中的关键稳定性问题,重点解决验证码识别与弹窗处理两大难题。通过优化Tesseract OCR、整合打码平台API以及设计pywinauto弹窗监控体系,提供了一套完整的自动化交易解决方案,帮助交易者有效规避资金账户和持仓信息操作中的常见陷阱。

weixin_33734785的博客 488

去掉字符串左右两边的空白字符和去掉字符串中所有的空白字符

1、在String的原型上实现去掉字符串左右两端的空白字符 String.prototype.fntrim = function(){ return this.trim();//去掉字符串左右两边的空白字符 //用正则:return this.replace(/(^\s+)|(\s+$)/g,"") } 2.在String的原型上实现去掉字符串的所有空白字符; String.prototype.f...

qq_42972187的博客 1493

渗透测试面试题

渗透测试面试题 一.思路流程 1.信息收集 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等) 网站指纹识别(包括,cms,cdn,证书等),dns记录 whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等) 子域名收集,旁站,C段等 google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等 扫描网站目录结构,爆后台,网站banner,测试文件,...

千寻的博客 12万+

基于Python实现学习进度跟踪系统

{{ task }}: {{ "%.1f"|format(hours) }}小时

寒寒豆豆软件公司的博客 196

Halcon基础(2)字符和数字操作

字符和数组操作:   i1 := 123$'#o' //8进制,0为前缀 i2 := 123$'#x' //16进制,0x为前缀,7b为赋值 i3 := 123$'#X' //16进制,0x为前缀,7B为赋值,7b与7B是一样的 i4 := 123$'#f' //double型,默认保留小数点后六位. i5 := 123$'#g' //使数字始终保持六位,不足补零. i6 := 1...

shenseyoulan的博客 9244

OpenHarmony WebView引擎:从Chromium魔改到分布式渲染的终极解析

ArkWeb框架提供了强大的Web应用开发能力,但同时也需要注意网络安全问题,尤其是跨域请求方面。

m0_67505153的博客 1196

hihoCoder1039 - 字符消除

描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和"B"拼成新的字符串"ABB"。 2)上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的

龙之梦 2510

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

hihocoder 1039 字符消除 C++程序

这是我的第一篇博客额。 今天花了一下午时间折腾这道题,并不是因为题有多难,而是因为花了很多时间去寻找优化算法,结果无功而返。最后还是用蛮力法AC过了。算发思路就是遍历插入地点和插入字符,计算出所有情况下的字符数,输出最大消除字符个数。 废话不说,直接上代码,希望时间比我少的同学能分享一下代码。 #include #include using namespace std;

u012812963的博客 605

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【hihocoder】字符消除

时间限制:1000ms 单点时限:1000ms 内存限制:256MB描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母”ABC”的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如”ABCCBCCCAA”中”CC”,”CCC”和”AA”会被同时消除,余下”AB”和”B”拼成新的字符串”AB

快快驿站 933

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

hihocoder- 字符消除

字符消除 Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%lld & %llu Submit Status Practice HihoCoder 1039 Description 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的:

wjhshuai的博客 410

hihoCoder 1039 字符消除

hihoCoder 1039 字符消除题目地址:http://hihocoder.com/problemset/problem/1039 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母”ABC”的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子

Siukwan Program 1885

[hihocoder1039]字符消除

问题简介 具体参照hihocoder网站。 实现思路 因为字符串长度最大为100,只有ABC三个字符,所以只有300种情况,每种情况最差处理是O(100^2)。所以即便最差情况也只有3e6的计算次数,不足10ms。 因此只需要实现穷举算法即可,先插入字符,然后判断会消除多少字符。 代码 1. 消除字符的函数 输入字符串,返回消除字符的数目,同时字符串改变为消除之后的字符串。例如str

silent56_th的博客 817

hihocoder 1039 : 字符消除

时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"A

小熊听 336

【hihoCoder】#1039 : 字符消除

时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"A

小拳头的博客 731

Hihocoder 1039 : 字符消除

问题描述小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母”ABC”的字符串s,消除过程是如下进行的:1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如”ABCCBCCCAA”中”CC”,”CCC”和”AA”会被同时消除,余下”AB”和”B”拼成新的字符串”ABB”。2)上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的相同字符为止。例如

一只程序猿 849

hihocoder 1039 字符消除

#1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CC

执 373

【hihocoder1039】字符消除——模拟

题目: 点击进入描述:一个类似祖玛的字符串游戏,只有ABC三种字母,要求添加一个字母,使最后消除的字母最多,字符串长度不超过100. 题解:枚举每一个位置分别加入三种字母进行消除,ans记录最大结果。 枚举是要<=len,因为可以加入的位置是 第一个字符之前、最后一个字符之后以及相邻两个字符之间

CFhM_R's Blog 707

hihoCoder题库1039字符消除

题目 时间限制:1000ms  单点时限:1000ms  内存限制:256MB  描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的:    1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和"B"拼成

zongzi_57的博客 1519

hihoCoder1039 字符消除

题目描述:1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如”ABCCBCCCAA”中”CC”,”CCC”和”AA”会被同时消除,余下”AB”和”B”拼成新的字符串”ABB”。2)上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的相同字符为止。例如”ABCCBCCCAA”经过一轮消除得到”ABB”,再经过一轮消除得到”A”输入 输入第一行是

Choly_chen的博客 436
下一篇: hihoCoder #1051 补提交卡
mutouzuodeyu
博客等级 码龄18年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值