吉林省CCPC与全国邀请赛(东北地区赛)游记

总述:

        本次赛段共获得一银(吉林省赛)、一铜(东北地区赛)、一铁(全国邀请赛的成绩)。总体成绩跟校内赛的情况相比队伍状态与发挥水准都有提升),但也体现出很多不足(

吉林省赛:

Day -5

        队伍经历了两次校内赛的实力后,所有人都放的比较开(感觉校内赛的时候,思维有些过于保守了)。作为队长校内赛最后一场我发挥的十分不佳,一道题的关键性思路也没有切掉,而且对于本应该过掉的题犯了一些重大的低级错误导致队伍失利。回去后我们队内开了一次会,大家把自己对队内的问题都提了出来(队内交流不佳,开题入wa掉后没有入能够接上思路帮忙改错等等),之后大家把最近的在水平范围内没能赛时过掉的题目都补掉了,大家也没什么压力,平常练手感的同时,就是心平气和的等待比赛。

Day 0

        热身赛当场:赛内的交流相较于之前流畅了许多,过掉两道签到后,大家一起吧我看出C有规律,之后GJ在我写上的暴力代码上面找到循环节,我再优化了一下就过掉了。热身赛也是23名收尾,感觉状态十分火热

  Day 1

        省赛正式赛当天:我先上来秒掉了签到题,之后LCM大哥交了两发过掉了F(没开long long)同时注意到队伍没有写底板,于是乎我花了2分钟写了个泛用性较强的底板,方便大家后续开题,之后GJ直接口胡了一遍G我们听完没问题后,就给他一遍过了。这时候看到大量队伍都开出来了D(萌萌小数论),这是我的长相但是看了半个小时都没什么思路,打完一遍表没看出什么规律,LCM突然提出了一个“大胆的设想”:答案不会与左区间相差4,我觉得不对,但是照着这个方向去努力,发现答案不会与左区间不会相差1000,于是就写个一个萌萌小暴力,在GJ与LCM包括我yan_jun的质疑下通过了

我嘞个奇迹与你

之后准备开L,GJ首先证出来了都是奇数的情况是2^{n+m-2},而我证出来了一奇一偶的情况是2^{even-1},之后和并一下再写出全是偶数是为 1,L就顺利通过了。

最后的C我想出了不管怎么样,所有的数都会以和或积的形式出现,GJ有之后把环装公式补完C就给切了。

之后LCM与GJ在开A,而我去写E的矩阵快速幂的暴力,最后一个小时他俩都没有讨论出什么,这时候我临去撤硕前瞟一眼GJ与LCM的草纸,感觉可以辗转相除来做,就和他俩简单交流了下思路,突然发现芝士天才想法,之后由GJ操刀,可惜最后没能码过去。

最后滚榜后取得了29名的成绩(银牌),感觉大家更自信粒,但是对day 2也是充满敬意。

Day 2

先放排名

你敢信这是一个队打的(诗人握持)

依旧是我先开的签到;

然后GJ开B,但是熬了40分钟没能过掉,此时我看完K已经有了完整贪心思路,但是LCM开出了F说也是小范围模拟签到,就让他先写了。

     转折点开始了

之后我和GJ开出了I题,但是LCM这是已经wa了2发了,其实已经打两天了,对于我这种身体不是很好的入来说,有点折磨了(右胸开始剧烈疼痛,耳鸣的厉害),这时候我的心态有点崩了,但看着队友确实比较愧疚也没好说什么就是把让GJ和他再看看代码,我单独开K,一发就过掉了。心情好了不少,于是又单开I,这时候已经过去块两个小时了,我承认我忌炎了,挂了两发,之后赛方说题面有问题和GJ又讨论了一下就过掉了。

最后两个半小时,我开出了A的线段树二分的全部思路,和H的二分的部分想法(这时候已经入已经快没了)。LCM和GJ还在开F,最后是交了8发也没能过去,这时候队内有点慌了,我认为F一定有很大问题他们没发现,就去单开A(code blocks崩了导致我疼的更厉害了),但是没能过掉,赛后发现是我在区间范围上的处理有点糙了,导致区间算重了。之后让LCM开H,但是这时我才发现LCM其实对于二分问题的处理是存在很大问题,导致我们眼前一黑,又挂了4发,day 2的比赛遗憾一铜一铁。

总结:

day 2后第二天队内又开了一场小会,队友觉得队内训练不足,但我觉得是我们在赛时的对问题的处理过于糙了,而且day 2的赛时进程相较于day 1其实交流上少了许多,导致了有队友单开题被反杀没人能补伤害的局面,再加上一共3天奔波,大家确实累了,赛内的一些内容以及突发的状况(身体不适,选择开题错误以及开题人员选择错误等等)都没有处理好导致了队伍失利,身为队长这是我的失职。

写在最后:

相较于高中那个天天将暴力写到极致都不去写正解的yan_jun来说,现在的yan_jun越来越勇敢了,敢于去大胆的开正解,并敢于在赛场上去凹正解,一次次突破在赛场上去写那些之前之前想都不敢想的算法,这正是我这一年来的改变。

也许就如艾克说的:“我宁愿犯错,也不愿什么都不做。”ACM的竞赛模式更能激发选手去突破自我,虽然我们有时要为这种所谓的勇敢去复出代价,但这种能力与体验是成绩无法与之比拟的

最后补题:

A - GD 终极节奏实验室:

将线段树优化为st表,跑的更快了(少了一层log),优化了区间重复问题,改成左大右等即可,很巧妙

#include<bits/stdc++.h>
#define ll long long
#define inl inline
#define re register
using namespace std;
inl int read() {int sum=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)) {sum=(sum<<3)+(sum<<1)+(c^48);c=getchar();}return sum*f;
}
const int N=1e5+10;
int minn[N][20];
int mygcd[N][20];
inl int gcd(int a,int b) {if(a%b==0) return b;return gcd(b,a%b);
}
int Log[N];
struct node{int minn,mygcd;
}tree[N<<2];
int a[N],n;
inl int queryminn(int k,int l,int r) {if(l>r) return 2e9;int tmp=Log[r-l+1];return min(minn[l][tmp],minn[r-(1<<tmp)+1][tmp]);
}
inl int querygcd(int k,int l,int r) {if(l>r) return 1000000007;int tmp=Log[r-l+1];return gcd(mygcd[l][tmp],mygcd[r-(1<<tmp)+1][tmp]);
}
ll ans=0;
inl void solve(int i) {int l1,r1;int l=i,r=n;while(l<=r) {int mid=(l+r)>>1;int tmp1=queryminn(1,i,mid);int tmp2=querygcd(1,i,mid);if(tmp1==a[i]&&tmp1==tmp2) {r1=mid;l=mid+1;}else {r=mid-1;}}l=1,r=i;while(l<=r) {int mid=(l+r)>>1;int tmp1=queryminn(1,mid,i-1);int tmp2=querygcd(1,mid,i);if(tmp1>a[i]&&tmp2==a[i]) {l1=mid;r=mid-1;}else {l=mid+1;}}ans=ans+1ll*(i-l1+1)*(r1-i+1);return;
}
inl void init() {for(re int i=1;i<=n;i++) {minn[i][0]=a[i];mygcd[i][0]=a[i];}for(re int i=1;i<=Log[n];i++) {for(re int j=1;j+(1<<i)-1<=n;j++) {minn[j][i]=min(minn[j][i-1],minn[j+(1<<(i-1))][i-1]);mygcd[j][i]=gcd(mygcd[j][i-1],mygcd[j+(1<<(i-1))][i-1]);}}
}
int main() {n=read();for(re int i=1;i<=n;i++) a[i]=read();Log[0]=-1;for(re int i=1;i<=100000;i++) Log[i]=Log[i/2]+1;init();for(re int i=1;i<=n;i++) {solve(i);}cout<<ans<<endl;return 0;
}

