PTA(题目集二 题目 代码 C++)

目录

题目一:

代码:

题目二:

代码:

题目三:

代码:

题目四:

代码:

题目五:

代码:

题目六:

代码:

题目七:

代码:

题目八:

代码:

题目九:

代码:

题目十:

代码:


题目一:

代码:

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    float a[1010];
    float sum=0;
    for(int i=1;i<=n;i++)//求倒数
    {
        cin>>a[i];
        sum+=1.0/a[i];
    }
    float aver=sum/n;//求倒数的平均
    printf("%.2f",1.0/aver);//求倒数的平均的倒数
    
}

题目二:

 

代码:

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    int a[5],cha,minn;
    cin>>a[1]>>a[2]>>a[3]>>a[4]>>minn>>cha;
    int flagmax=0;
    for(int i=1;i<=4;i++)
    {
        cin>>a[i];
        flagmax=max(flagmax,a[i]);//求最大值
    }
    vector<int> error;
    for(int i=1;i<=4;i++)
    {
        if(flagmax-a[i]<=cha&&a[i]>=minn)
            continue;
        else//不满足条件则进入
            error.push_back(i);
    }
    if(!error.size())//不满足条件的没有
        cout<<"Normal"<<endl;
    else if(error.size()==1)//不满足条件的只有一个
        cout<<"Warning: please check #"<<error[0]<<"!"<<endl;
    else
        cout<<"Warning: please check all the tires!"<<endl;
}

题目三:

 

代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s;
    getline(cin, s);
    int cnt = 0;
    int d = 0;
    int k = 0;
    while (s != ".")
    {
        k++;
        int flag = s.find("chi1 huo3 guo1");//查找位置
        if (flag != -1 && cnt == 0)//找到了,且是第一个
            d = k;//存第一次出现
        if (flag != -1)//每次找到都加一
            cnt++;
        getline(cin, s);
    }
    cout << k << endl;
    if (cnt == 0)
        cout << "-_-#" << endl;
    else
        cout << d << " " << cnt << endl;
}

题目四:

代码:

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
string str;
int n,m;
int main()
{
    cin>>n>>m;
    int k=pow(2,n);//最大编号+1
    int pos,n;
    while(m--)
    {
        pos=1,n=k;
        cin>>str;
        for(int j=0;j<str.length();j++)
        {
            if(str[j]=='n')//出现一次n,则加一半(默认为最右边的最后一个)
                pos+=(n/2);
            n/=2;//减半
        }
        cout<<pos<<endl;
    }
}

题目五:

 

代码:

#include<iostream>
using namespace std;
int main()
{
    int v[30]={0,0,0,0,0,0,10000,36,720,360,80,252,108,72,54,180,72,180,119,36,306,1080,144,1800,3600};
    int a[10][10];
    int b[15]={0};
    int flagx,flagy;
    for(int i=1;i<=3;i++)
        for(int j=1;j<=3;j++)
        {
            cin>>a[i][j];
            if(a[i][j]==0)//记录0的位置
                flagx=i,flagy=j;
            b[a[i][j]]=1;//1~9出现标记为1
        }
    for(int i=1;i<=9;i++)
    {
        if(b[i]==0)//1~9没出现过的赋给一开始为0的位置
            a[flagx][flagy]=i;
    }
    int n=3;
    while(n--)
    {
        int x,y;
        cin>>x>>y;
        cout<<a[x][y]<<endl;
    }
    int sum=0;
    cin>>n;
    if(n<=3)//横
    {
        for(int i=1;i<=3;i++)
            sum+=a[n][i];
    }
    else if(n>3&&n<=6)//竖
    {
        for(int i=1;i<=3;i++)
            sum+=a[i][n-3];
    }
    else if(n==7)//主对角
    {
        sum=a[1][1]+a[2][2]+a[3][3];
    }
    else//副队角
        sum=a[1][3]+a[2][2]+a[3][1];
    //cout<<sum<<endl;
    cout<<v[sum]<<endl;
        
}

题目六:

 

代码:

