首页 > 其他分享 >PRE-PCOI Mini Comp 1

PRE-PCOI Mini Comp 1

时间:2023-09-21 23:55:42浏览次数:40  
标签:PRE Mini 00 cdot Comp sum 02 区间 100

PRE-PCOI Mini Comp 1

开始用了15分钟把四道题都看了。

先看的第一题,感觉不难,应该可以拿满、已经有了一定的思路,想先做出来,但还是决定看后面的题。

第二第三题大致把题目看了一下,看懂题目之后,发现第二题的n和q都是1e5的级别,直觉认为解法是nlogn的,打算后面再做。

第三题是数学题,由于以前常遭数学题折磨,因此也打算放到后面才做。

早就想到难度可能不是递增的,但没想到差距会那么大,第四题瞄一眼就想到了做法,直接考虑胜者树,虽说是交互题,但也有了一定的经验,不至于手忙脚乱。

今天的题没怎么看subtask,直接就开始做了。

16:43的时候就把第四题很轻松地做出来了,然后就开始想第一题。

第一题想到很直接的做法就是二进制分解,考虑直接把1,2,4等全部表示出来,然后求和

很明显超步数了,看一下subtask,前面几个都是二的幂次,直接疯狂自增即可

然后就是28,分解二进制之后发现一步多余的都不能有,也就是说不可以进行一些意义不大的操作,为了处理这个花了很久。

中间代码写得又很丑,调了很久。

接下来便是16383,发现相较于偶数来说,奇数不太好处理,于是就考虑奇数偶数分开处理。

后面想到一种方法,比如从28为结尾,一步步往前可以是14,7,6,3,2,1,也就是一个乘二或者加一的操作

于是考虑重构代码,又花了一段时间

写完后发现对于\(2^n-1\)的情况会严重超出步数,但此时已经过了一个半小时,18:21了,于是便直接交上去打算后面再做了。

看第二题,已经准备使用线段树和莫队等算法了,于是认怂先跳过(宁做数学题不做数据结构)

第三题,设每个的答案分别为\(k_1,k_2,k_3\)等。操作和为\(sum\),于是就有\(a_1-k_1x+(sum-k_1)y\),再写一个\(a_2-k_2x+(sum-k_2)y\)

k是非负数,我们令这两个相等(题目要求),然后我们会有\(a_1-k_1x+(sum-k_1)y=a_2-k_2x+(sum-k_2)y\)

有\(a_1-k_1x+sum\cdot y-k_1\cdot y=a_2-k_2x+sum\cdot y-k_2\cdot y\)

有\(a_1-k_1x-k_1\cdot y=a_2-k_2x-k_2\cdot y\)

有\(a_1-k_1(x+y)=a_2-k_2(x+y)\)

越做到后面越觉得不可思议,No的情况直接比较一下所有a模(x+y)的余数即可

Yes的情况就是让最小的a的k为0,剩下的k都可以算出来

然后就过了....

18:38Acceptded T3

那就去面对第二题吧

已经准备了去拿subtask了

思考一下,我首先要从其他地方走到区间内,那么这里面一定要修桥,而且不用拆

那就数一下要建多少桥,也就是a数组从起始位置到区间开始的位置有多少个零,前缀和可以解决

然后我们开始在区间内修桥,由于我们移动不消耗时间,因此可以先把所有桥都建上

那会不会有时候不用建呢,如果从区间的某一端开始到一个地方,这里面全都是对上的,那我们就可以不去

(那我们为什么不直接缩小询问区间呢)

于是如果我们在区间以左起始位置,缩右边的,以右起始则缩左边,在区间内就两边都缩

我们这里可以预处理解决,然后区间内桥全修上,然后没用的拆了

然后自己猛然发现做完了,样例也都过了

比赛也快结束了,那就直接交上去吧

结果就Accepted了

19:07 finished T2

