上海市计算机学会月赛 2022年9月月赛丙组

  • 这次题目真的衡水
    • 矩形的周长与面积
    • 机会成本
    • 三色排序
    • 阶乘尾数
    • 前序中序转后序

这次题目真的衡水

文章拖了好久忘记发了
明天初赛祝各位考试顺利有一个好的心态(我也要考/(ㄒoㄒ)/~~)

矩形的周长与面积

内存限制: 256 Mb时间限制: 1000 ms
题目描述
给定一个矩形的长为 a,宽为 b,请输出这个矩形的周长和面积。

输入格式
两个整数表示 a 与 b。

输出格式
第一行:单个整数表示矩形的周长
第二行:单个整数表示矩形的面积

数据范围
1≤a,b≤10000

样例数据
输入:
3 2
输出:
10
6
输入:
12 3
输出:
30
36
分析:
不分析

#include <bits/stdc++.h>
using namespace std;
long long a, b;
int main() {cin >> a >> b;cout << 2 * (a + b) << endl << a*b;return 0;
}

机会成本

内存限制: 256 Mb时间限制: 1000 ms
题目描述
每个人的一生只能做好一件事。给定一个正整数 nn,表示人生中的 nn 件事。若认真对待某件事,可以获得的分数为 a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1​,a2​,…,an​,若不认真对待,则获得的分数为 b 1 , b 2 , … , b n b_1,b_2,\dots,b_n b1​,b2​,…,bn​。请计算应该认真对待哪一件事,才能让分数的总和达到最大。

输入格式
第一行:单个整数表示 n
第二行到第 n+1 行:每行两个整数表示 a i a_i ai​ 与 b i b_i bi​

输出格式
单个整数:表示最大的分数之和

数据范围
对于 30% 的数据,1≤n≤5,000;
对于 60% 的数据,1≤n≤20,000;
对于 100% 的数据,1≤n≤500,000;
0 ≤ b i ≤ a i ≤ 4000 0\leq b_i\leq a_i\leq 4000 0≤bi​≤ai​≤4000;
样例数据
输入:
3
1 1
2 0
3 2
输出:
5
说明:
选择做好第二件事
分析:
不要想复杂,就是所有的分数加起来再加上分差最大的一门。

#include <iostream>
using namespace std;
int a, b, n, cnt[500001], sum, maxn;
int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a >> b;cnt[i] = a - b;maxn = max(maxn, cnt[i]);sum += b;}cout << sum + maxn << endl;return 0;
}

三色排序

内存限制: 256 Mb时间限制: 1000 ms
题目描述
给定 n 个整数 a 1 , a 2 , … , a n a_1,a_2,\dots, a_n a1​,a2​,…,an​ ,每个数字都是 0,1,2 中的一个,请将其中的一部分数字两两交换,使得结果是升序的,请问最少需要几次交换?

输入格式
第一行:单个整数表示 n
第二行:n 个整数表示 a 1 , a 2 , … , a n a_1,a_2,\dots, a_n a1​,a2​,…,an​

输出格式
单个整数:表示最少交换次数。

数据范围
对于 30% 的数据,1≤n≤5,000;
对于 60% 的数据,1≤n≤100,000;
对于 100% 的数据,1≤n≤1,000,000;
0 ≤ a i ≤ 2 0\leq a_i\leq 2 0≤ai​≤2
样例数据
输入:
5
2 0 1 2 0
输出:
1
说明:
将第一个2与最后一个0交换即可
分析:
看一下有多少个2和0的位置错了就换过来,因为1永远要是在中间的

#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e6+1;
int n, c[MAXN], num[3], x1, x2, e0, e1;
int main() {cin >> n;for (int i = 1; i <= n; ++i) {cin >> c[i];++num[c[i]];}for (int i = 1; i <= num[0]; ++i)if (c[i] == 1)x1++;else if (c[i] == 2)x2++;for (int i = num[0] + num[1] + 1; i <= n; ++i)if (c[i] == 1) e1++;else if (c[i] == 0)    e0++;cout << x1 + x2 + e1 + e0 - min(e0, x2) << endl;return 0;
}

