PTA(题目集三 题目 代码 C++ 注解)

目录

题目一:

代码:

题目二:

代码:

题目三:

代码:

 题目四:

代码:

题目五:

代码:

题目六:

代码:

题目七:

代码:

题目八:

代码:

题目九:

代码:

题目十:

代码:


题目一:

代码:

#include<iostream>
using namespace std;
int main()
{
    string s;
    cin>>s;
    if(s.size()==4)
    {
        if(s[0]<'2'||(s[0]=='2'&&s[1]<'2'))
            cout<<"20"<<s[0]<<s[1]<<"-"<<s[2]<<s[3]<<endl;
        else
            cout<<"19"<<s[0]<<s[1]<<"-"<<s[2]<<s[3]<<endl;
    }
    else
        cout<<s[0]<<s[1]<<s[2]<<s[3]<<"-"<<s[4]<<s[5]<<endl;
}

题目二:

代码:

#include<iostream>
using namespace std;
int main()
{
    int a[25];
    for(int i=0;i<=23;i++)
        cin>>a[i];
    int x;
    cin>>x;
    while(x>=0&&x<=23)
    {
        cout<<a[x]<<" ";
        if(a[x]>50)
            cout<<"Yes"<<endl;
        else
            cout<<"No"<<endl;
        cin>>x;
    }
}

题目三:

代码:

#include <iostream>
#include <string>
using namespace std; 
int main()
{
    int n,m;
    cin >> n >> m;
    getchar();
    string s[100];
    int a[100];
    int k = 0;
    for(int i = 0; i < n; i ++)
    {
        getline(cin,s[i]);
        if(s[i].find("qiandao") == -1 && s[i].find("easy") == -1) //没找到这两个
            a[k++] = i;//存下标
    }
    if(k <= m)//m大于等于k,表示做完了
        cout << "Wo AK le" << endl;
    else
        cout << s[a[m]] << endl;
}

 题目四:

代码:

#include<iostream>
#include<map>
using namespace std;
map<int, int>mp;
int main()
{
    int n, maxx = 0, minn = 1e7;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        int x;
        cin >> x;
        mp[x]++;//记录出现次数
        if (x > maxx)//求最大值
            maxx = x;
        if (x < minn)//求最小值
            minn = x;
    }
    for (auto i : mp)
    {
        if (i.first == minn)
            cout << minn << " " << mp[minn] << endl;
        if (i.first == maxx)
            cout << maxx << " " << mp[maxx];
    }
}

题目五:

代码:

#include<iostream>
using namespace std;
int main()
{
    int a1, a2, n;
    cin >> a1 >> a2 >> n;
    int a[1010];
    a[1] = a1, a[2] = a2;
    int k = 3;//第三个开始,代表存到第几个
    int cnt=3;//从第三个开始,代表乘的编号
    while (1)
    {
        int x = a[cnt - 1] * a[cnt - 2];
        cnt++;
        int s=-1,g=-1;
        if(x<10)
        {
            a[k++]=x%10;
        }
        else
        {
            g=x%10;
            x/=10;
            s=x%10;
            a[k++]=s;
            a[k++]=g;
        }
        if (k >= n + 1)
            break;
    }
    for (int i = 1; i <= n; i++)
    {
        if (i != 1)
            cout << " ";
        cout << a[i];
    }

}

题目六:

 

代码:

#include<iostream>
#include<queue>
#include<stack>
using namespace std;
int main()
{
    stack<char> st;
    int n,m,s;
    cin>>n>>m>>s;
    queue<char> a[10005];
    for(int i=1;i<=n;i++)
    {
        char e;
        for(int j=1;j<=m;j++)
        {
            cin>>e;
            a[i].push(e);//存入编号为i的轨道
        }
    }
    int t;
    while(cin>>t&&t!=-1)
    {
        if(t==0&&st.size()!=0)//篮子里有,拿篮子里的
        {
            cout<<st.top();
            st.pop();
        }
        else if(t!=0)//不拿篮子里的
        {
            if(a[t].size()==0)//该轨道空了
                continue;
            else
            {
                if(st.size()==s)//篮子满了,拿出一个
                {
                    cout<<st.top();
                    st.pop();
                }
                st.push(a[t].front());//再把轨道上的放到篮子里
                a[t].pop();
            }
        }
    }
}

