当前位置: 首页 > news >正文

周赛 Round#3 题解

又不能放图片,又不能写学校,你让我怎么办啊!!

系列文章目录

1.周赛 Round#1
2.周赛 Round#2

前言

这是周赛第三轮。//涉及隐私原因,博文里不放题目,要看的去http://0241:101:610:801.22222

划分字符串贪心&动态规划
组合线段递推
美味沙拉
最大化运算式
汤姆猫与台球
小组长

T1 划分字符串 parse

本题考查:贪心&动态规划
通过简单地分析易得出结论:最优解一定只含1或2长度的字串,所以最好理解的方法就是贪心,首先默认长度是1,再通过与前一个的比较判断是否需要i++;只用两个字符串就行。

T2 组合线段 segment

这道题真的是水上加水,真不知道那些没A的怎么想的!!
——某BCS同学

因为线段不能动,所以直接算出某一纵轴上的线段,取最大值不就完了吗!!我还去厕所打了下草稿(这是真的别不信)。
题解上的递推式太复杂了,虽然可以O(1),但此题时间限制居然2000ms,硬是给我看蒙了,我还以为本题不是递推。
我找到了一个规律:
从3开始,i=2,每次a[i] = a[i-1] + i; 而每隔两次计算i++;简单一个O(n)循环就能实现。
说实话,评讲的时候方法太多了,我们来一个个的列举下。

1

就是上文说的方法,也是我考试时想到的,核心代码:

for(int i = 3; i <= n; i++){s+=j;if(i % 2 ==0) j++;}
cout << s;

2

与第一种方法本质是一样的,只不过推理方法不同:
算出某一纵轴上的线段,取最大值:

3

在2的方法下更进一步,用一个表格可以来表示2的轴上长度为几的线段格出现了几次,通过表格我们也可以得到规律从而地推完成。
在这里插入图片描述

4

其实3可以算作是一个等差数列的递推,我们再把单数和双数合并下就变成经典的两行代码那不是更好吗,利用单数和双数%2的性质,再利用c++/2只取整的“漏洞”即可。

http://www.lryc.cn/news/69845.html

相关文章:

  • 详解HTTPS加密过程
  • 聚观早报 | ChatGPT登顶美区iOS免费榜;库克不满苹果首款MR设备
  • position:sticky-粘性吸附布局
  • 【MySQL】-【数据库的设计规范】
  • 全面解析缓存应用经典问题
  • Java版本企业电子招采系统源码——信息数智化招采系统
  • Rust每日一练(Leetday0005) 罗马数字、公共前缀、三数之和
  • 【告别校园,迎接未来】
  • SaaS系统用户权限设计
  • 我们为什么还要学习Altium Designer?
  • Q1业绩整体回暖,影视行业找到增长新路径
  • Zabbix
  • OpenHarmony支持HDMI接口声卡适配说明
  • AtCoder Beginner Contest 300G - P-smooth number解题报告
  • 数据分析与预处理常用的图和代码
  • Http与Https 比较
  • 02 面向对象( 继承,抽象类)
  • [C++]22种设计模式的C++实现大纲
  • 用Powerpoint (PPT)制作并导出矢量图、高分辨率图
  • 小白量化《穿云箭集群量化》(9)用指标公式实现miniQMT全自动交易
  • java Class类详解
  • DMGI:Unsupervised Attributed Multiplex Network Embedding
  • C++基本介绍
  • 如何理解工业互联网与智能制造,怎么共建智慧工厂?
  • 主机访问不到虚拟机(centos7)web服务的解决办法
  • 第四章 ActiveMQ与SpringBoot集成——ActiveMQ笔记(动力节点)
  • Halcon 算子 select_shape_std 和 select_shape_xld区别
  • 【Java基础】匿名内部类
  • 基于Freertos的ESP-IDF开发——6.使用DHT1温湿度传感器
  • C++——模板初阶