弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解(二)

简介: 弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解

Sample Output 2

2+1i
-1i
1+1i

Hint

image.png

代码

#include<iostream>
#include<cstdio>
using namespace std;
class Complex {
public:
    int m, n;
    Complex operator+(Complex& c2) {
        Complex res;
        res.m = m + c2.m;
        res.n = n + c2.n;
        return res;
    }
    Complex operator-(Complex& c2) {
        Complex res;
        res.m = m - c2.m;
        res.n = n - c2.n;
        return res;
    }
    Complex operator*(Complex& c2) {
        Complex res;
        res.m = m * c2.m - n * c2.n;
        res.n = n * c2.m + m * c2.n;
        return res;
    }
    void cprint() {
        if (m == 0 && n == 0)
            printf("0\n");
        else if (m == 0 && n != 0)
            printf("%di\n", n);
        else if (m != 0 && n == 0)
            printf("%d\n", m);
        else printf("%d%+di\n", m, n);
    }
};
int main() {
    Complex c1, c2;
    cin >> c1.m >> c1.n >> c2.m >> c2.n;
    Complex c3 = c1 + c2;
    c3.cprint();
    c3 = c1 - c2;
    c3.cprint();
    c3 = c1 * c2;
    c3.cprint();
    return 0;
}

大二组

韭菜

Description

在今后的几天内Jerry将学习美元与人民币的汇率。编写程序帮助Jerry何时应买或卖人民币或美元,使他从100美元开始,最后能获得最高可能的价值。

Input

第一行是一个自然数N,1≤N≤100,表示Jerry学习汇率的天数。

接下来的N行中每行是一个自然数A,1≤A≤1000。第i+1行的A表示预先知道的第i+1天的平均汇率,在这一天中,Jerry既能用100美元买A人民币也能用A人民币购买100美元。

Output

第一行也是唯一的一行应输出要求的钱数(单位为美元,保留两位小数)。

注意:Jerry必须在最后一天结束之前将他的钱都换成美元。

Sample Input 1

5
400
300
500
300
250

Sample Output 1

266.67

Hint

样例解释

Day 1 … changing 100.0000美元= 400.0000人民币

Day 2 … changing 400.0000人民币= 133.3333美元

Day 3 … changing 133.3333美元= 666.6666人民币

Day 5 … changing 666.6666人民币= 266.6666美元

题解

状态机dp

钱有两种状态:美元,记为0状态。RMB,记为1状态。记i,0}fi,0表示最优策略下第i ii天的美元数量,fi,1表示最优策略下第i ii天的人民币数量。

设第i ii天汇率汇率为a i a_iai,在最优策略下:当第i − 1 i-1i1天汇率>第i ii天,可以把人民币兑换成美元{i-1,1}/a_ifi,0=fi1,1/ai。当第i − 1 i-1i1天汇率<第i ii天,可以把美元兑换为人民ifi,1=fi1,0ai

i ii的维度优化掉,得到最终递推关系:

image.png

在最后一天,一定会把所有的钱都换成美元,则值为f 0 f_0f0f 1 / a n f_1/a_nf1/an

代码

#include<iostream>
using namespace std;
double f[2];//0为美元,1为rmb 
double a[1005];
double st=1;
int n;
int main(){
  cin>>n;
  for(int i=1;i<=n;i++){
    cin>>a[i];
    a[i]=a[i]/100.0;
  }
  f[0]=100;
  f[1]=100*a[1];
  for(int i=2;i<=n;i++){
    if (a[i-1]<a[i]){
      f[1]=f[0]*a[i];   
    }
    if (a[i-1]>a[i]){
      f[0]=f[1]/a[i];
    }
//    cout<<"day"<<i<<":"<<f[0]<<"美元"<<f[1]<<"人民币\n"; 
  }
  double res=max(f[0],f[1]/a[n]);
  printf("%.2f",res);
  return 0;
}

闭合区域面积统计

Description

编程计算由‘*’号围成的下列图形的面积。面积的计算方法是统计*号所围成

的闭合曲线中水平线和垂直线交点的数目。如图所示,在10*10的二维数组中,

有*围住了15个点,因此面积为15。

Input

一个10*10的二维数组,里面的数为0和1,1代表着*号 。

Output

一个整数,代表被围住的点个数。

Sample Input 1

0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0

Sample Output 1

15

题解

bfs,从左上角、右上角、左下角、右下角为起点找到外圈的0,再找出1的个数,则剩下的0的个数就是被1包围的0

代码

#include<iostream>
#include<queue>
#define x first
#define y second
using namespace std;
typedef pair<int,int> PII;
int map[10][10];
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int cnt0=0,cnt1=0;
int st[10][10];
void bfs0(){
  queue<PII> q;
    if (map[0][0]==0)
    q.push({0,0});
    if (map[0][9]==0)
      q.push({0,9});
    if (map[9][0]==0)
      q.push({9,0});
    if (map[9][9]==0)  
      q.push({9,9});
  while(!q.empty()){
    PII p=q.front();
    q.pop();
    st[p.x][p.y]=1;
    cnt0++;
//    cout<<p.x<<" "<<p.y<<endl;
    for(int k=0;k<4;k++){
      int newx=p.x+dx[k];
      int newy=p.y+dy[k];
      if (newx<0||newx>=10||newy<0||newy>=10)
        continue;
      if (st[newx][newy])
        continue;
      if (map[newx][newy]==1)
        continue;
      q.push({newx,newy});
      st[newx][newy]=1;
    }
  }
}
int main(){
  for(int i=0;i<10;i++)
    for(int j=0;j<10;j++)
      cin>>map[i][j];
  bfs0();
  for(int i=0;i<10;i++)
    for(int j=0;j<10;j++){
      if (map[i][j]==1)
        cnt1++;
    }
//  cout<<cnt0<<endl<<cnt1<<endl;
  int res=100-cnt0-cnt1;
  cout<<res;
}