#include<iostream>
#include<stack>
using namespace std;
int summ(int f, int s, char y)/计算
{
    int sum = 0;
    if (y == '+')
        sum = f + s;
    else if (y == '-')
        sum = f - s;
    else if (y == '*')
        sum = f * s;
    else
    {
        if (s == 0)
            return -1;
        else
            sum = f / s;
    }
    return sum;
}
int main()
{
    stack<char>s2;
    stack<int>s1;
    int n;
    int x1, x2;
    char y;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        int x;
        cin >> x;
        s1.push(x);
    }
    for (int i = 1; i <= n - 1; i++)
    {
        char x;
        cin >> x;
        s2.push(x);
    }
    while (!s1.empty() && !s2.empty())
    {
        x1 = s1.top(), s1.pop();//取数
        if (!s1.empty())
            x2 = s1.top(), s1.pop();//取数
        else
            break;
        y = s2.top(), s2.pop();//取运算符
        if (summ(x2, x1, y) == -1)//不合法输出
        {
            cout << "ERROR: " << x2 << "/" << x1;
            return 0;
        }
        x1 = summ(x2, x1, y);//下面的为第一个运算数,上面的为第二个运算数,计算结果重新入队
        s1.push(x1);
    }
    cout << s1.top();
}

题目七:

 

代码:

#include<iostream>//有一个点没过
#include<map>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
struct people
{
    string name, id;//名字,身份证
    int s;//身体状况
    string time;
    int order;//列表出现的顺序
};
int d, p;
map<string, int> day;
vector<people> v;
queue<people> v2;
bool cmp(people a, people b)//排序
{
    if(a.time==b.time)//时间相等根据出现的顺序排
        return a.order>b.order;
    return a.time > b.time;
}
int judgeid(string s)//判断身份证是否合法
{
    if(s.size()<18)
        return 0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]<'0'||s[i]>'9')
            return 0;
    }
    return 1;
}
int main()
{
    cin >> d >> p;
    int dday = 0;//记录天数
    while (d--)
    {
        dday++;
        int t, ss;
        cin >> t >> ss;
        v.clear();
        int cnt=0;
        while (t--)
        {
            cnt++;//记录列表顺序
            string name, time, id;
            int s;
            cin >> name >> id >> s >> time;
            if (judgeid(id) && day.count(name) != 1)//之前这人没出现过且身份证合法
            {
                v.push_back({ name,id,s,time,cnt});
            }
            else if (judgeid(id) && day[name] + p + 1 <= dday)//之前出现过,天数合法,身份证合法
            {
                v.push_back({ name,id,s,time,cnt });
            }
            if (judgeid(id) && s == 1)//身份证合法,身体有情况
                v2.push({ name,id,s,time,cnt });
        }
        sort(v.begin(), v.end(), cmp);//按时间顺序小到大排序
        for (int i = 1; i <= ss; i++)//从后往前,按时间小的先出
        {
            if (!v.empty())//合法的人不为空
            {
                day[v.back().name] = dday;//更新该人的天数
                cout << v.back().name << " " << v.back().id << endl;
            }
            else
                break;
            v.pop_back();
        }
    }
    map<string, int> mp;//去重防止重复出现
    while (!v2.empty())
    {
        if (mp.count(v2.front().name) < 1)
        {
            cout << v2.front().name << " " << v2.front().id << endl;
            mp[v2.front().name]++;
        }
        v2.pop();
    }
}

题目八:

代码:

#include<iostream>
using namespace std;
int tree[110],n;
void create(int k)//建第k编号的节点
{
    if(k>n)
        return;
    create(2*k);//建左树
    create(2*k+1);//建右树
    cin>>tree[k];
}
int main()
{
    cin>>n;
    create(1);
    for(int j=1;j<=n;j++)
    {
        cout<<tree[j];
        if(j!=n)
            cout<<" ";
    }
}

题目九:

 

代码:

#include<iostream>
#include<cstring>
using namespace std;
int g[205][205];
int main()
{
    int n, m;
    cin >> n >> m;
    memset(g, 0, sizeof(g));
    while (m--)
    {
        int v1, v2, w;
        cin >> v1 >> v2 >> w;
        g[v1][v2] = g[v2][v1] = w;//邻接矩阵建边
    }
    long long k, fflag, ans = 0, maxx = 1e9;
    cin >> k;
    for (int i = 1; i <= k; i++)
    {
        long long x, sum = 0, flag = 1, tmp = 0;
        int t;
        int book[205];
        memset(book, 0, sizeof(book));
        cin >> t;
        for (int j = 1; j <= t; j++)
        {
            cin >> x;
            if (g[tmp][x] != 0 && !book[x])//能走,且没走过
            {
                book[x] = 1, sum += g[tmp][x];
                tmp = x;
            }
            else
                flag = 0;//标记为0,不符合攻略
        }
        if (t == n && flag && g[x][0])//能否回到家
        {
            ans++;
            sum += g[x][0];
           // cout << i << " " << sum << endl;
            if (maxx > sum)//花费更少则更新
            {
                fflag = i;
                maxx = sum;
            }
        }

    }
    cout << ans << endl;
    cout << fflag << " " << maxx << endl;
}

