usaco6.2.1 Calf Flac

【嵌入式底层知识修炼】按键和LED共用IO口的分时复用扫描方法 文章目录01 - PCB原理图例程02 - 分时复用的注意项和设计2.1 - 注意项2.2 - 设计03 - 代码实现 只要我跑的速度够快,寂寞就追不上我 只要Key和Led切换速度够快,人眼就看不出来 ————小白   如果你存在按键Key和显示Led共用同一个IO时,需要分时复用的需求,则可以移植代码进行使用: 代码所占code少于0.5K 线程安全,中断安全 可移植性高,配置容易 注意:系统需要存在一个至少为1ms的时钟中断 01 - PCB原理图例程   举2个Key和Led共用IO口的 阅读详情

一 原题

Calf Flac

It is said that if you give an infinite number of cows an infinite number of heavy-duty laptops (with very large keys), that they will ultimately produce all the world's great palindromes. Your job will be to detect these bovine beauties.

Ignore punctuation, whitespace, numbers, and case when testing for palindromes, but keep these extra characters around so that you can print them out as the answer; just consider the letters `A-Z' and `a-z'.

Find the largest palindrome in a string no more than 20,000 characters long. The largest palindrome is guaranteed to be at most 2,000 characters long before whitespace and punctuation are removed.

PROGRAM NAME: calfflac

INPUT FORMAT

A file with no more than 20,000 characters. The file has one or more lines which, when taken together, represent one long string. No line is longer than 80 characters (not counting the newline at the end).

SAMPLE INPUT (file calfflac.in)

Confucius say: Madam, I'm Adam.

OUTPUT FORMAT

The first line of the output should be the length of the longest palindrome found. The next line or lines should be the actual text of the palindrome (without any surrounding white space or punctuation but with all other characters) printed on a line (or more than one line if newlines are included in the palindromic text). If there are multiple palindromes of longest length, output the one that appears first.

SAMPLE OUTPUT (file calfflac.out)

11
Madam, I'm Adam

 


二 分析

给定一个长度不超过20000的字符串,找出其中最长的回文串,回文串长度不超过2000。枚举中间字符,向两边扩展。因为最后少输出一个换行WA了一次。

 

 

三 代码

运行结果:

USER: Qi Shen [maxkibb3]
TASK: calfflac
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 4292 KB]
   Test 2: TEST OK [0.000 secs, 4292 KB]
   Test 3: TEST OK [0.000 secs, 4292 KB]
   Test 4: TEST OK [0.000 secs, 4292 KB]
   Test 5: TEST OK [0.000 secs, 4292 KB]
   Test 6: TEST OK [0.000 secs, 4292 KB]
   Test 7: TEST OK [0.000 secs, 4292 KB]
   Test 8: TEST OK [0.028 secs, 4292 KB]

All tests OK.

Your program ('calfflac') produced all correct answers! This is yoursubmission #2 for this problem. Congratulations!

 

AC代码:

/*
ID:maxkibb3
LANG:C++
PROB:calfflac
*/

#include<cstdio>
#include<algorithm>

const int MAX = 2e4 + 5;

char s[MAX], t[MAX];
int pos[MAX];

