2025寒假天梯赛训练5

news2025/3/12 12:41:16

L1-3 敲笨钟 - 2025寒假天梯赛训练5

思路:一般ex的模拟题,主要是找好空格的位置进行修改替换。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define sz(x) (int)x.size()
#define e emplace_back

//void solve(){
//    cout<<"PTA shi3 wo3 jing1 shen2 huan4 fa1 !";
//}

//void solve(){
//    string str;
//    getline(cin,str);
    cout<<str<<endl;
//    for(int i=0;i<sz(str);i++){
//        if(str[i]=='6'){
//            int cnt=0;
//            for(int j=i;j<sz(str);j++){
//                if(str[j]=='6') cnt++;
//                else break;
//            }
//            if(cnt>3&&cnt<=9) cout<<"9",i+=cnt-1;
//            else if(cnt>9) cout<<"27",i+=cnt-1;
//            else cout<<str[i];
//        }
//        else cout<<str[i];
//    }
//}

void solve(){
    int n; cin>>n;
    cin.ignore();
    string str;
    for(int i=1;i<=n;i++){
        getline(cin,str);
//        cout<<str<<endl;
        for(int j=0;j<sz(str);j++){
            if(str[j]==','){
                if(str[j-3]=='o'&&str[j-2]=='n'&&str[j-1]=='g'){
                    continue;
                }
                else {
                    cout<<"Skipped"<<endl;
                    break;
                }
            }
            else if(str[j]=='.'){
                if(str[j-3]=='o'&&str[j-2]=='n'&&str[j-1]=='g'){
                    int idx=0,cnt=0;
                    for(int f=j;f>=0;f--){
                        if(str[f]==' '){
                            cnt++;
                            if(cnt==3){
                                idx=f;
                                break;
                            }
                        }
                    }
                    cout<<str.substr(0,idx+1)+"qiao ben zhong."<<endl;
                }
                else cout<<"Skipped"<<endl;
            }
        }
    }
}