题目十:

 

代码:

#include<iostream>
using namespace std;
int n, m, v1, v2;
int book[510] = { 0 }, g[510][510], path[510] = { 0 };
int dfs(int v)//深度搜索
{
    book[v] = 1;
    if (path[v])//是否已经有路径(走到终点或者走到已经走到过的点)
        return path[v];
    for (int i = 1; i <= n; i++)
        if (g[v][i])//有路可走
            path[v] += dfs(i);//加上i点往下走的path个数
    return path[v];
}
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= m; i++)
    {
        cin >> v1 >> v2;
        g[v1][v2] = 1;
    }
    cin >> v1 >> v2;
    path[v2] = 1;//终点path标记为1
    int cnt = dfs(v1);
    int flag = 1;
    for (int i = 1; i <= n; i++)
    {
        if (book[i] == 1 && !path[i])//访问过的但没有路径,则说明不是逻辑自洽
        {
            flag = 0;
            break;
        }
    }
    cout <<cnt<< " ";
    if (flag)
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
}

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

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

相关文章

《从零开始学架构》读书笔记(一)

目录 软件架构设计产生的历史背景 软件架构设计的目的 系统复杂度来源 追求高性能 一、单机高性能 二、集群的高性能 追求高可用 一、计算高可用 二、存储高可用 追求可扩展性 一、预测变化 二、应对变化 追求安全、低成本、规模 一、安全 二、低成本 三、规模…

使用 Python 的 LSTM 进行股市预测

目录 一、说明 二、为什么需要时间序列模型&#xff1f; 三、下载数据 3.1 从 Alphavantage 获取数据 3.1 从 Kaggle 获取数据 3.3 数据探索 3.4 数据可视化 四、将数据拆分为训练集和测试集 五、数据标准化 六、通过平均进行一步预测 6.1 标准平均值 6.2 指数移动平均线 6.3 如…

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

类与对象中 类的6个默认成员函数1.构造函数1.1特性 2.析构函数2.1特性 3.拷贝构造函数3.1特性 4.赋值运算符重载4.1特性 5.日期类的实现6.const成员6.1const成员的几个问题 7.取地址及const取地址操作符重载 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为…

iOS 17.5系统或可识别并禁用未知跟踪器,苹果Find My技术应用越来越合理

苹果公司去年与谷歌合作&#xff0c;宣布将制定新的行业标准来解决人们日益关注的跟踪器隐私问题。苹果计划在即将发布的 iOS 17.5 系统中加入这项提升用户隐私保护的新功能。 科技网站 9to5Mac 在苹果发布的 iOS 17.5 开发者测试版内部代码中发现了这项反跟踪功能的蛛丝马迹…

SAP HCM PT 2003修改班次,PP61无法自动更新

今天遇到一个问题&#xff0c;2003修改班次以后PP61无法自动更新&#xff0c;开始一直以为是什么配置点漏掉&#xff0c;但是发现开发机没问题&#xff0c;后来发现是用户选保存的时候选中目标计划的完成&#xff0c;这个是保存到实际计划的&#xff0c;数据存储psoll中&#x…

引入精益管理方式,需要提前做到这九点

​ 近年来&#xff0c;软件项目的规模及其复杂性正在以空前的速度增长&#xff0c;互联网用户市场庞大&#xff0c;互联网公司和相应的软件产品层出不穷。快速响应需求变化往往是互联网行业的常态&#xff0c;软件产品的快速开发迭代对于公司迅速占领市场、抢占商机有着举足轻重…

js通过Object.defineProperty实现数据响应式

目录 数据响应式属性描述符propertyResponsive 依赖收集依赖队列寻找依赖 观察器 派发更新Observer完整代码关于数据响应式关于Object.defineProperty的限制 数据响应式 假设我们现在有这么一个页面 <!DOCTYPE html> <html lang"en"><head><m…

ics-05-攻防世界

题目 点了半天只有设备维护中心能进去 御剑扫一下 找到一个css 没什么用 再点击云平台设备维护中心url发生了变化 设备维护中心http://61.147.171.105:65103/index.php?pageindex试一下php伪协议 php://filter/readconvert.base64-encode/resourceindex.php base64解一下…

python 指数搜索(Exponential Search)