int main() {
    freopen("calfflac.in", "r", stdin);
    freopen("calfflac.out", "w", stdout);
    
    int n1 = 0, n2 = 0;
    while(scanf("%c", &s[n1]) != -1) {
        if(s[n1] >= 'A' && s[n1] <= 'Z') {
            pos[n2] = n1;
            t[n2++] = s[n1] - 'A' + 'a';
        }
        else if(s[n1] >= 'a' && s[n1] <= 'z') {
            pos[n2] = n1;
            t[n2++] = s[n1];
        }
        n1++;
    }
    
    int ans = 0, st, ed;
    for(int i = 0; i < n2; i++) {
        int len, i1, i2;
        int j = 0, b = std::min(i, n2 - 1 - i);
        while(j <= b) {
            if(t[i - j] != t[i + j])
                break;
            j++;
        }
        i1 = pos[i - j + 1], i2 = pos[i + j - 1];
        len = 2 * (j - 1)+ 1;
        if(len > ans) {
            ans = len;
            st = i1, ed = i2;
        }

        j = 0, b = std::min(i, n2 - i - 2);
        while(j <= b) {
            if(t[i - j] != t[i + 1 + j])
                break;
            j++;
        }
        i1 = pos[i - j + 1], i2 = pos[i + j];
        if(j == 0)
            i1 = pos[i], len = 1;
        else
            len = 2 * j;
        if(len > ans) {
            ans = len;
            st = i1, ed = i2;
        }

        j = 0, b = std::min(i - 1, n2 - 1 - i);
        while(j <= b) {
            if(t[i - 1 - j] != t[i + j])
                break;
            j++;
        }
        i1 = pos[i - j], i2 = pos[i + j - 1];
        if(j == 0)
            i2 = pos[i], len = 1;
        else
            len = 2 * j;
        if(len > ans) {
            ans = len;
            st = i1, ed = i2;
        }
    }

    printf("%d\n", ans);
    for(int i = st; i <= ed; i++)
        printf("%c", s[i]);
    printf("\n");
    
    return 0;
}

 

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例) linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)linux驱动由浅入深系列:块设备驱动之二(块设备驱动结构分析)块设备驱动的模型还是基本基于字符设备驱动的,可以简单理解为块设备仅仅增加了操作缓冲区,对用户请求顺序进行队列重拍等等。字符设备驱动的相关分析可以查看本博客相关的博文。 按照本博客的行文习惯,在具体分析块设备驱动代码之前,我们会从整体上了解一下研究对象的特征,以及用户空间... 阅读详情

相关推荐

从零到一:基于Esp32与LVGL的ST7789屏幕驱动全流程实战

本文详细介绍了基于Esp32与LVGL的ST7789屏幕驱动全流程实战,包括环境准备、驱动文件改造、硬件接口配置、LVGL集成与优化等关键步骤。通过VSCode+ESP-IDF开发环境,读者可以快速掌握SPI模式下的屏幕驱动开发,解决常见问题如颜色错乱、画面撕裂等,并实现LVGL的高效集成与性能优化。

weixin_33725722的博客 711

USACO Section 1.3 PROB Calf Flac(最长回文子串)

题目原文 首先还是贴原文: Calf Flac It is said that if you give an infinite number of cows an infinite number of heavy-duty laptops (with very large keys), that they will ultimately produce all the world's g

keybord_dancer的专栏 849

matlab锅炉 pid仿真,基于Matlab锅炉仿真.doc

基于Matlab锅炉仿真内蒙古科技大学MATLAB课程设计任务书2012题 目:锅炉汽包水位控制系统学生姓名:林三彪学 号:0967112127专 业:测控技术与仪器班 级:2009-1指导教师:梁 丽摘 要锅炉是化工、炼油、发电、造纸和制糖等工业生产过程中必不可少的重要动力设备。锅炉往往成了不少工厂不可缺少的一部分,因而,对锅炉设备中的自动控制系统进行分析研究是必要的...

weixin_29133981的博客 1096

Calf Flac

Problem:Calf Flac<br /><br />It is said that if you give an infinite number of cows an infinite number of heavy-duty laptops (with very large keys), that they will ultimately produce all the world's great palindromes. Your job will be to detect these bovin

小爱慢慢爬行...... 920

EduCoder 计算机网络实验 IP协议分析