阶乘尾数

内存限制: 256 Mb时间限制: 1000 ms
题目描述
给定一个整数 n,n 的阶乘定义为

n ! = 1 × 2 × ⋯ × n n!=1\times 2\times \cdots \times n n!=1×2×⋯×n

请计算在 n! 的十进制表示中,末尾有多少个连续的 0?

例如 n=5,则 n!=120,末尾有 1 个 0,又12!=479001600,末尾有 2 个 0。

输入格式
单个整数表示 n。

输出格式
单个整数表示 n! 中末尾零的个数。

数据范围
对于 30% 的数据,1≤n≤1000;
对于 60% 的数据,1≤n≤1,000,000;
对于 100% 的数据,1≤n≤2,000,000,000;
样例数据
输入:
5
输出:
1
输入:
12
输出:
2
说明:
12的阶乘为479001600
分析:
简单数学题,看一下n的阶乘中有多少个5(在5的倍数里找)

#include <bits/stdc++.h>
using namespace std;
long long n;
long long f(long long n) {long long num = 0, i, j;for (i = 5; i <= n; i += 5) {j = i;while (j % 5 == 0) {++num;j /= 5;}}return num;
}
int main() {cin >> n;cout << f(n);return 0;
}

前序中序转后序

内存限制: 256 Mb时间限制: 1000 ms
题目描述
有一棵二叉树,结点数量不超过 26,树上的每个结点都可以用一个唯一的大写英文字母区分,给定这棵二叉树的前序遍历与中序遍历,请输出它的后序遍历。

输入格式
第一行:一个字符串,表示二叉树的前序遍历;
第二行:一个字符串,表示二叉树的中序遍历。

输出格式
单独一行:一个字符串,表示二叉树的后序遍历。

数据范围
设二叉树的结点数量为 n,

对于 50% 的数据,1≤n≤10
对于 100% 的数据,1≤n≤26
样例数据
输入:
ACE
CAE
输出:
CEA
分析:
按照前中序的原理,前序判根中序判位置。

#include <bits/stdc++.h>
using namespace std;
int cnt = 0;
string n1, n2;
void tree(int l, int r, char ch) {for (int i = l; i < r; ++i) {if (n2[i] == ch) {if (l < i)tree(l, i, n1[cnt++]);if (i + 1 < r)tree(i + 1, r, n1[cnt++]);cout << ch;break;}}
}
int main() {cin >> n1 >> n2;tree(0, n1.size(), n1[cnt++]);return 0;
}