int32_t main() {
    ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
    int t=1;
//    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}

L1-8 估值一亿的AI核心代码 - 2025寒假天梯赛训练5

思路:称得上最ex的pta模拟题,居然是20分的题。

对于这种大便模拟题,最好封装一下各个功能。

如代码中一样,把不同的功能封装实现。还是要注意各种细节。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define sz(x) (int)x.size()
#define e emplace_back

//void solve(){
//    cout<<"PTA shi3 wo3 jing1 shen2 huan4 fa1 !";
//}

//void solve(){
//    string str;
//    getline(cin,str);
    cout<<str<<endl;
//    for(int i=0;i<sz(str);i++){
//        if(str[i]=='6'){
//            int cnt=0;
//            for(int j=i;j<sz(str);j++){
//                if(str[j]=='6') cnt++;
//                else break;
//            }
//            if(cnt>3&&cnt<=9) cout<<"9",i+=cnt-1;
//            else if(cnt>9) cout<<"27",i+=cnt-1;
//            else cout<<str[i];
//        }
//        else cout<<str[i];
//    }
//}

//void solve(){
//    int n; cin>>n;
//    cin.ignore();
//    string str;
//    for(int i=1;i<=n;i++){
//        getline(cin,str);
        cout<<str<<endl;
//        for(int j=0;j<sz(str);j++){
//            if(str[j]==','){
//                if(str[j-3]=='o'&&str[j-2]=='n'&&str[j-1]=='g'){
//                    continue;
//                }
//                else {
//                    cout<<"Skipped"<<endl;
//                    break;
//                }
//            }
//            else if(str[j]=='.'){
//                if(str[j-3]=='o'&&str[j-2]=='n'&&str[j-1]=='g'){
//                    int idx=0,cnt=0;
//                    for(int f=j;f>=0;f--){
//                        if(str[f]==' '){
//                            cnt++;
//                            if(cnt==3){
//                                idx=f;
//                                break;
//                            }
//                        }
//                    }
//                    cout<<str.substr(0,idx+1)+"qiao ben zhong."<<endl;
//                }
//                else cout<<"Skipped"<<endl;
//            }
//        }
//    }
//}

//void solve(){
//    int x,y; cin>>x>>y;
//    cout<<100*100/2-(x*y)/2-(100-x)*(100-y)/2-(100-x)*y;
//}

//void solve(){
//    double x,y; cin>>x>>y;
//    double num=x/(y*y);
//    cout<<fixed<<setprecision(1)<<num<<endl;
//    if(num>25) cout<<"PANG";
//    else cout<<"Hai Xing";
//}

//int ctoi(char x){ return x-'0'; }
//void solve(){
//    int n; cin>>n;
//    string str;
//    for(int i=1;i<=n;i++){
//        cin>>str;
//        if(ctoi(str[0])+ctoi(str[1])+ctoi(str[2])==ctoi(str[3])+ctoi(str[4])+ctoi(str[5])){
//            cout<<"You are lucky!"<<endl;
//        }
//        else cout<<"Wish you good luck."<<endl;
//    }
//}

//void solve(){
//    int n; cin>>n;
//    for(int i=1;i<=n;i++){
//        int sex,tall,weight;
//        cin>>sex>>tall>>weight;
//        if(sex){
//            if(tall<130) cout<<"duo chi yu! ";
//            else if(tall==130) cout<<"wan mei! ";
//            else if(tall>130) cout<<"ni li hai! ";
//            if(weight<27) cout<<"duo chi rou!"<<endl;
//            else if(weight==27) cout<<"wan mei!"<<endl;
//            else if(weight>27) cout<<"shao chi rou!"<<endl;
//        }
//        else{
//            if(tall<129) cout<<"duo chi yu! ";
//            else if(tall==129) cout<<"wan mei! ";
//            else if(tall>129) cout<<"ni li hai! ";
//            if(weight<25) cout<<"duo chi rou!"<<endl;
//            else if(weight==25) cout<<"wan mei!"<<endl;
//            else if(weight>25) cout<<"shao chi rou!"<<endl;
//        }
//    }
//}

string s;
bool ok(int idx){ return !(s[idx]>='a'&&s[idx]<='z')&&s[idx]!='I'&&!(s[idx]>='0'&&s[idx]<='9'); }
// 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;
void eraseEmpty(){
    // 删去开头的空格
    for(int i=0;i<sz(s);i++){
        if(s[i]!=' '){
            s=s.substr(i);
            break;
        }
    }
    // 删去尾部的空格
    for(int i=sz(s)-1;i>=0;i--){
        if(s[i]!=' '){
            s=s.substr(0,i+1);
            break;
        }
    }
    string s0="";
    bool cc=false;
    for(int i=0;i<sz(s);i++){
        if(s[i]!=' ') {
            // 如果空格后面不是标点符号
            if(cc&&!ok(i)) s0+=' ';
            if(cc) cc=false;
            s0+=s[i];
        }
        else if(s[i]==' ') cc=true;
    }
    s=" "+s0+" ";       //为了后面好处理,暂时加一个空格
}
// 把原文中所有大写英文字母变成小写,除了 I;
void toLower(){
    for(int i=0;i<sz(s);i++){
        if(s[i]>='A'&&s[i]<='Z'&&s[i]!='I'){
            s[i]+='a'-'A';
        }
    }
}

// 把原文中所有独立的 can you、could you 对应地换成 I can、I could——
// 这里“独立”是指被空格或标点符号分隔开的单词;
void change1(){
    string s0="";
    for(int i=1;i<sz(s);i++){
        // 漏了ok(i+7)和ok(i+9)扣一分。。。。究极恶心
        if(s.substr(i,7)=="can you"&&ok(i-1)&&ok(i+7)) s0+="F CAN",i+=6;
        else if(s.substr(i,9)=="could you"&&ok(i-1)&&ok(i+9)) s0+="F COULD",i+=8;
        else s0+=s[i];
    }
    s=" "+s0;
}
// 把原文中所有独立的 I 和 me 换成 you;
void change2(){
    string s0="";
    for(int i=1;i<sz(s)-1;i++){
        if(s[i]=='I'&&ok(i-1)&&ok(i+1)) s0+="you";
        else if(s.substr(i,2)=="me"&&ok(i-1)&&ok(i+2)) s0+="you",i++;
        else s0+=s[i];
    }
    s=s0;
}
// 把原文中所有的问号 ? 换成惊叹号 !;
void change3(){
    for(int i=0;i<sz(s);i++) if(s[i]=='?') s[i]='!';
}
// 在一行中输出替换后的句子作为 AI 的回答。
void answer(){
    cout<<"AI: ";
    for(int i=0;i<sz(s);i++){
        if(s[i]=='F') cout<<"I";
        else if(s[i]!='I'&&s[i]>='A'&&s[i]<='Z') s[i]+='a'-'A',cout<<s[i];
        else cout<<s[i];
    }
    cout<<endl;
}
void solve(){
    int n; cin>>n;
    cin.ignore();
    for(int i=1;i<=n;i++){
        getline(cin,s);
        // 无论用户说什么,首先把对方说的话在一行中原样打印出来;
        cout<<s<<endl;
        toLower();
        eraseEmpty();
        change1();
        change2();
        change3();
        answer();
    }
}

int32_t main() {
    ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
    int t=1;
//    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PowerBI 矩阵 列标题分组显示(两行列标题)

先看效果 数据表如下&#xff1a; 我们在powerbi里新建一个矩阵&#xff0c;然后如图加入字段&#xff1a; 我们就会得到这样的矩阵&#xff1a; 我们在“可视化”->“列”&#xff0c;上双击&#xff0c;输入空格&#xff0c;就能消除左上角的"类别"两字 同理修…

服务器部署DeepSeek,通过Ollama+open-webui部署

1. 安装ollama 1.1. linux 安装 Ollama是目前常用的AI模式部署的第三方工具&#xff0c;能一键部署deepSeek Ollama官方网址https://ollama.com/ 选择Download下载对应的服务版本 服务器选择Linux&#xff0c;下面是下载代码 curl -fsSL https://ollama.com/install.…

Ubuntu 连接 air pods

&#xff11;&#xff0e; sudo vim /etc/bluetooth/main.conf , 修改蓝牙模式为blder &#xff12;&#xff0e;sudo /etc/init.d/bluetooth restart, 重启蓝牙&#xff0c;即可连接成功

民用无人驾驶航空器操控员考试

1. 注册 民用无人驾驶航空器综合管理平台 (caac.gov.cn) 2. 选择 操控员资质 3. 安全操控理论培训 -> 在线视频培训 学习完后选择 【在线考试】 共 50道 单项 选择题&#xff0c;每选项3个&#xff0c;80分及格。 4. 查看 我的合格证 证书有效期2年

002 第一个python程序

编程语言 编程语言可以做的事情&#xff1a; 网站开发、软件 、游戏、APP、 小程序、 爬虫、 数据分析、脚本 第一个python程序 找到IDE图标pycharm 新建项目 选择项目路径 创建目录 新建python文件 输入代码 运行程序查看结果 print 介绍 print : 输出内容…

解锁机器学习核心算法 | 决策树:机器学习中高效分类的利器

引言 前面几篇文章我们学习了机器学习的核心算法线性回归和逻辑回归。这篇文章我们继续学习机器学习的经典算法——决策树&#xff08;Decision Tree&#xff09; 一、决策树算法简介 决策树算法是一种典型的分类方法&#xff0c;也是一种逼近离散函数值的方法。它的核心思想…

数据结构——顺序表与链表

目录 前言 一线性表 二顺序表 1实现 2相关面试题 2.1移除元素 2.2删除有序数组中的重复项 3.3合并两个有序数组 3问题 三链表 1链表的分类 1.1单向或者双向 1.2带头或者不带头 1.3循环或者非循环 2实现 2.1尾插与头插 2.2尾删与头删 2.3pos前插入节点与删除…

在 Python 中使用 Ollama API

文章目录 一、环境准备二、使用方法1.简单对话2.流式响应3.结构化输出4.自定义客户端4.1 同步客户端4.2 异步客户端4.3 同步 & 异步客户端不同调用次数耗时对比测试 三、常用的ollama API 接口聊天生成本地模型列表显示模型信息创建模型复制模型删除模型拉取模型推送模型生…

BGP配置华为——RR反射器配置

实验拓扑 与之前实验同理将loop0作为routerID使用&#xff0c;且R1和R2上用loop1接口用于模拟用户其他网段 实验要求 1&#xff0c;在AS100内运行OSPF协议 2.配置路由反射器&#xff0c;使得从R1进入的数据能够反射到全局网络 3.在R1和R2上分别宣告自己的loop1口网段用于观…

一.AI大模型开发-初识机器学习

机器学习基本概念 前言 本文主要介绍了深度学习基础&#xff0c;包括机器学习、深度学习的概念&#xff0c;机器学习的两种典型任务分类任务和回归任务&#xff0c;机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…

力扣做题记录 (二叉树)

二叉树 打算先来了解二叉树基础&#xff0c;都是简单题&#xff0c;目的是熟悉代码格式和解题基础思路。 1、二叉树最大深度 二叉树最大深度 方法一、深度搜索 直接用原函数做递归&#xff0c;比较简单 /*** Definition for a binary tree node.* struct TreeNode {* …

前端里的this指向问题

目录 1.代码输出结果 2.代码输出结果 3.代码输出结果 4.代码输出结果 5.代码输出结果 6.代码输出结果 7.代码输出结果 8.代码输出结果 9.代码输出结果 10.代码输出结果 11.代码输出结果 12.代码输出结果 13.代码输出结果 14.代码输出结果 总结 1.代码输出结果 f…

黑马Redis详细笔记(实战篇---短信登录)

目录 一.短信登录 1.1 导入项目 1.2 Session 实现短信登录 1.3 集群的 Session 共享问题 1.4 基于 Redis 实现共享 Session 登录 一.短信登录 1.1 导入项目 数据库准备 -- 创建用户表 CREATE TABLE user (id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,phone …

基于N-gram模型的中文文本分析系统设计与实现

前言 在数字化人文研究快速发展的背景下&#xff0c;中文古典文本的量化分析面临着独特的挑战。古典文献中繁简异体字共存、语义单元边界模糊、意象隐喻密集等特征&#xff0c;使得传统的词频统计方法难以准确捕捉其深层语言规律。现有文本分析工具多面向现代汉语设计&#xff…

零基础购买阿里云服务器,XShell连接云服务器

目录 1.环境搭建方式 2. 使用云服务器 3.使用终端软件登录到Linux 4.使用XShell登录主机 5.连接失败的原因&#xff1a; 下一篇更新&#xff1a;Linux的基础指令以及如何Linux的环境搭建 1.环境搭建方式 主要有四种: 1.直接安装在物理机上&#xff0c;虽然Linux有图形化…

CNN手写数字识别1——模型搭建与数据准备

模型搭建 我们这次使用LeNet模型&#xff0c;LeNet是一个经典的卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;架构&#xff0c;最初由Yann LeCun等人在1998年提出&#xff0c;用于手写数字识别任务 创建一个文件model.py。实现以下代码。 源码 #…

深度学习04 数据增强、调整学习率

目录 数据增强 常用的数据增强方法 调整学习率 学习率 调整学习率 ​调整学习率的方法 有序调整 等间隔调整 多间隔调整 指数衰减 余弦退火 ​自适应调整 自定义调整 数据增强 数据增强是通过对训练数据进行各种变换&#xff08;如旋转、翻转、裁剪等&#xff09;&am…

PH热榜 | 2025-02-16

1. Cal.com Routing 标语&#xff1a;根据客户线索&#xff0c;系统会智能地自动安排约会。 介绍&#xff1a;告别繁琐的排期&#xff01;Cal.com 推出了新的路由功能&#xff0c;能更智能地分配预约&#xff0c;让你的日程安排更顺畅。这项功能运用智能逻辑和深入的数据分析…

数据库基本概念及基本使用

数据库基本概念 什么是数据库&#xff1a; 数据库特点&#xff1a; 常见的数据库软件&#xff1a; 不同的公司进行不同的实践&#xff0c;生成了不同的产品。 比如买汽车&#xff0c;汽车只是一个概念&#xff0c;你要买哪个牌子哪个型号的汽车&#xff0c;才是真正的汽车的一…

gozero实现数据库MySQL单例模式连接

在 GoZero 框架中实现数据库的单例连接可以通过以下步骤来完成。GoZero 使用 gorm 作为默认的数据库操作框架&#xff0c;接下来我会展示一个简单的单例模式实现。 ### 1. 定义数据库连接的单例结构 首先&#xff0c;你需要定义一个数据库连接的结构体&#xff0c;并在初始化…