题目七:

 

代码:

#include<iostream>
#include<vector>
using namespace std;
vector<int> e[10100];
int book[10100] = { 0 };
vector<int> step;
vector<int> len;
int maxx = 0;
void dfs(int k)
{
    if (e[k].size() == 0)//判断是否到头
    {
        int l = step.size();
        if (l > maxx)//更长,则更新
        {
            maxx = l;
            len = step;
        }
        if (l == maxx && step < len)///相等,但是序号更小,更新
            len = step;
        return;
    }
    for (auto i : e[k])
    {
        step.push_back(i);
        dfs(i);
        step.pop_back();
    }
    return;
}
int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int k;
        cin >> k;
        while (k--)
        {
            int x;
            cin >> x;
            e[i].push_back(x);//建边
            book[x] = 1;//标记出现
        }
    }
    for (int i = 0; i < n; i++)
    {
        if (book[i] == 0)//没出现的为根,从根开始深度遍历
        {
            step.push_back(i);
            dfs(i);
            break;
        }
    }
    cout << len.size() << endl;
    for (int i=0;i<len.size();i++)
    {
        if(i!=0)
            cout<<" ";
        cout<<len[i];
    }
}

题目八:

 

代码:

#include<iostream>//最后一个点超时,可以考虑把vector改成string
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
map<vector<int>, int>mp;
struct node
{
    vector<int> tmp;
    int cnt;
};
bool cmp(node a,node b)
{
    if(a.cnt==b.cnt)//次数相等
        return a.tmp<b.tmp;//按vector小的在前
    return a.cnt>b.cnt;//次数大的在前
}
int main()
{
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        vector<int> v;
        for (int j = 0; j < m; j++)
        {
            int x;
            cin >> x;
            v.push_back(x);
        }
        if (mp.count(v) < 1)//没有则建立
            mp[v] = 1;
        else//有则加加
            mp[v]++;
    }
    multimap<int, vector<int>> v;//一个一对多的存储容器
    for (auto i : mp)
    {
        v.insert({ i.second,i.first });//键和值反过来存
    }
    cout<<v.size()<<endl;
    node ans[101000];
    int t=0;
    for (auto i : v)
    {
        ans[t].cnt=i.first,ans[t++].tmp=i.second;//存次数和值
    }
    sort(ans,ans+t,cmp);//排序
    for(int i=0;i<t;i++)
    {
        cout<<ans[i].cnt;
        for(auto j:ans[i].tmp)//访问该vector
        {
            cout<<" "<<j;
        }
        cout<<endl;
    }
}

题目九:

 

代码:

#include<iostream>
#include<vector>
using namespace std;
vector<int> e[101010];
int main()
{
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        int k;
        cin >> k;
        while (k--)
        {
            int x;
            cin >> x;
            e[i].push_back(x);//存边
        }
    }
    int pos = 1;//记录剧情点
    int c[110];
    while (m--)
    {
        int a, b;
        cin >> a >> b;
        if (a == 1)//存档
        {
            c[b] = pos;
            cout << pos << endl;
        }
        else if (a == 0)//切档
        {
            pos = e[pos][b-1];
        }
        else if (a == 2)//读档
        {
            pos = c[b];
        }
    }
    cout << pos << endl;//最后位置
}

题目十:

 