该搜索算法的名称可能会产生误导&#xff0c;因为它的工作时间为 O(Log n)。该名称来自于它搜索元素的方式。 给定一个已排序的数组和要 搜索的元素 x&#xff0c;找到 x 在数组中的位置。 输入&#xff1a;arr[] {10, 20, 40, 45, 55} x 45 输出&#xff1a;在索…

打包与发布iOS应用的完整指南

摘要 本文旨在指导开发者如何准备工作、打包和发布iOS应用。详细介绍了生成请求证书文件、生成APP开发证书及发布证书、生成APP ID、添加调试设备、生成描述文件等步骤。同时&#xff0c;结合案例演示和实际操作&#xff0c;帮助读者更好地理解和应用这些步骤。通过本文&#…

34470A是德科技34470A数字万用表

181/2461/8938产品概述&#xff1a; Truevolt数字万用表&#xff08;34460A、34461A、34465A、34470A&#xff09;利用是德科技的新专利技术&#xff0c;使您能够快速获得见解、测量低功耗设备并保持校准的测量结果。Truevolt提供全方位的测量能力&#xff0c;具有更高的精度、…

基于51单片机教室灯光全自动控制设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机教室灯光全自动控制设计( proteus仿真程序设计报告原理图讲解视频&#xff09; 基于51单片机教室灯光全自动控制设计 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真设计4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链接 仿真图pro…

Python | NCL风格 | EOF | 相关 | 回归

这里在linux系统上使用geocat实现NCL风格的图片绘制 Linux上安装 geocat conda update conda conda create -n geocat -c conda-forge geocat-viz conda activate geocat conda update geocat-vizDataset - NOAA Optimum Interpolation (OI) SST V2 # 海温月平均数据 - lsmas…

dubbo知识点

为什么要用 Dubbo&#xff1f; 随着服务化的进一步发展&#xff0c;服务越来越多&#xff0c;服务之间的调用和依赖关系也越来越复杂&#xff0c;诞生了面向服务的架构体系(SOA)&#xff0c;也因此衍生出了一系列相应的技术&#xff0c;如对服务提供、服务调用、连接处理、通信…

React - 你使用过高阶组件吗

难度级别:初级及以上 提问概率:55% 高阶组件并不能单纯的说它是一个函数,或是一个组件,在React中,函数也可以做为一种组件。而高阶组件就是将一个组件做为入参,被传入一个函数或者组件中,经过一定的加工处理,最终再返回一个组件的组合…

海外仓的痛点和需求都有哪些?位像素海外仓系统能解决什么问题?

在全球化贸易的时代&#xff0c;越来越多人将目光聚焦在海外仓上&#xff0c;下场想要分一杯羹。然而&#xff0c;海外仓管理过程中也存在着许多痛点和挑战。为此&#xff0c;海外仓都会使用海外仓系统来协助管理海外仓。来探讨一下海外仓的痛点、需求以及海外仓系统能够解决的…

TiDB 慢查询日志分析

导读 TiDB 中的慢查询日志是一项 关键的性能监控工具&#xff0c;其主要作用在于协助数据库管理员追踪执行时间较长的 SQL 查询语句。 通过记录那些超过设定阈值的查询&#xff0c;慢查询日志为性能优化提供了关键的线索&#xff0c;有助于发现潜在的性能瓶颈&#xff0c;优化…

XML HTTP传输 小结

what’s XML XML 指可扩展标记语言&#xff08;eXtensible Markup Language&#xff09;。 XML 被设计用来传输和存储数据&#xff0c;不用于表现和展示数据&#xff0c;HTML 则用来表现数据。 XML 是独立于软件和硬件的信息传输工具。 应该掌握的基础知识 HTMLJavaScript…

跨越网络边界:借助C++编写的下载器程序,轻松获取Amazon商品信息

背景介绍 在数字化时代&#xff0c;数据是新的石油。企业和开发者都在寻找高效的方法来收集和分析网络上的信息。亚马逊&#xff0c;作为全球最大的电子商务平台之一&#xff0c;拥有丰富的商品信息&#xff0c;这对于市场分析和竞争情报来说是一个宝贵的资源。 问题陈述 然…

相机标定——四个坐标系介绍

世界坐标系(Xw,Yw,Zw) 世界坐标系是一个用于描述和定位三维空间中物体位置的坐标系&#xff0c;通常反映真实世界下物体的位置和方向。它是一个惯性坐标系&#xff0c;被用作整个场景或系统的参考框架。在很多情况下&#xff0c;世界坐标系被认为是固定不变的&#xff0c;即它…