首页 > 其他分享 >2024年1月31日练习答案

2024年1月31日练习答案

时间:2024-01-30 21:26:59浏览次数:31  
标签:const string int 31 练习 father 2024 return cout

目录

P505 【基础】寻找祖先

给出充足的父子关系,请你编写程序找到某个人的最早的祖先。

规定每个人的名字都没有空格,且没有任意两个人的名字相同。最多可能有1000组父子关系,总人数最多可能达到50000人,家谱中的记载不超过30代。

分析
使用map<string,string> 建立父子关系
通过 u = p[u] 的方式查询 u 的父亲 p[u]

点击查看代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e3+10;
map<string,string> p;

string find(string s) {
    if(s!=p[s]) p[s]=find(p[s]);
    return p[s];
}
int main() {
    string s, father, child;
    while(cin>>s) {
        if(s=="$") break;
        if(s[0]=='#') {
            father = s.substr(1);
            if(!p.count(father)) p[father] = father;
        } else if(s[0]=='+') {
            child = s.substr(1);
            p[child] = father;
        } else if(s[0]=='?') {
            s.erase(0,1);
            cout<<s<<" "<<find(s)<<endl;
        }
    }
    return 0;
}

P541 【基础】吃西瓜( watermelon )

炎热的夏天来的可真快,小花猫和编程兔决定去买一个又大又甜的西瓜。可是小花和编程兔是两只非常奇怪的动物,都是偶数的爱好者,它们希望把西瓜切成两半后,每一部分的重量都是2的倍数公斤(大于 0)。

当然有编程兔在,它们很快就决定了买哪个瓜。小朋友你知道要不要买这个瓜吗?

分析
n是偶数,n/2是偶数,且n/2>1
也就是说 n = 2(a+b),a≥1,b≥1
所以 n/2 = (a+b) ≥ 2

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=10;

int main(){
    int t,n; cin>>t;
    while(t--){
        cin>>n;
        int a = n/2;
        cout<<(n%2==0 && n/2>=2 ? "YES":"NO")<<endl;
    } 
    return 0;
}

P832 【提高】AtoB

给定一个 a进制数 c,将它变成 b进制并输出。

分析
模拟,一个比较好的代码量练习,想清楚过程,注意细节

点击查看代码
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long LL;
const int N = 1e6 + 10;

string AtoB(string c, int a, int b) {
    LL t = 0;
    for (int i = 0; i < c.size(); i++) {
        if (c[i] <= '9') t = t * a + c[i] - '0';
        else t = t * a + c[i] - 'a' + 10;
    }
    string s;
    if (t == 0) s = "0";
    while (t) {
        LL r = t % b;
        if (r < 10) s.append(1, r + '0');
        else s.append(1, r - 10 + 'a');
        t /= b;
    }
    reverse(s.begin(), s.end());
    s = "(" + s + ")" + to_string(b);
    return s;
}
int main() {
    LL a, b; string c;
    cin >> c >> a >> b;
    cout << AtoB(c, a, b) << endl;
    return 0;
}

P841 【入门】s01串

s01串初始为"0",按以下方式变换:

  • 0变1
  • 1变01

求n次变换后s01串

分析
可以使用递归解决

  1. 递归函数:f(s) --- 表示返回经过1次变换的字符串
  2. 递归关系:f(s) = f(s的前一半) + f(s的后一半)
  3. 递归边界:f("0")="1", f("1")="01".
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=300;
int n;
string s = "0";
string f(string s) {
    if(s=="0") return "1";
    if(s=="1") return "01";
    int n = s.size(), k=n/2;
    return f(s.substr(0, k)) + f(s.substr(k));
}
int main() {
    cin>>n;
    while(n--) s = f(s);
    cout<<s;
    return 0;
}

标签:const,string,int,31,练习,father,2024,return,cout
From: https://www.cnblogs.com/hellohebin/p/17997993