代码:

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct node
{
    string s;
    int id,t;
};
node s[101000];
bool cmp(node a,node b)
{
    return a.id>b.id;
}
bool cmp1(node a,node b)
{
    return a.t<b.t;
}
int main()
{
    int n;
    cin >> n;
    string str;
    getchar();
    getline(cin, str);
    int m;
    cin >> m;
    for (int i = 0; i < m; i++)
    {
        int k;
        cin >> k;
        getchar();
        getline(cin, s[i].s);
        s[i].id=i+1;
    }
    sort(s,s+m,cmp);
    for(int i=0;i<m;i++)
    {
        int d=str.find(s[i].s);
        s[i].t=d;
        int cnt=0;
       for(int j=d;;j++)
       {
           if(str[j]==' ')
           {
               str[j]='*',cnt++;
               //cout<<str<<endl;
           }
           if(cnt==2)
               break;
       }
    }
    sort(s,s+m,cmp1);
    for(int i=0;i<m;i++)
    {
        if(i!=0)
            cout<<" ";
       cout<<s[i].id;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何利用AI绘制美观的地学图片摘要--提供各类矢量的地表地形和植被元素

我们经常在高级期刊的文章里面见到类似以下的图片&#xff08;Anatomy of a Glacier - Glacier Bay National Park & Preserve (U.S. National Park Service)&#xff09; 这样的表达对于研究结果非常生动形象。下面的这个网站提供了很多类似的元素&#xff0c;可以有助于我…

MySQL8.0.36-社区版:Windows和Linux上的应用部署(1)

简介&#xff1a; 本章不做过多的介绍了&#xff0c;你可以去官方的文章查看到更详细&#xff0c;更专业的介绍&#xff0c;我这里直接讲解如何进行安装 MySQL :: MySQL Documentationhttps://dev.mysql.com/doc/ Windows部署 这里我使用的是win10专业版系统 MySQL :: Dev…

Java项目——瑞吉外卖笔记

hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;很高兴你能来阅读&#xff0c;昵称是希望自己能不断精进&#xff0c;向着优秀程序员前行!&#x1f4aa;&#x1f4aa;&#x1f4aa; 目前博客主要更新Java系列、数据库、项目案例、计算机基础等知识点。感谢你的阅读和…

使用MQTT.fx接入新版ONENet(24.4.8)

新版ONENet使用MQTT.fx 模拟接入 目录 新版ONENet使用MQTT.fx 模拟接入开始前的准备创建产品设备获取关键参数 计算签名使用MQTT.fx连接服务器数据流准备与上传数据流准备数据发送与接收 开始前的准备 创建产品 设备下载Token签名工具生成签名 创建产品设备 根据以下内容填写…

算法四十天-删除排序链表中的重复元素

删除排序链表中的重复元素 题目要求 解题思路 一次遍历 由于给定的链表是排好序的&#xff0c;因此重复的元素在链表中的出现的位置是连续的&#xff0c;因此我们只需要对链表进行一次遍历&#xff0c;就可以删除重复的元素。 具体地&#xff0c;我们从指针cur指向链表的头节…

C++类与对象上(个人笔记)

类与对象 1.面向过程和面向对象初步认识2.类的定义3.类的访问限定符及封装3.1 访问限定符 4.封装5.类的实例化6.类对象6.1类对象的内存计算6.2内存对齐规则&#xff08;回顾&#xff09; 7.this指针7.1 this指针的特性 1.面向过程和面向对象初步认识 C语言是面向过程的&#x…

Java考题讲解一共5套,也可以在线刷题

【拯救者】Java刷题训练(二级专升本期末自考必备) &#x1f4d9;巩固基础 &#x1f4dc;知道考点 狠狠提分⬆️ (二级专升本期末自考必备) 大纲 一共5套题,每套可以先看视频,然后刷题. 末尾汇总了5套选择 填空 判断题, 优点: 可以查看解析和错题

L2-021 点赞狂魔

输出标签出现次数平均值最小的那个是指标签出现次数K。 模拟。 #include<bits/stdc.h> using namespace std; #define int long long const int n1e611; int a,b,c,ss; struct s {int x,z;string y; }q[n]; bool cmp(s a1,s a2) {if(a1.x!a2.x)return a1.x>a2.x;e…

C语言进阶课程学习记录-第26课 - 指针的本质分析

C语言进阶课程学习记录-第26课 - 指针的本质分析 *号实验-指针的大小实验-传址交换数值实验-const与指针小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 *号 实验-指针的大小 #include <stdio.h…

LeetCode 836. 矩形重叠

解题思路 相关代码 class Solution {public boolean isRectangleOverlap(int[] rec1, int[] rec2) {int x1 rec1[0];int y1 rec1[1];int x2 rec1[2];int y2 rec1[3];int a1 rec2[0];int b1 rec2[1];int a2 rec2[2];int b2 rec2[3];return Math.min(y2,b2)>Math.max…

【QT学习】4.对话框学习,浮动窗口,模态对话框,非模态对话框,消息框,文件对话框

1.浮动窗口 代码&#xff1a; //制作核心控件&#xff1a;文本编辑框QTextEdit* pTextEditnew QTextEdit;//制作浮动控件connect(pMenu1,&QMenu::triggered,[](QAction* pAction){qDebug()<<pAction->text()<<endl;if(pAction->text()"浮动控件&quo…

一文介绍CNN/RNN/GAN/Transformer等架构 !!

文章目录 前言 1、卷积神经网络&#xff08;CNN&#xff09; 2、循环神经网络&#xff08;RNN&#xff09; 3、生成对抗网络&#xff08;GAN&#xff09; 4、Transformer 架构 5、Encoder-Decoder架构 前言 本文旨在介绍深度学习架构&#xff0c;包括卷积神经网络CNN、循环神经…

javaScript常见对象方法总结

1&#xff0c;object.assign() 用于合并对象的属性。它可以将一个或多个源对象的属性复制到目标对象中&#xff0c;实现属性的合并。 语法 Object.assign(target, ...sources); 1,target&#xff1a;目标对象&#xff0c;将属性复制到该对象中。 2,sources&#xff1a;一个…

2024大环境差、行业卷,程序员依然要靠这份大厂级24 W字java面试手册成功逆袭!

2024大环境差、行业卷&#xff0c;程序员该怎么办&#xff1f; 2024年金三银四程序员跳槽或者找工作并不理想&#xff0c;迟迟找不到工作&#xff0c;甚至大厂还进行几轮裁员&#xff0c;导致整个就业市场都不是太好&#xff01; 出现这种情况是因为中美贸易战&#xff0c;导…

HubSpot出海营销CRM的创新实践:引领行业变革

在全球化的浪潮下&#xff0c;越来越多的企业选择出海&#xff0c;寻求更广阔的市场和更多的机遇。然而&#xff0c;出海营销并非易事&#xff0c;其中涉及到的CRM&#xff08;客户关系管理&#xff09;更是挑战重重。在这个领域&#xff0c;HubSpot以其创新的实践&#xff0c;…

C/C++如何快速学习?少走3年弯路

于我而言&#xff0c;最开始学习就是 C&#xff0c;除了计算机专业&#xff0c;其他专业可能学习的第一门编程语言为 C 语言&#xff0c;还是谭浩强爷爷那本&#xff0c;当时想着有点 C 基础&#xff0c;无外乎就是 C 语言的升级版&#xff0c;于是开启了 C 的路程。 语言这个…

访问网站时你的电脑都做了什么

电脑在访问百度时 首先在本地hosts文件里面查看本地有无域名对应的IP地址&#xff0c;若有就直接返回。若无&#xff0c;则本地DNS服务器当DNS的客户&#xff0c;向其它根域服务器发送报文查询IP地址&#xff0c;简单来说就是帮助主机查找IP&#xff0c;所以递归查询就在客户端…

SpringBoot之集成Redis

SpringBoot之集成Redis 一、Redis集成简介二、集成步骤2.1 添加依赖2.2 添加配置2.3 项目中使用 三、工具类封装四、序列化 &#xff08;正常都需要自定义序列化&#xff09;五、分布式锁 一、Redis集成简介 Redis是我们Java开发中&#xff0c;使用频次非常高的一个nosql数据库…

【双指针】接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1]输出&#xff1a;6解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的…

逆向案例十七(1)——webpack加如果之前发送公钥如何定位参数,基于中国五矿

网址链接&#xff1a;中国五矿集团有限公司采购电子商务平台 定位到数据包&#xff0c;载荷中param是一个加密参数。 每一个数据包前都有一个public返回公钥。 点击查看返回的数据 如何定位参数加密位置&#xff1f; 复制公钥包url的后面&#xff0c;进行搜索 &#xff0c;查…