T1 实验日志

题目描述

小爱正在完成一个物理实验,为期n天,其中第i天,小爱会记录 a i a_i ai​
条实验数据在实验日志中。

已知小爱的实验日志每一页最多纪录m条数据,每天做完实验后他都会将日志合上,第二天,他便从第一页开始依次翻页,直到找到第一个有空白位置的页码为止,开始新一天的数据记录。

请问在整个实验过程中,小爱每天为了找到第一个空白位置,需要翻多少页?

输入格式
输入共两行
第一行,两个正整数n,m。
第二行,n个正整数,表示每天的数据条数。

输出格式
输出共一行,n个正整数,分别表示每一天开始实验前,需要翻的页数。

数据范围
对于 30% 的数据,1≤n≤100
对于 60% 的数据,1≤n≤104
对于 100% 的数据,1≤n≤105
1≤m, a i a_i ai​≤104

样例数据
输入:

4 10
7 8 5 12

输出:

0 0 1 2

说明:

第一天不用翻页
第二天开始前,由于只记了7条,仍是从第一页开始,不用翻页
第三天开始前,共记录了15条,则是从第二页开始,需翻1页
第四天开始前,共记录了20条,由于第二页已写满,则是从第三页开始,需翻2页

思路

直接加上a除以m输出即可

代码


#include<bits/stdc++.h>
using namespace std;int main(){long long n,m,s=0,t,ans;cin>>n>>m;for(int i=1;i<=n;++i){cin>>t;ans=s/m;cout<<ans<<" ";s+=t;}cout<<endl;return 0;
}

T2 凯撒加密

题目描述
恺撒密码是一种广为人知的加密技术。恺撒把需要加密的字母按字母表向后移动 3 位,替换成密文字母。例如,所有的 A 将被变成 D,B 变成 E 等等。若要加密最后三个字母,则需要折回到前三个字母,比如 x 变 a,y 变 b,z 变 c。

例如以下明文
TheQuickBrownFoxJumpsOverTheLazyDog
将被加密成
WkhTxlfnEurzqIraMxpsvRyhuWkhOdcbGrj

给定一段只由拉丁字母组成的字符序列,请将它用凯撒加密成密文。

输入格式
一个字符序列:表示需要加密的明文

输出格式
一个字符序列:表示加密后的密文

数据范围
设输入的字符数量为 n,则保证 1≤n≤100,000

样例数据
输入:

TheQuickBrownFoxJumpsOverTheLazyDog

输出:

WkhTxlfnEurzqIraMxpsvRyhuWkhOdcbGrj

思路

直接输出 (char)(α+3)(char)(α+3),原理为 ACSII 编码;
要特殊判断的只有x,y,z和X,Y,Z

代码

#include <bits/stdc++.h>
using namespace std;

char ch;

int main(){
while(cin >> ch){
if(ch == ‘x’) cout << ‘a’;
else if(ch == ‘y’) cout << ‘b’;
else if(ch == ‘z’) cout << ‘c’;
else if(ch == ‘X’) cout << ‘A’;
else if(ch == ‘Y’) cout << ‘B’;
else if(ch == ‘Z’) cout << ‘C’;
else cout << char(ch + 3);
}
return 0;
}

T3 找零

题目描述
有一台自动售票机,每张票卖 5 元。售票机可以接受 5 元、10 元、20元的纸币。接受大面额纸币时,若没有足够的零钱,售票机将拒绝售票并将纸币退还给客户,若有零钱足够,售票机必须出票并且找零。

一开始,售票机里没有任何零钱。

每位客户只买一张票也只会塞一张纸币。按照购票顺序,给定售票机收到的 n 张纸币的面额。请统计售货机最多能够卖出多少张票。

输入格式
第一行:单个整数 n
第二行:n 个整数表示 n 名客户分别塞入的纸币面额,保证只能是 5,10,20 中的一个。

输出格式
单个整数:表示售票机卖出的最多票数。

数据范围
1≤n≤50,000

样例数据
输入:

8
10 5 5 5 10 10 20 20

输出:

6
说明:
由于没有零钱,无法把票卖给第一个人和最后一个人

思路

记录5元与10元的张数
在接到10元时,利用5元找零,
在接到20元时,优先使用10+5元找零,后用3个5元找零

代码

#include<bits/stdc++.h>
using namespace std;int main(){long long n,c5=0,c10=0,cnt=0,t;cin>>n;for(int i=1;i<=n;++i){cin>>t;if(t==5){cnt++;c5++;}if(t==10&&c5>0){cnt++;c5--;c10++;}if(t==20){if(c5>0&&c10>0){cnt++;c5--;c10--;continue;}if(c5>2){cnt++;c5-=3;}}}cout<<cnt<<endl;return 0;
}