相关文章

  • CS231N Assignment3 入门笔记(Q4 GANs)
    斯坦福2023年春季CS231N课程第三次作业(最后一次)解析、笔记与代码,作为初学者入门学习。在这项作业中,将实现语言网络,并将其应用于COCO数据集上的图像标题。然后将训练生成对抗网络,生成与训练数据集相似的图像。最后,将学习自我监督学习,自动学习无标签数据集的视觉表示。本作业的......
  • 【赛事报名】2024全国青少年信息素养大赛-迷宫寻宝AI竞技赛项报名正式启动!
    【赛事报名】2024全国青少年信息素养大赛-迷宫寻宝AI竞技赛项报名正式启动!AI创想家 腾讯青少年科技学习中心 2024-01-3015:43 发表于广东 全国青少年信息素养大赛 全国青少年信息素养大赛(原全国青少年电子信息智能创新大赛),是“世界机器人大会青少年机器人......
  • 每日总结2024年1月30日
    今天完成了歌声转换的第一阶段验收。我们小组选择的服务外包杯课题是A13的歌声转化,我们计划实现两个方面的功能。能够选择人声,然后根据导入的歌曲,替换原声,生成新的歌曲,这是我们计划的基础目标。但是考虑到条件的局限性,我们很难让用户自行导入音色素材直接转化为需要的音色,目前计......
  • 美赛2023C练习-做题笔记
    代码:clc;TC=ProblemCDataWordle;%数据处理noC=TC(:,1);wordC=TC(:,2);dataC=TC(:,3:11);no=cell2mat(noC);data=cell2mat(dataC);L=size(wordC);L=L(1);word=[];%原表格有错误,根据网络数据进行修正wordC{36}="clean";wordC{247}="trash";%修正endfori=1:L......
  • 31-ArrayList和HashMap集合的排序
     扩展:在List集合中添加另一个集合时,一般常用两种方法booleanadd(Ee): 将list作为一个元素添加到集合中booleanaddAll(Collection<?extends E> c):把list中的所有元素添加到集合中 ArrayList类的排序方法(常用)packagelist;importjava.util.ArrayList......
  • 2024年獬豸杯 电子取证
    我使用的取证工具有取证大师,RStudioPortable,AXIOMv580,AXIOMv780根据自己情况来,多开几个一起看签到所以flag为:flag{We1c0me_t0_獬豸杯}计算机基本信息-1、计算机系统的安装日期是什么时候。(标准格式:20240120)系统痕迹-1、请问机主最近一次访问压缩包文件得到文件名称是什么......
  • 2024最新Win11专业版永久密钥
    Windows专业版是微软公司推出的操作系统,为商业和专业用户提供高级功能和安全性。它包括强大的管理工具、企业级安全性和支持专业应用程序的功能,满足专业用户的高级需求。Windows专业版适用于企业、组织和专业人士,提供稳定、可靠的计算环境。分享从互联网收集的密钥:5NXK3-IHHFW-......
  • 【2024.01.30】闪光灯漫展实践操作
    在漫展时候使用机顶闪的时候我常常觉得人物的曝光太大了即使是光圈开到100也是很亮结果后面基本上都是使用自然光进行拍摄场照的话,只有一项数值是固定的,光圈调到最大这样子的背景是虚化比较好看的,光会被打成好看的圆形所以我一般使用半自动光圈优先的挡位,然后ISO调整到100然......
  • 每日一练 | 华为认证真题练习Day174
    1、下面关于OSPF报文验证描述错误的是:A.AR2200支持的验模式按加密算协议中规定的法不同分为NULLSIMPLEMD5以及HMAC-MD5B.AR2200支持两种认证方式区域验证和接口验证C.当区域验证方式和接口验证方式同时存在时,优先使用区域验证D.只有通过验证的OSPF报文才能接受,否则将不能正常......
  • VMware Horizon 8 2312 - 虚拟桌面基础架构 (VDI) 和应用软件
    VMwareHorizon82312-虚拟桌面基础架构(VDI)和应用软件请访问原文链接:https://sysin.org/blog/vmware-horizon-8/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVersion2312DocumentationReleaseNotesReleaseDate2024-01-23虚拟桌面基础......