上海市计算机学会月赛 2022年9月月赛丙组相关推荐

  1. 上海市计算机学会月赛 2022年7月月赛丙组

    上海市计算机学会月赛 2022年7月月赛丙组 水仙花指数 因数之和 观光电梯 匹配括号(三) 打印六芒星 本文仅供学术探讨 水仙花指数 内存限制: 256 Mb时间限制: 1000 ms 题目描述 定 ...

  2. 上海市计算机学会2022年10月月赛丙组解题报告

    上海市计算机学会2022年10月月赛丙组解题报告 直角三角形的判定 题目描述 给定三个正整数表示三角形的三条边,请判定它是否为直角三角形 输入格式 第一行:三个整数 a,b 与 c 输出格式 若可以构 ...

  3. 上海市计算机学会竞赛 2023.1 丙组月赛

    上海市计算机学会竞赛 2023.1 丙组月赛 T1 实验日志 题目描述 小爱正在完成一个物理实验,为期 n n n天,其中第 i i i天,小爱会记录 a i a_i ai​ 条实验数据在实验日志中. ...

  4. 上海市计算机学会竞赛平台二星级挑战

    上海市计算机学会竞赛平台 | 2022 二星级挑战 康托表 打印K型 计算天数(Python) 黑色星期五 分割队伍 调配问题(一) 阶乘的余数 驼峰与蛇 四方定理 数根 IP地址 最年长的人 选科组 ...

  5. 上海市计算机学会竞赛平台三星级挑战

    上海市计算机学会竞赛平台 | 2022 三星级挑战 最大回撤 最后一击 平衡点 栈的判断 排队安排 逆波兰式 股票市场 城市的中心 伙伴 两数之和 阶乘求和(Python3.6) 连乘问题 随机性验证 ...

  6. 上海市计算机学会竞赛平台一星级挑战

    上海市计算机学会竞赛平台 | 2022 一星级挑战 奖牌的数量 数人数 盈亏问题 方舱医院 数球数 切蛋糕 时间格式 数字加密 打渔还是晒网 竞选班长 做烧饼 植树造林 促销骰子 逢七必过 回文数的判 ...

  7. 上海市计算机学会-买二送一

    上海市计算机学会竞赛平台 | YACS 题目描述 有n 本书,第 i本书的价格为 ai​,小爱想把这些书全部买回家.现在正有一个买二送一的促销活动,即,凡是购买两本书,就可以免费带走第三本书,只要免费 ...

  8. 上海2022年10月月赛丙组 T5:组队竞赛

    原题连接:上海市计算机学会竞赛平台 | YACS 一,70分的写法 先对能力值进行从小到大排序,在对热情度进行前缀和处理,再枚举区间中的开始与结束位置判断是否满足能力值最大选手的能力差值小于等于X的条 ...

  9. 上海2022年11月月赛丙组

    上海2022年11月月赛丙组 T1~T4略 T5 出栈序列 题目描述 给定一个长度为 n n n的.仅由小写字母组成的字符串,将其按序依次放入栈中. 请问在所有可能的出栈序列中,字典序最小的出栈序列是 ...

最新文章

  1. 十分钟了解分布式计算:GraphX
  2. iis配置js支持读取json文件配置
  3. Appium下载安装及环境配置
  4. java算程序运行时间_关于计算Java程序运行时间
  5. arduino 步进电机驱动库_一文看懂arduino驱动uln2003操作步进电机的方法
  6. 51nod 更难的矩阵取数问题 + 滚动数组优化
  7. 微服务架构的链路追踪和故障快速排查zipkin(微服务治理)
  8. BIOS 虚拟化技术
  9. MTK Pump Express 快速充电原理分析
  10. unity摄像机镜头平滑处理
  11. 时尚亲民的发烧耳机,无需焊接的模块化设计,小蝙蝠M0体验
  12. redis streams_如何构建Redis Streams应用程序
  13. Vue.js watch 属性
  14. 一步步解密微商城系统开发流程
  15. st8s003 c语言编译器,什么原因导致ST单片机STM8S003F3P6这个8位机缺货
  16. ICLR 2021 NAS 相关论文(包含Workshop)
  17. 临床执业助理医师(综合练习)题库【5】
  18. 医学图像分割 unet实现(一)
  19. Composer用法详解
  20. 倩女幽魂次世代服务器为什么维护,8月22日停服维护公告--《倩女幽魂》手游2.0次世代全新起点...

热门文章

  1. Discuz Table ‘common_member_archive’ doesn’t exist
  2. 针孔相机标定-基于张正友标定法
  3. Distance correlation(距离相关系数)
  4. 如何从一个空有上进心的人,变成行动上的巨人?
  5. VMware安装OpenWrt让宿主机上网旁路由(两种方案)
  6. 将Excel表格转成SQL脚本
  7. CPU硬件辅助虚拟化技术
  8. 【转载】bat批处理教程 作者:hipi 日期:2006-11-05
  9. platform总线(Linux驱动开发篇)
  10. SGVision外观检测案例:污点、毛刺检测流程