第1关:跟踪抓包 任务描述 相关知识 IPV4数据包 截获数据报 分析截获结果 使用git将本地文件推送到远程仓库永久保存 操作要求 任务描述 本关任务:使用 Ping 命令发送数据报,用 Wireshark 截获数据报,分析 IP 数据报的格式,理解 IPV4 地址的编址方法,加深对 IP 协议的理解。 相关知识 为了完成本关任务,你需要掌握: 截获数据报; 简单分析数据包格式。 IPV4数据包 网际协议第 4 版(Internet Protocol version 4

qq_41975868的博客 1万+

MAX96712在车载摄像头系统中的带宽分配与传输能力计算解析

在计算摄像头带宽与传输接口的关系时,需要考虑视频流的像素分辨率、帧率、颜色深度等因素。以 MAX96712 这种 GMSL2 产品为例,它支持每个链路在正向方向以 3Gbps 或 6Gbps 的固定速率工作。

weixin_43199439的博客 3324

USACO 6.2.1 Calf Flac 马拉车算法(Manacher's Algorithm)

http://train.usaco.org/usacoprob2?a=Hfv8bxVT1Ac&amp;S=calfflac题目大意:一串字符串(不超过200000个字符),求最长回文子串(不考虑非字母字符),并输出这一段(要包含非字母字符,包括换行符)裸的最大回文子串题,直接用马拉车算法可解:※马拉车算法讲解可参考:https://www.cnblogs.com/grandyang/p/4475...

Frontier_Setter的博客 530

window部署open claw(使用wsl-Ubuntu-docker部署)

本文详细介绍了在Windows 11系统下通过WSL2+Docker部署OpenClaw的完整流程。首先需要满足硬件配置要求并开启虚拟化功能,然后依次完成WSL2安装配置、Docker Desktop安装、OpenClaw镜像拉取等步骤。重点说明了端口映射、socat转发配置及openclaw.json文件修改方法。最后通过验证WSL2内网IP和端口访问服务。该方案具有最佳兼容性,能有效避免Windows环境下的依赖冲突问题。

Kmoyic的博客 2763

USCAO section 1.3 Calf Flac

Calf Flac It is said that if you give an infinite number of cows an infinite number of heavy-duty laptops (with very large keys), that they will ultimately produce all the world's great palind...

weixin_30413739的博客 2547

《电磁兼容设计》专栏说明

本专栏自2024年1月起开始更新,仅设此一个电磁兼容相关知识专栏,并将一直持续更新下去,无期限

linkking27的博客 791

Clawdbot安装教程:从零开始到接入飞书

这几天,Clawdbot把整个科技圈都刷屏了。就是这个胖逼小龙虾🦞。不过现在改名叫Moltbot了。原因很简单:被Anthropic告了。Anthropic觉得Clawdbot这名字太像Claude Code的延伸产品,要求改名。真的,Anthropic你这家伙…更离谱的是,因为Clawdbot太火,Mac Mini都被抢断货了。无数人为了用它,疯狂买Mac Mini。我刚打开美团外卖,发现居然没货了???

Maynor的博客 2178

【USACO-Chapter1-1.3】【搜索】Calf Flac

【题目描述】 据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文。你的工作就是去寻找这些牛制造的奇观(最棒的回文)。 在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),只用考虑字母'A'-'Z'和'a'-'z'。要你寻找的最长的回文的文章是一个不超过20,000个字符的字符串。我们将保证最长的回文不会超过2,000个字符

I'm dreamer 893

科研级YOLOv8 Neck革新:BiFPN双向特征金字塔赋能,让多尺度融合更高效的实战指南

在文件夹下新建BiFPN.py,将上述BiFPNLayer和BiFPN类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义Neck模块。

m0_64661770的博客 153

USACO6.2.1 Calf Flac(calfflac)

先吐槽:USACO 6.2开始加的题居然有好多training上第一第二章的…… 这道题简单,注意的一点是,判断回文串时不考虑标点什么的但是最后答案要求输出的需要带标点 不多说,上代码 /* ID: xsy97051 LANG: C++ TASK: calfflac */ #include #include #include #include using nam

xsy_victory的专栏 441

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[USACO 6.2.1] Calf Flac

题目大意   给出一份文本文档,要求在这份文档中找出最长回文串(回文串忽略符号,即只包含大小写字母),并输出原文(即符号也要输出). 题解   实际上不就是一个manacher算法模板题嘛.   但是首先要忽略了符号,注意,回车换行符也算是一个符号.   manacher算法实际上就是一个DP.网上有很多资料,这里不再细说.   然后在manacher的过程中加入记录字符在原文中的位置...

weixin_30530939的博客 146

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

洛谷 P1210 [USACO1.3]最长的回文 Calf Flac

P1210 [USACO1.3]最长的回文 Calf Flac https://www.luogu.com.cn/problem/P1210 思路: 暴力每个字符,以每个字符为中心往两边扩展求最长的回文串的长度。详细看代码。 Code: #include <bits/stdc++.h> using namespace std; typedef long long ll; cons...

NaNa 1214

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

USACO Training Section 1.3 Calf Flac 解题报告&AC代码

解题报告: 主要方法是生长法,考虑每一位的左右各有多长的回文串,输出最长的那个,比较好想……不过要注意区分字串的奇偶。 其他实现细节看代码里的注释吧…… AC代码: /* ID: yuanmz91 PROG: calfflac LANG: C++ */ #include #include #include using namespace std; const int MAX_LEN

堆放杂物 6821

[USACO1.3] 最长的回文 Calf Flac(回文串处理)

据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘 ), 那么母牛们会制造出世上最棒的回文。你的工作就是去寻找这些牛制造的奇观(最棒的回文)。在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出), 只用考虑字母A∼Z和a∼z。要你寻找的最长的回文的文章是一个不超过20000个字符的字符串。我们将保证最长的回文不会超过2000个字符(在除去标点符号、空格之前)。