F - 年少的誓约Ⅱ

问题不难,就是签到题,但是出题人的巧在于如果我们拿角度去老老实实做就没问题,而如果我们使用百分比去操作就会被卡精度导致挂掉(我做的时候也挂了一发),而队友是太着急了导致对于目标时间的处理有问题(虽然改过来也是wa)

#include<bits/stdc++.h>
#define ll long long
#define inl inline
#define re register
using namespace std;
inl int read() {int sum=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)) {sum=(sum<<3)+(sum<<1)+(c^48);c=getchar();}return sum*f;
}
inl void solve() {int x0=read(),y0=read(),x1=read(),y1=read(),x2=read(),y2=read();pair<int,int> tmp1={x1,y1},tmp2={x2,y2},ans1;double ans=2e9;double init1=(x0*30+y0*0.5),init2=y0*6.0;while(tmp1<=tmp2) {int a=tmp1.first,b=tmp1.second;double res1=((a*30.0)+b*0.5);double res2=(b*6.0);double yan=min(abs(init1-res1),abs(360-abs(init1-res1)));double jun=min(abs(init2-res2),abs(360-abs(init2-res2)));if(yan+jun<ans) {ans=yan+jun;ans1={a,b};}tmp1.second++;if(tmp1.second==60) {tmp1.first++;tmp1.second=0;}}cout<<ans1.first<<" "<<ans1.second<<endl;return;
}
int main() {int T=read();while(T--) {solve();}
}