晒衣服

Description

熊大妈需要给宝宝们晒衣服。

衣服在自然条件下用 1 的时间可以晒干 A 点湿度。抠门的熊大妈买了 1 台烘衣机。使用烘衣机可以让你用单位 1 时间使 1件衣服除开自然晒干的 A 点湿度外,还可烘干 B 点湿度,但在单位 1 时间内只能对 1 件衣服使用。

N 件的衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最少时间(湿度为 0 为干)。

Input

第一行N,A ,B , 接下来N行 ,每行一个正整数 ,表示衣服的湿度(1<= 湿度,A,B<=500000,1<=N<=500000)。

Output

一个正整数,表示弄干衣服的最小时间

Sample Input 1

3 2 1
1
2
3

Sample Output 1

1

Hint

对于40%的测试用例,n <= 5000

对于70%的测试用例,n <= 10000

对于全部的测试用例,n <= 500000

【样例解析】

第 1 个时间内,用机器处理第 3 件衣服,此外,所有衣服自然晒干 2。花费 1 时间全部弄干。

题解

image.png

代码

#include<iostream>
#include<queue>
#include<vector>
using namespace std;
int main(){
  int n,a,b;
  cin>>n>>a>>b;
  priority_queue<int> q;
  for(int i=1;i<=n;i++){
    int shidu;
    cin>>shidu;
    q.push(shidu);
  }
  int t=0;
  do{
        int p=q.top();
        q.pop();
        if (p-a*t<=0)
      break;
    t++;
    p-=b;
      q.push(p);
  }while(1);
  cout<<t<<endl;
}

奶酪

Description

image.png

目录
相关文章
|
算法
孜孜不倦,上下求索——悼念原复旦大学计算机学院朱洪教授
上海交通大学软件学院副教授李停舟发微博称,原复旦大学计算机系教授朱洪1月27日逝世。朱洪教授是我国知名算法理论专家,也是复旦大学计算机科学技术学院40多年发展的亲历者和建设者。本文将朱洪教授在复旦工作的经历进行编辑,以念逝者。
3519 0
|
2月前
|
网络协议 安全 Linux
【题目】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷
【题目】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷
【题目】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷
|
2月前
|
网络协议 安全 网络安全
【题目】【网络系统管理】2022年江苏省职业院校技能大赛 高职竞赛样题
【题目】【网络系统管理】2022年江苏省职业院校技能大赛 高职竞赛样题
【题目】【网络系统管理】2022年江苏省职业院校技能大赛 高职竞赛样题
|
2月前
|
网络协议 安全 数据安全/隐私保护
【题目】【网络系统管理】2022年甘肃省职业院校技能大赛-网络构建-试卷
【题目】【网络系统管理】2022年甘肃省职业院校技能大赛-网络构建-试卷
【题目】【网络系统管理】2022年甘肃省职业院校技能大赛-网络构建-试卷
|
2月前
|
安全 网络安全 测试技术
【题目】2023年国赛信息安全管理与评估正式赛任务书-模块3 CTF
【题目】2023年国赛信息安全管理与评估正式赛任务书-模块3 CTF
【题目】2023年国赛信息安全管理与评估正式赛任务书-模块3 CTF
|
2月前
|
安全 Linux 网络安全
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-B-CTF夺旗与攻击
模块C和D是CTF夺旗比赛,分别侧重攻击和防御。作为渗透测试工程师,你需要在靶机(Linux/Windows)上找寻多种漏洞,如命令注入、文件上传、文件包含、远程代码执行和缓冲区溢出,以获取权限。同时,注意不能攻击裁判服务器,违者将被罚离场。提交靶机的唯一标识flag值并按规则加分。模块D中,你需要在堡垒服务器上发现并修复同样类型的漏洞,保证服务可用性,制作系统防御报告,所有截图需清晰,文件以PDF格式保存提交。
30 0
|
2月前
|
安全 Linux 网络安全
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-B
网络安全模块A,涉及Windows和Linux服务器的安全加固。任务包括:设置强密码和登录策略,如账户锁定和最小密码长度;禁止未加密密码传输和来宾账户访问;关闭系统时清除内存页面文件,禁止无登录关机,限制驱动器访问;确保流量完整性,如SSL访问和SSH证书登录;事件监控,如应用日志存档;服务加固,如SSH禁止root远程登录,VSFTPD超时设置,IIS防止文件枚举和关闭WebDAV;以及防火墙策略,如限制DNS转发,禁止ping,禁用端口和MAC地址,限制IP碎片和SSH连接。所有更改需截图并按指定格式保存提交。
32 0
|
2月前
|
安全 JavaScript 前端开发
第十六届山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题—B模块安全事件响应/网络安全数据取证/应用安全
该内容描述了一次网络安全演练,包括七个部分:Linux渗透提权、内存取证、页面信息发现、数字取证调查、网络安全应急响应、Python代码分析和逆向分析。参与者需在模拟环境中收集Flag值,涉及任务如获取服务器信息、提权、解析内存片段、分析网络数据包、处理代码漏洞、解码逆向操作等。每个部分都列出了若干具体任务,要求提取或生成特定信息作为Flag提交。
68 0
|
9月前
|
安全 测试技术 网络安全
2023年江西省赣州市技能大赛 网络安全竞赛试题任务书
2023年江西省赣州市技能大赛 网络安全竞赛试题任务书
117 0
C国演义 [第三章]
C国演义 [第三章]