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号考的)相关推荐

  1. CSP题目:小明种苹果树

    小明种苹果树 CSP题目 题目描述:小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆.为了保证苹果的品质,在种植过程中要进行疏果操作.为了更及时地完成疏果操作,小明会不时地检查每棵树的状态,根据 ...

  2. 武汉9月6号医疗器械博览会-医疗影像设备展览会|2023武汉国际医疗器械展览会

    武汉9月6号医疗器械博览会-医疗影像设备展览会|2023武汉国际医疗器械展览会 时 间:2023年9月6-8日 地 点:武汉国际博览中心(汉阳区鹦鹉大道) ​ 展会前景: 医疗器械行业涉及医学.机械. ...

  3. 上海法登阀门受邀出席2023年3月30号济南生物发酵展

    上海法登阀门受邀出席2023年3月30号济南生物发酵展,3月30-4月1号山东国际会展中心与您相约! 展位号:3号馆B57 生物发酵展周彬131 参展6714 参观4125 VATTEN创建于德国萨尔 ...

  4. CSP题目:跳一跳小游戏

    CSP 题目 问题描述:近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束. 如果跳到了方块上,但没有跳 ...

  5. 2023 年 3 月公众号深圳卫健委历史文章无水印封面表情包合集来了

    每个月我都会更新一次公众号深圳卫健委的封面表情包图,无水印,欢迎收藏. 2023 年公众号深圳卫健委历史文章无水印封面表情包合集,分享到网盘了 2022 年公众号深圳卫健委所有历史文章无水印封面表情包 ...

  6. 中南4月16号网络同步赛

    题目大意: 1.求方程x^a==b(mod N)解的数量,N是奇数 2.按照方程x^a==b(mod N)的解指示信鸽放飞时间将信鸽分组,每一组不少于k个信鸽,求总延迟最少的分组方法 大概做法: 1. ...

  7. 2023年湖北建筑安全员ABC报考,来考网

    2023年湖北建筑安全员ABC报考,来考网 2023年湖北建筑安全员ABC报考,来考网 2023年湖北建筑安全员ABC证每月都有报名,每个月都有考试安排,安全员报考联系来考网. 虽然每个月都可以报名安 ...

  8. 2022年5月8号补题

    title: 5月8号补题 date: 2022-05-08 10:37:59 author: "胡耀文" categories: "算法" tags: &qu ...

  9. 芯讯通1月28号晚上八点直播-C-V2X产业链生态思考,关注易贸智慧互联公众号免费收听...

    演讲人:严永杰 芯讯通SIMCom 汽车车载业务负责人,主要负责从事车载前装通信/V2X市场业务合作和推广,对接整车企业,Tire1 企业的业务开拓以及项目合作,同时积极参与智能网联汽车联盟C-V2X ...

最新文章

  1. 好多Javascript日期选择器呀-6
  2. 一个简单的Apriltag,数字,动物水果分类器
  3. python中struct_Python的Struct模块,用法以及个人理解
  4. linux某个目录环境变量,在linux下加环境变量或者是把某个目录加到环境变量
  5. linux 下安装nodejs,CentOS 6.5 系统
  6. Linux有问必答:怎么用CheckInstall从源码创建一个RPM或DEB包
  7. DirectX11 With Windows SDK--12 深度/模板状态、平面镜反射绘制
  8. 楷书和草书哪幅更具有艺术性?
  9. 数学的记号(notation)
  10. 2017.11.21 MS Power BI training
  11. 风雨秋招路-CV太难了-记得复盘
  12. java 铁路管理信息系统_基于Java铁路售票系统的设计与实现(含录像)(SqlServer)
  13. python矩阵乘法分治算法_详解矩阵乘法中的Strassen算法
  14. R语言爬虫:贝壳网租房信息
  15. Maven历史版本下载
  16. JZOJ5939. 【NOIP2018模拟10.30】阻击计划
  17. 可以查看计算机主要自启动项的技术,电脑中怎么查看启动项
  18. 想和程序员小哥哥做朋友
  19. Linux ip forward转发问题总结
  20. Casbin入选2022 Google编程之夏

热门文章

  1. JAVA实现发送HTTPS请求(SSL双向认证)
  2. android之在线音乐播放器
  3. app登陆token设计
  4. springboot接入支付宝app支付总结
  5. 【转载】也谈Flash mmorpg地图问题
  6. 【NOI2008】 志愿者招募
  7. python热力图实现
  8. 对话朱嘉明:元宇宙的商业前景、技术路径和治理规则
  9. 好程序员web前端教程分享js中的模块化一
  10. 2019 年度最受欢迎中国开源软件