T4 新年灯会

题目描述
新春佳节之际,路上挂起了一排喜气洋洋的大红灯笼,从左至右编号分别为1,2,…,n。但小爱发现,目前有p个灯笼不亮了,很是影响美观。

请你帮助小爱计算,最少修复多少个灯笼,便可使道路上有连续mm个亮着的大红灯笼?

输入格式
输入共两行:
第一行,三个正整数分别表示n,m,p
第二行,p个正整数,表示已经不亮的灯笼编号

输出格式
输出共一行,一个正整数表示答案

数据范围
对于 30% 的数据,1≤m,p≤n≤100
对于 60% 的数据,1≤m,p≤n≤104
对于 100% 的数据,1≤m,p≤n≤105

样例数据

输入:
8 5 3
5 1 8
输出:
1
说明:
只需把5号灯笼修好即可

思路

计算前缀和,然后利用前缀和查找所有区间,计算区间最小值

代码

#include <bits/stdc++.h>
using namespace std;
const int MAXP = 1e5 + 10;int n , m , p , a[MAXP] , s[MAXP];int main(){cin >> n >> m >> p;for(int i = 1; i <= p; ++i)cin >> a[i];sort(a + 1 , a + 1 + p);for(int i = 1; i < p; ++i)s[i] = a[i + 1] - a[i] - 1;s[0] = 0 , s[p] = n - a[p];int l = 1 , r = 1 , temp = 0 , ans = 1e6;while(l <= p){if(temp >= m){ans = min(ans , r - l);temp = temp - s[l - 1] - 1;l++;}else{temp += s[r] + 1;r++;}}cout << ans << endl;return 0;
}

上海市计算机学会竞赛平台.2023年1月月赛丙组相关推荐

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

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

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

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

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

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

  4. 上海市计算机学会竞赛平台(iai.sh.cn)2023三月月赛(丙组)解题报告

    前言 总的来说这次的丙组偏简单,像我这个菜鸟都能在赛场上AK,之前的比赛后两题会有递归搜索并且要有一定的数学思维,但这次并没有什么高深的算法或者数学思维. 一到三题不用多说,是模拟题,可能带点技巧.从 ...

  5. 屏幕比例c++ 上海市计算机学会竞赛平台8月月赛第2题

    题目描述 现实生活中,我们一般把屏幕的宽度和高度的比例,称为屏幕比例,或称为屏幕长宽比.例如分辨率为 1920 * 1080 的屏幕,其长宽比即为 16 : 9 现给定一个屏幕的分辨率,以 X * Y ...

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

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

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

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

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

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

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

    上海市计算机学会月赛 2022年9月月赛丙组 这次题目真的衡水 矩形的周长与面积 机会成本 三色排序 阶乘尾数 前序中序转后序 这次题目真的衡水 文章拖了好久忘记发了 明天初赛祝各位考试顺利有一个好的 ...

最新文章

  1. java rest httpclient_java http请求建议使用webClient,少用RestTemplate,不用HttpClient
  2. 如何创建可变数量的变量?
  3. 皮一皮:当群聊被封,大家是如何聊天的...
  4. mysql insert into 变量+1_如何在MySQL INSERT语句中包含PHP变量
  5. Golang下的Log处理
  6. 你所不知道的日志异步落库
  7. 【Java多线程编程】选号程序
  8. flatmap和map的区别!
  9. Linux查看tar实用程序,linux tar指令常用选项
  10. 我对DevOps的理解
  11. index mysql_mysql 原理~ index的详解
  12. 资料下载:敏捷个人的成长思考.pptx(第1次线下活动2011.04)
  13. Python3入门机器学习经典算法与应用 第3章 更多相关操作
  14. 如何写出优雅的React代码Clean Code vs. Dirty Code
  15. NESSUS简介与安装
  16. “没拿到一毛钱股份的老公”刷爆朋友圈 吃瓜群众雾里看花
  17. 安卓设备的Socket网络通讯例程 (A2) -UI界面适配
  18. 别人笑我太疯癫,我笑他人看不穿。
  19. 前端三刺客---JS(WebAPI)
  20. 怎么样把pdf压缩到最小

热门文章

  1. CentOS 7搭建PHP环境
  2. 台式计算机必备硬件,DIY台式电脑主机六大硬件
  3. 路由器上的usb接口有什么用_USB接口上的小标签有啥用?从“+”号到闪电的奥秘...
  4. Cortex-A73架构解析
  5. 浅谈OI中的提交答案
  6. untiy 2D角色控制器
  7. 无法将“xxx”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  8. Deb包安装如何解决依赖问题
  9. Go语言汇编优化-蒙卓
  10. 电子阅读神器MarginNote 3 Mac中文版 v3.2.2