最终自认为简单的T1还是没做出来(

Expext:100+50 +75 +100

reality:76+100+100+100

Total Expected Score: 325
Total Reality: 376
Rating: 3

总结:

一定要先把题全看了再做,如果一道题一段时间没思路那就先换一题,否则如果今天我第二题没有那么幸运的话就很麻烦

无论如何暴力分一定要打上

Time:

[00:00-00:15]看题

[00:15-00:33]T4

[00:33-02:11]T1

[02:11-02:28]T3

[02:28-02:57]T2

[02:57-03:00]T1

标签:PRE,Mini,00,cdot,Comp,sum,02,区间,100
From: https://www.cnblogs.com/Ayaka-T/p/17721285.html

相关文章

  • 关于hive中的com.google.common.base.Preconditions.checkArgument(ZLjava/lang/Strin
    com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V这个报错是因为Hive 3.1.3guava19.jar和hadoop3.2.4不兼容导致 解决方法—— 之后hive就可以正常初始化了  参考博客——https://blog.csdn.net/happyfreeangel/ar......
  • org/springframework/boot/maven/RepackageMojo has been compiled by a more recent
    项目场景:项目中执行clean,再执行install时报错,错误如下org/springframework/boot/maven/RepackageMojohasbeencompiledbyamorerecentversionoftheJavaRuntime(classfileversion61.0),thisversionoftheJavaRuntimeonlyrecognizesclassfileversionsupt......
  • 浅谈Node之express框架
    浅谈Node之express框架爱吃番茄的肥仔互联网数据开发一枚​关注他 4人赞同了该文章前言今天终于到了重点话题了,开始学习express框架,在学习之前我们需要了解express的作用和背景。express是一个web框架,功能和http模块类似,只不过功能更加强大,开发效......
  • Node组件——Express简介
    Node组件——Express简介隐逸王关注IP属地:陕西0.1082020.06.0113:36:03字数1,984阅读5,552概述Express是目前最流行的基于Node.js的Web开发框架,可以快速地搭建一个完整功能的网站。Express上手非常简单,首先新建一个项目目录,假定叫做hello-world。$mkdirhello-......
  • Fragment初学5——使用Fragment的子类PreferenceFragment
    在Android的应用中通常都有setting功能,能够设置一些全局的选项,例如字体颜色,个人喜好等等。这些东西都存在一个xml中,在android中对应的对象就是SharedPreferences。在android3.0之前,我们一般继承PreferenceActivity这个基类去实现相关的方法。在3.0之后的系统中当然选择使用Preferen......
  • Hbase MapReduce例子
    HbaseMapreduce例子http://hadoop.apache.org/hbase/docs/current/api/org/apache/hadoop/hbase/mapreduce/package-summary.html#package_descriptionhttp://wiki.apache.org/hadoop/Hbase/MapReduce (Deprecated) 需要重启Hadoop的方式所有机器都有修改配置1:修改$HADOOP_HOME/......
  • VuePress
    VuePress是一个由Vue驱动的静态网站生成器,由Vue.js的创始人尤雨溪设计和维护。VuePress结合了Vue的强大功能和webpack的预渲染能力,提供了一个快速、灵活和用户友好的解决方案来编写和发布静态网页。关于VuePress的名称,这是Vue和Press(出版,出版物)两个词的融合,传达了......
  • 行车记录仪方案 联发科Mini安卓主板超低功耗
    现代行车记录仪常常存在分辨率不清、死机、卡顿和高功耗等问题,同时价格较高。为了解决这些问题,提出了行车记录仪的新解决方案。新解决方案采用高性能处理器,确保行车记录仪的流畅运行,告别死机问题。新一代高性能运动图像处理器搭配大内存,能够顺畅记录行车过程中的美好瞬......
  • Linux环境下sentence-transformers 之 all-MiniLM-L6-v2模型安装与使用
    好记性不如烂笔头系列一、背景:1、之前使用chatgpt接口生成embeddings的向量维度为1536维,数据库中占用较大,所以找寻低维度的向量生成方法,减少数据占用2、在huggingface上发现all-mpnet-base-v2及all-MiniLM-L6-v2两个模型不错,前者会生成768维的向量,后者会生成384维的向量 二......
  • 并发编程系列-CompletableFuture
    利用多线程来提升性能,实质上是将顺序执行的操作转化为并行执行。仔细观察后,你还会发现在顺序转并行的过程中,一定会牵扯到异步化。举个例子,现在下面这段示例代码是按顺序执行的,为了优化性能,我们需要将其改为并行执行。那具体的实施方法是什么呢?//以下两个方法都是耗时操作doBizA();......