m0_60738889的博客 223

usaco-Calf Flac 最长的回文

题已不在~ important points:1、char a=tolower(b), tolower可以把所有大写字母转换为小写字母,其他符号均不改变. thinking:2个for的O(N^2)循环,从开头开始找,先判断首尾字符是否相等且大于maxn(已找到最长回文数),然后把所有字母都存到一个新的数组,然后判断其是否为回文串且长度大于maxn,如果大于则pos1=i,pos2=j.然后最

yeleng的博客 755

P1210 [USACO1.3] 最长的回文 Calf Flac

据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘 ), 那么母牛们会制造出世上最棒的回文。你的工作就是去寻找这些牛制造的奇观(最棒的回文)。在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出), 只用考虑字母A∼Z和a∼z。要你寻找的最长的回文的文章是一个不超过20000个字符的字符串。我们将保证最长的回文不会超过2000个字符(在除去标点符号、空格之前)。

m0_61360607的博客 769

usaco Calf Flac

 Calf Flac 译 by timgreen据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文。你的工作就是去这些牛制造的奇观(最棒的回文)。在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),只用考虑字母A-Z和a-z。要你寻找的最长的回文的文章是一个不超过20,000个字符的字符串。我们将保

Zachary的旅途 1198

[USACO] Calf Flac

最初的想法:让i指向字符串的首端,j指向末端,然后对每一个i,j逐渐递减,然后对每一个递减的j,判断i到j这段字符串是否回文。这个白痴的想法最坏需要O(n3)的时间,虽然可以通过局部的优化,提前结束i,j的遍历以及回文的判断,可是对于第八个测试数据死活也过不了,时间超了不止一点两点,本机上跑用了4秒多,我擦嘞!

天下的技术专栏 618

Calf Flac-usaco

1.求最长回文串,而且要求记录位置。yikau

pzz837157806的专栏 1万+

Usaco 1.3.3 Calf Flac

题目:  calfflac 来源:  Usaco1.3.3 题目大意:  求一句话中最长的除标点外的回文,并输出它的长度及包含标点时的样子 数据范围:  不超过20,000个字符的字符串

慢慢前行,跨越预言 698

USACO-Calf Flac

http://ace.delos.com/usacoprob2?a=I1dC0kaErvZ&S=calfflac 求文章的最大回文字串,暴搜就可以了。可以算一下时间复杂度,O()=20000*2000=40000000,四千万而已,绝对不超时,当然前提是不用string,若用string,可能会超时,这个我没有试过了。 主要是枚举回文串的中值,然后用两个指针向中值的两边尽可能...

anyuan5299的博客 170

usaco Calf Flac

这题考察最基本的回文串处理,采取的算法是枚举

NiaNiaJR的专栏 675
上一篇: usaco6.1.3 Cow XOR
下一篇: usaco6.2.2 Packing Rectangles
max_kibble
博客等级 码龄11年 2粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值