2021CCPC女生专场(山东淄博)总结

2023-10-29 08:30

本文主要是介绍2021CCPC女生专场(山东淄博)总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2021CCPC女生专场(山东淄博)总结

补题链接
258支队伍报名,257支队伍交并且过至少1题,排名155及以上铜,78及以上银,26及以上金。
然而这场比赛,排名36-184的队伍都是5题,5题贯穿银铜铁,也就是看手速。
5题:Time<=270 银,270<Time<=539 铜,Time>539 铁
终榜
图1 终榜-5题也没截全

K 音乐游戏

它真的很签到,读入时统计 ‘-’ 的个数就好了

#include<bits/stdc++.h>
using namespace std;
int n;
char s;
int ans;
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){getchar();for(int j=1;j<=6;j++){scanf("%c",&s);if(s=='-')ans++;}}cout<<ans<<endl;return 0;
}

D 修建道路

由于题目中i-j相连的费用是从i到j连续区间的最大费用,那么考虑依次连成一串是最小费用的(跨过某个点连接会取区间最大,肯定不如取每两个点最大的费用小)
图2
由于是连续区间取最大,别想复杂了,跟最小生成树没关系。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
int a[200010];
int ans;
signed main(){scanf("%lld",&n);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);if(i>=2){int x=max(a[i-1],a[i]);ans+=x;}}cout<<ans<<endl;return 0;
}

A 公交线路

根据字符个数和判断正反两种顺序是不是都可以,都可以就不能确定坐没坐反,否则要正序也正序对就对,要逆序也逆序也对,否则就不对。
比赛的时候两个方向都不对没考虑是否合法,反正直接扔到else里了。

#include<bits/stdc++.h>
using namespace std;
int n,x,y;
int k[15],m,p[15];
bool f1,f2;
int main(){scanf("%d %d %d",&n,&x,&y);for(int i=1;i<=n;i++)scanf("%d",&k[i]);scanf("%d",&m);f1=f2=true;for(int i=1;i<=m;i++){scanf("%d",&p[i]);int x1=x+i,x2=x-i;if(!f1);else if(x1<=n&&k[x1]==p[i]);else f1=false;if(!f2);else if(x2>=1&&k[x2]==p[i]);else f2=false;}if(y>x){if(f1&&f2)cout<<"Unsure"<<endl;else if(f1)cout<<"Right"<<endl;else cout<<"Wrong"<<endl;}else{if(f1&&f2)cout<<"Unsure"<<endl;else if(f2)cout<<"Right"<<endl;else cout<<"Wrong"<<endl;}return 0;
}

G 3G网络

求极限,比较早就推出来了,但是当时在写A,最后的结论 r->∞ 时,圆相当于几乎重合,则ans=1/n;

#include<bits/stdc++.h>
using namespace std;
double n;
double ans;
int main(){scanf("%lf",&n);for(int i=1;i<=n;i++){int x,y;scanf("%d %d",&x,&y);}ans=1.0/n;printf("%.15f\n",ans);return 0;
}

I驾驶卡丁车

它就是个模拟,题很简单,但我们卡了很久是在循环和读入上。记得最开始车的位置上没障碍,并且防止走出地图。
图3
方向对应成数字确定好后,2,4,6,8的防止“穿模”现象需要有个判断:
左上: (xi-1,yi) (xi,yi-1)
左下: (xi+1,yi) (xi,yi-1)
右下: (xi+1,yi) (xi,yi+1)
右上: (xi-1,yi) (xi,yi+1)

#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[60][60];
int q;
int xi,yi;
int f=1,v;
int main(){scanf("%d %d",&n,&m);for(int i=1;i<=n;i++){getchar();for(int j=1;j<=m;j++){char x;scanf("%c",&x);if(x=='.')a[i][j]=0;else if(x=='*'){a[i][j]=0;xi=i;yi=j;}else if(x=='#')a[i][j]=1;}}scanf("%d",&q);getchar();for(int i=1;i<=q;i++){char x;scanf("%c",&x);if(x=='L')f=f%8+1;else if(x=='R'){if(f==1)f=8;else f--;}else if(x=='U')v++;else if(x=='D')v=max(v-1,0);bool flag=false;int j;if(f==1){for(j=1;j<=v;j++){int x=xi-1,y=yi;if(x<1){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}xi=x;yi=y;}}else if(f==3){for(j=1;j<=v;j++){int x=xi,y=yi-1;if(y<1){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}xi=x;yi=y;}}else if(f==5){for(j=1;j<=v;j++){int x=xi+1,y=yi;if(x>n){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}xi=x;yi=y;}}else if(f==7){for(j=1;j<=v;j++){int x=xi,y=yi+1;if(y>m){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}xi=x;yi=y;}}else if(f==2){for(j=1;j<=v;j++){int x=xi-1,y=yi-1;if(x<1||y<1){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}else if(xi-1>=1&&yi-1>=1){if(a[xi-1][yi]==1&&a[xi][yi-1]==1){v=0;flag=true;break;}}xi=x;yi=y;}}else if(f==4){for(j=1;j<=v;j++){int x=xi+1,y=yi-1;if(x>n||y<1){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}else if(xi+1<=n&&yi-1>=1){if(a[xi+1][yi]==1&&a[xi][yi-1]==1){v=0;flag=true;break;}}xi=x;yi=y;}}else if(f==6){for(j=1;j<=v;j++){int x=xi+1,y=yi+1;if(x>n||y>m){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}else if(xi+1<=n&&yi+1<=m){if(a[xi+1][yi]==1&&a[xi][yi+1]==1){v=0;flag=true;break;}}xi=x;yi=y;}}else if(f==8){for(j=1;j<=v;j++){int x=xi-1,y=yi+1;if(x<1||y>m){v=0;flag=true;break;}if(a[x][y]==1){v=0;flag=true;break;}else if(xi-1>=1&&yi+1<=m){if(a[xi-1][yi]==1&&a[xi][yi+1]==1){v=0;flag=true;break;}}xi=x;yi=y;}}if(flag)printf("Crash! %d %d\n",xi,yi);else printf("%d %d\n",xi,yi);}return 0;
}

总结

A、G、I几乎是三人同时开的,一人看一道,我当时过4题之前我就开始盯I题的模拟,那时候I题大概也就两队过了,反正比赛最开始打的非常顺,除了中间断网两次跟监考老师沟通重新连接检查证件耽误了几分钟之外,每道题学妹敲完让我看一遍代码再交耽误了两分钟,其余真的没耽误时间。
总结下来开题顺序很正确,思路也没跑偏,最重要的是学妹手速虽然不快,但实现是真的准确,5题都一遍过没有罚时,能排到50多名挺开心的啦。
最后3小时10分钟轮着想B和C但都没写出来,罚坐3小时。

这篇关于2021CCPC女生专场(山东淄博)总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299475

相关文章

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)