2023 CSP 题目大意还原(2月4号考的)
2023 CSP 题目大意还原(2月4号)
CSP-J
- 2023 CSP 题目大意还原(2月4号)
- 一些没用的话
- T1 (呃...具体名字忘了)
- 题目大意
- 输入格式
- 输出格式
- 提示
- 样例
- 样例输入1
- 样例输出1
- 样例输入2
- 样例输出2
- 数据范围与约束
- 思路
- T2 (呃...具体名字忘了)
- 题目大意
- 输入格式
- 输出格式
- 样例
- 样例输入1
- 样例输出1
- 样例输入2
- 样例输出2
- 数据范围与约束
- 思路
- T3 (呃...具体名字忘了)
- 题目大意
- 输入格式
- 输出格式
- 样例
- 样例输入1
- 样例输出1
- 样例输入2
- 样例输出2
- 数据范围与约束
- 思路
- T4 (呃...具体名字忘了)
一些没用的话
首先,这次是我第一次正式机试,然后太高兴了就把题目名称全忘了
只记得题目没有意料中的难
T1 (呃…具体名字忘了)
题目大意
打开手机微信,随便找个人点击输入框,即可看见九宫格
小豫豫要用英文写日记
ta打算用九宫格输入
比如
输入 a a a,就要按 1 1 1下数字2键
输入 c c c,就要按 3 3 3下数字2键
输入 h h h,就要按 2 2 2下数字4键
输入 s s s,就要按 4 4 4下数字7键
怎么样,规律都找到了吧,那就不说了
输入格式
第一行一个整数 n ( n ≤ 100 ) n(n\le100) n(n≤100)数据范围好像是 100 100 100吧
接下来 n n n行,每行一个字符串,表示单词 w o r d i word_i wordi
输出格式
一行一个整数表示最少的点击次数
提示
众知所周,输入英文要有空格,所以答案要加上 n − 1 n-1 n−1
样例
样例输入1
1
a
样例输出1
1
提示:按1次1键即可
样例输入2
2
sa
a
样例输出2
7
提示:按4次7键和1次1键和1次空格和1次1键即可,共7次
数据范围与约束
怎么办我忘了,但不用担心,范围很小
所有字母均为小写字母,且每行的单词中不存在空格
思路
这题很简单
可以用26个if语句
也可以用数组,map和其他方式存储次数
最后再加上 n − 1 n-1 n−1即可
#include <bits/stdc++.h>
using namespace std;
int read(){int x;scanf("%d",&x);return x;
}
int n,ans;
string s;
map<char,int>m;
int main(){m['a']=1,m['d']=1,m['g']=1,m['j']=1,m['m']=1,m['p']=1,m['t']=1,m['w']=1,m['b']=2,m['e']=2,m['h']=2,m['k']=2,m['n']=2,m['q']=2,m['u']=2,m['x']=2,m['c']=3,m['f']=3,m['i']=3,m['l']=3,m['o']=3,m['r']=3,m['v']=3,m['y']=3,m['s']=4,m['z']=4;n=read();for(int i=1;i<=n;i++){cin>>s;for(int j=0;j<s.size();j++) ans+=m[s[j]];ans++;}printf("%d",ans-1);return 0;
}
T2 (呃…具体名字忘了)
题目大意
给定一个整数 n n n和一个整数 k k k
输入 n n n个整数 a i a_i ai表示每种药材的数量
再输入 n n n个整数 v i s i vis_i visi表示是否处理过第 i i i个药材
0表示未处理,1表示已经处理
然后让你找一个长度为 k k k的区间
使 a i , a i + 1 , . . . . . . , a k a_i,a_{i+1},......,a_k ai,ai+1,......,ak都处理一下
即使 v i s i , v i s i + 1 , . . . . . . , v i s k vis_i,vis_{i+1},......,vis_k visi,visi+1,......,visk都变为1
最后求出所有已经处理过的药材的最大数量
(只要是 v i s i = 1 vis_i=1 visi=1的,都累加上)
输入格式
一行2个整数 n n n和 k k k 表示 n n n种药材和选取区间长度 k k k
接下来 n n n个整数 a i a_i ai表示每种药材的数量
接下来 n n n个整数 v i s i vis_i visi表示每种药材是否处理过
输出格式
一行一个整数表示答案
样例
样例输入1
3 1
10 5 3
0 0 1
样例输出1
13
选取[1,1]
样例输入2
5 3
10 6 8 1 9
0 0 0 0 1
样例输出2
33
选取[1,3]
数据范围与约束
对于 30 % 30\% 30%的数据,满足 1 ≤ k < n ≤ 1000 1 \le k < n \le1000 1≤k<n≤1000
对于 20 % 20\% 20%的数据,满足 n = k n=k n=k
对于 100 % 100\% 100%的数据,满足 1 ≤ k < n ≤ 1 0 5 , 1 ≤ a i ≤ 1 0 5 1\le k < n \le 10^5,1 \le a_i \le 10^5 1≤k<n≤105,1≤ai≤105
好像是这样的吧…
思路
30 % 30\% 30%
前缀和优化,暴力枚举每个区间,累加即可
时间复杂度: O ( n 2 ) O(n^2) O(n2)
20 % 20\% 20%
《骗分》
特判+累加和即可
时间复杂度: O ( n ) O(n) O(n)
100 % 100\% 100%
我的思路:如果 v i s i = 1 vis_i=1 visi=1,那么就让 s u m + = a i , a i = 0 sum+=a_i,a_i=0 sum+=ai,ai=0
之后求出前缀和,双指针求最大值 m a x x maxx maxx
输出 s u m + m a x x sum+maxx sum+maxx即可
我不知道对不对,应该对吧
时间复杂度: O ( n ) O(n) O(n)
#include <bits/stdc++.h>
using namespace std;
int read(){int x;scanf("%d",&x);return x;
}
const int N=100010;
long long n,k,a[N],p[N];
int vis[N];
long long s,maxx;
int main(){n=read(),k=read();for(int i=1;i<=n;i++) a[i]=read();for(int i=1;i<=n;i++){vis[i]=read();if(vis[i]==1) s+=a[i],a[i]=0;}for(int i=1;i<=n;i++) p[i]=p[i-1]+a[i];int l=1,r=k;for(int i=1;i<=n-k+1;i++){maxx=max(maxx,p[r]-p[l-1]);l++,r++;}printf("%lld",maxx+s);return 0;
}
/*
5 3
10 6 8 1 9
0 0 0 0 1
*/
T3 (呃…具体名字忘了)
题目大意
让一个小球在 n × m n \times m n×m的方阵中进行滚动
方阵 a i j a_{ij} aij有一个大写字母是U,D,L,R,O中的一个
对应了上下左右四个方向
当小球到达 ( x , y ) (x,y) (x,y)时
if(a[x][y]==‘U’) x- -;
if(a[x][y]==‘D’) x++;
if(a[x][y]==‘L’) y- -;
if(a[x][y]==‘R’) y++;
懂得都懂,小球到点 O O O时就到了终点,当然不能超出边界
问:在方阵中每个格子都放小球共有几个小球能到终点
输入格式
第一行 n , m n,m n,m
接下来 n n n行每行 m m m个字符
输出格式
a n s ans ans表示能到终点的小球数量
样例
样例输入1
4 4
RRRD
RDRU
RDRU
RRRO
样例输出1
8
样例输入2
1 1
O
样例输出2
1
数据范围与约束
对于 30 % 30\% 30%的数据,满足 1 ≤ n < m ≤ 100 1 \le n < m \le100 1≤n<m≤100
对于 100 % 100\% 100%的数据,满足 1 ≤ n < m ≤ 2000 1\le n < m \le 2000 1≤n<m≤2000
好像是这样的吧…
思路
30 % 30\% 30%
枚举每个点,做dfs
就这么简单
时间复杂度: O ( n 2 m 2 ) O(n^2m^2) O(n2m2)
100 % 100\% 100%
但还有更简单的,用逆向思维,从终点 O O O出发查找相邻的哪些点能通入终点,之后再dfs那个点即可
时间复杂度: O ( n m ) O(nm) O(nm)
#include <bits/stdc++.h>
using namespace std;
char a[1010][1010];
bool vis[1010][1010];
int ans,n,m,xx,yy;
int read(){int x;scanf("%d",&x);return x;
}
void dfs(int x,int y){if(vis[x][y]) return;vis[x][y]=1;//可以不考虑边界ans++;if(a[x][y-1]=='R') dfs(x,y-1);if(a[x][y+1]=='L') dfs(x,y+1);if(a[x-1][y]=='D') dfs(x-1,y);if(a[x+1][y]=='U') dfs(x+1,y);
}
int main(){n=read(),m=read();for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){cin>>a[i][j];if(a[i][j]=='O') xx=i,yy=j;} dfs(xx,yy);printf("%d",ans);return 0;
}
/*
4 4
RRRD
RDRU
RDRU
RRRO
*/
T4 (呃…具体名字忘了)
T4由于题目长度过长,且难度过大,导致作者没心情写
所以一会在写…
放心,我保证说到做到
2023 CSP 题目大意还原(2月4号考的)相关推荐
- CSP题目:小明种苹果树
小明种苹果树 CSP题目 题目描述:小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆.为了保证苹果的品质,在种植过程中要进行疏果操作.为了更及时地完成疏果操作,小明会不时地检查每棵树的状态,根据 ...
- 武汉9月6号医疗器械博览会-医疗影像设备展览会|2023武汉国际医疗器械展览会
武汉9月6号医疗器械博览会-医疗影像设备展览会|2023武汉国际医疗器械展览会 时 间:2023年9月6-8日 地 点:武汉国际博览中心(汉阳区鹦鹉大道) 展会前景: 医疗器械行业涉及医学.机械. ...
- 上海法登阀门受邀出席2023年3月30号济南生物发酵展
上海法登阀门受邀出席2023年3月30号济南生物发酵展,3月30-4月1号山东国际会展中心与您相约! 展位号:3号馆B57 生物发酵展周彬131 参展6714 参观4125 VATTEN创建于德国萨尔 ...
- CSP题目:跳一跳小游戏
CSP 题目 问题描述:近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束. 如果跳到了方块上,但没有跳 ...
- 2023 年 3 月公众号深圳卫健委历史文章无水印封面表情包合集来了
每个月我都会更新一次公众号深圳卫健委的封面表情包图,无水印,欢迎收藏. 2023 年公众号深圳卫健委历史文章无水印封面表情包合集,分享到网盘了 2022 年公众号深圳卫健委所有历史文章无水印封面表情包 ...
- 中南4月16号网络同步赛
题目大意: 1.求方程x^a==b(mod N)解的数量,N是奇数 2.按照方程x^a==b(mod N)的解指示信鸽放飞时间将信鸽分组,每一组不少于k个信鸽,求总延迟最少的分组方法 大概做法: 1. ...
- 2023年湖北建筑安全员ABC报考,来考网
2023年湖北建筑安全员ABC报考,来考网 2023年湖北建筑安全员ABC报考,来考网 2023年湖北建筑安全员ABC证每月都有报名,每个月都有考试安排,安全员报考联系来考网. 虽然每个月都可以报名安 ...
- 2022年5月8号补题
title: 5月8号补题 date: 2022-05-08 10:37:59 author: "胡耀文" categories: "算法" tags: &qu ...
- 芯讯通1月28号晚上八点直播-C-V2X产业链生态思考,关注易贸智慧互联公众号免费收听...
演讲人:严永杰 芯讯通SIMCom 汽车车载业务负责人,主要负责从事车载前装通信/V2X市场业务合作和推广,对接整车企业,Tire1 企业的业务开拓以及项目合作,同时积极参与智能网联汽车联盟C-V2X ...
最新文章
- 好多Javascript日期选择器呀-6
- 一个简单的Apriltag,数字,动物水果分类器
- python中struct_Python的Struct模块,用法以及个人理解
- linux某个目录环境变量,在linux下加环境变量或者是把某个目录加到环境变量
- linux 下安装nodejs,CentOS 6.5 系统
- Linux有问必答:怎么用CheckInstall从源码创建一个RPM或DEB包
- DirectX11 With Windows SDK--12 深度/模板状态、平面镜反射绘制
- 楷书和草书哪幅更具有艺术性?
- 数学的记号(notation)
- 2017.11.21 MS Power BI training
- 风雨秋招路-CV太难了-记得复盘
- java 铁路管理信息系统_基于Java铁路售票系统的设计与实现(含录像)(SqlServer)
- python矩阵乘法分治算法_详解矩阵乘法中的Strassen算法
- R语言爬虫:贝壳网租房信息
- Maven历史版本下载
- JZOJ5939. 【NOIP2018模拟10.30】阻击计划
- 可以查看计算机主要自启动项的技术,电脑中怎么查看启动项
- 想和程序员小哥哥做朋友
- Linux ip forward转发问题总结
- Casbin入选2022 Google编程之夏