H - 王国------迁移

这道题我看来没什么好说的,就是加强二分的处理就过了(要开long long)

#include<bits/stdc++.h>
#define int long long
#define inl inline
#define re register
using namespace std;
inl int read() {int sum=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)) {sum=(sum<<3)+(sum<<1)+(c^48);c=getchar();}return sum*f;
}
const int N=2e5+10;
int n,a[N],b[N],c[N],sum;
inl bool check(int tot) {int tmp=0;for(re int i=1;i<=n;i++) {tmp+=tot/c[i];}if(sum>tmp) return 0;for(re int i=1;i<=n;i++) {if(b[i]>tmp-tot/c[a[i]]) return 0;}return 1;
}
inl void solve() {sum=0;n=read();for(re int i=1;i<=n;i++) a[i]=read();for(re int i=1;i<=n;i++) b[i]=read(),sum+=b[i];for(re int i=1;i<=n;i++) c[i]=read();int l=0,r=1e18;while(l<r) {int mid=(l+r)>>1;if(check(mid)) {r=mid;}else {l=mid+1;}}cout<<r<<endl;
}
signed main() {int T=read();while(T--) {solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「Python教案」循环语句的使用

课程目标 1&#xff0e;知识目标 能使用for循环和while循环设计程序。能使用循环控制语句&#xff0c;break、continue、else设计程序。能使用循环实际问题。 2&#xff0e;能力目标 能根据需求合适的选择循环结构。能对嵌套循环代码进行调试和优化。能利用循环语句设计&am…

OpenCV---findCountours

一、基本概念与用途 findContours是OpenCV中用于在二值图像中查找轮廓的核心函数。轮廓作为连续的点集&#xff0c;能够精确勾勒出物体的边界&#xff0c;广泛应用于目标检测、形状分析、图像分割等领域。 函数核心价值 目标检测&#xff1a;通过轮廓定位图像中的物体&#…

20250523-BUG:无法加载“GameLib/Framework.h“头文件(已解决)

BUG&#xff1a;无法加载"GameLib/Framework.h"头文件&#xff08;已解决&#xff09; 最近在打开新的C项目时报了这个错&#xff0c;我是按照以下步骤来排除的BUG&#xff0c;希望对您有所帮助~ 检查【C/C】-【附加包含目录】中的路径有无问题&#xff0c;一般需要加…

商品条形码查询接口如何用C#进行调用?

一、什么是商品条码查询接口&#xff1f; 1974年6月26日&#xff0c;美国俄亥俄州的一家超市首次使用商品条码完成结算&#xff0c;标志着商品条码正式进入商业应用领域。这项技术通过自动识别和数据采集&#xff0c;极大提升了零售行业的作业效率&#xff0c;减少了人工录入错…

SD07_NVM的安装及相关操作

以下是在 Windows 系统 上使用 NVM&#xff08;Node Version Manager&#xff09; 管理多个 Node.js 版本的详细步骤&#xff0c;从零开始操作&#xff1a; 一、准备工作 卸载旧版 Node.js 打开 控制面板 → 程序和功能&#xff0c;找到已安装的 Node.js 和 npm&#xff0c;彻底…

OSI 深度安全防御体系架构深度剖析

文章目录 前言什么是 OSI 深度安全防御体系架构各层的安全防御措施物理层数据链路层网络层传输层会话层表示层应用层 OSI 深度安全防御体系架构的优势全方位防护深度防御灵活性和可扩展性 总结 前言 大家好&#xff0c;我是沛哥儿。今天咱们来深入探讨一下 OSI 深度安全防御体…

大模型应用:开发移动端页面个人中心页面提示词

角色 你是一个移动端web页面开发专家&#xff0c;擅长开发移动端页面&#xff0c;使用原生web技术&#xff08;html&#xff0c;css,js&#xff09;&#xff0c;开发的页面针对手机移动端友好 技术栈 使用基础的Html&#xff0c;CSS&#xff0c;JavaScript方案实现&#xff…

从零到一:影刀RPA学习者的破局之路

1. 学习目标与预期差距分析 1.1 官方课程学习目标梳理 影刀RPA的官方课程旨在帮助学习者掌握RPA&#xff08;机器人流程自动化&#xff09;的基本概念、操作技能和常见应用场景。课程内容通常包括&#xff1a; RPA基础理论&#xff1a;介绍RPA的定义、优势、发展历程以及与其…

计算机组成与体系结构:硬盘驱动器(Hard Disk Drives)

目录 &#x1f4bd; 硬盘驱动器&#xff08;HDD&#xff09;&#xff1a;传统的固定辅助存储设备 什么是硬盘驱动器&#xff1f; 硬盘的工作原理 HDD 的物理结构 Disk Pack&#xff08;盘组&#xff09; Tracks&#xff08;磁道&#xff09; Cylinders&#xff08;柱面&…

GitCode镜像仓库批量下载开发实录

GitCode作为国内领先的开源代码托管平台&#xff0c;其镜像仓库批量下载功能对开发者生态建设与开源协作效率提升具有关键价值。本文基于企业级代码资产管理需求&#xff0c;系统记录从需求分析到生产部署的全周期开发实践。内容覆盖镜像仓库同步机制设计、分布式任务调度优化、…

基线配置管理:为什么它对网络稳定性至关重要

什么是基线配置&#xff08;Baseline Configuration&#xff09; 基线配置&#xff08;Baseline Configuration&#xff09;是经过批准的标准化主设置&#xff0c;代表所有设备应遵循的安全、合规且运行稳定的配置基准&#xff0c;可作为评估变更、偏差或未授权修改的参考基准…

AJAX get请求如何提交数据呢?

在 AJAX 中使用 GET 请求提交数据&#xff0c;主要通过 在 URL 后拼接查询参数 的方式实现&#xff0c;具体步骤如下&#xff1a; 1.构造带参数的 URL 将数据以 键值 的形式拼接在 URL 后&#xff0c;多个参数间用 & 连接。例如&#xff1a; var url "https://exa…

基于FashionMnist数据集的自监督学习(对比式自监督学习SimCLR算法)

目录 一&#xff0c;对比式自监督学习 1.1 简介 1.2 常见算法 1.2.1 SimCLR (2020) 1.2.2 MoCo (2020) 1.2.3 BYOL (2021) 1.2.4 SimSiam (2021) 1.2.5 CLIP (2021) 1.2.6 DINO (2021) 1.2.7 SwAV (2020) 二&#xff0c;代码逻辑分析 2.1 整体目标与流程 2.2 数据…

Linux:基础指令与内涵理解(下)与权限

1.mv 作用&#xff1a;将文件移动、文件重命名 语法&#xff1a; mv (选项) 源文件/目录 目标文件/目录 &#xff08;1&#xff09;将文件/目录移动到当前目录的新文件/目录&#xff08;也就是重命名操作&#xff09; 这里我们mv了test.txt文件到当前目录下当前并不存在的ln.tx…

卷积神经网络(CNN)入门学习笔记

什么是 CNN&#xff1f; CNN&#xff0c;全称 卷积神经网络&#xff08;Convolutional Neural Network&#xff09;&#xff0c;是一种专门用来处理图片、语音、文本等结构化数据的神经网络。 它模仿人眼识别图像的方式&#xff1a; 从局部到整体&#xff0c;一步步提取特征&a…

c#基础07(调试与异常捕捉)

文章目录 调试与异常捕捉调试异常处理C#中的异常类异常处理抛出对象 调试与异常捕捉 很多时间&#xff0c;写代码不能一撸到底&#xff0c;中间都是经历过无数次的调试&#xff0c;才能正常正确的运行起来。.Net调试有很多方法和技巧。 调试 在C#中程序调试主要指在Visual S…

一种比较精简的协议

链接地址为&#xff1a;ctLink: 一个比较精简的支持C/C的嵌入式通信的中间协议。 本文采用的协议格式如下 *帧头 uint8_t 起始字节&#xff1a;0XAF\ *协议版本 uint8_t 使用的协议版本号&#xff1a;当前为0X01\ *负载长度 uint8_t 数据段内容长…

【windwos】文本编辑器Notepad++ 替代品Notepad--

一、N和N--对比介绍 曾经备受推崇的「Notepad」曾是Windows上的经典代码编辑器。然而&#xff0c;作者的一些政治言论已经让它被广大中国用户抛弃。 一个名为「Notepad--」的新编辑器&#xff0c;也是开源免费&#xff0c;功能和实用性也在尽可能接近。与此同时&#xff0c;「N…

贪心算法套路模板+详细适用场景+经典题目清单

1. 排序 贪心选择 适用场景&#xff1a; 任务调度问题&#xff1a;需要安排多个任务&#xff0c;尽量完成更多任务或最小冲突。 区间调度问题&#xff1a;选出最多互不重叠的区间。 区间覆盖问题&#xff1a;用最少区间覆盖某个范围。 合并区间问题&#xff1a;合并重叠区…

Qt QPaintEvent绘图事件painter使用指南

绘制需在paintEvent函数中实现 用图片形象理解 如果加了刷子再用笔就相当于用笔画过的区域用刷子走 防雷达&#xff1a; 源文件 #include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QPainter> Widget::Widget(QWidget…