cf刷题记录- 5 1

news/2024/12/1 0:37:57/

文章首发于我的个人博客:欢迎大佬们来逛逛

文章目录

  • Taix
  • Interesting drink
  • Fence
  • Fancy Fence
  • Laptops
  • Move Brackets
  • Olesya and Rodion
  • IQ test
  • Registration system
  • Vanya and Lanterns
  • T-primes
  • Cut Ribbon

Taix

问你 n个 1 2 3 4 中, 可以组成多少组,每组的最大不能超过4,求最少的组。

if语句模拟即可。


Interesting drink

有n个数字,给定一个target,求有多少个数字比target小。

排序,然后使用 upper_lower 查找即可,最后减去begin() ,找到的即是小于它的数字的个数。


Fence

寻找一段长度为k的窗口区域,使得这段长度之和为最大值,输出窗口的左边第一个下标位置。

直接求出其前缀和,然后枚举一遍求最大值即可。


Fancy Fence

给你一个角度,问你是否存在一个正多边形的内角为这个角度。

可以把内角转换为外角,即 180-a ,然后判断 360能否整除这个外角,如果可以则就存在。


Laptops

在n个长度的序列中,是否存在第一个值比后面的第一个值小,然后第二个值比后面的第二个值大。

直接排序即可。然后枚举一遍,找出最小的第二个值,同时判断如果第二个值比后面的第二个值大则直接输出结果.


Move Brackets

给你一些由’(’ ’)’ 组成的左右括号序列,每次可以把一个括号移动到字符串的最左边或者最右边,计算出能够使整个字符串满足括号的正则匹配的最小的次数。

我们不用每次都模拟一个把括号真正的移动,注意到左右括号次数是相同的,等于序列长度的一半,因此它移动存在一个正则匹配的情况。我们如果得到了不合法括号的情况,然后出现这种情况我们一定可以通过一次移动把这对括号变成合法的,因此**只需要统计不合法的括号对出现的次数**即可,如何统计呢?如果出现左括号,则cnt++,右括号则 cnt—,每当cnt<0的时候就是不合法的情况。


Olesya and Rodion

是否存在一个长度为n的整数,满足其可以被t整除。

直接string构造即可,把所有的数字都变为t,则一定是合法的。需要单独对 t=10和n=1进行特判。


IQ test

找到序列中与其他数字奇偶性不同的数字。

统计奇偶数字的出现次数,同时记录第一个偶数和第一个奇数的下标位置,然后看谁多输出对应的就可以。


Registration system

如果一个字符串出现第一次,则插入序列,并且输出OK,否则把这个字符串的最后加上k(1,2,3,4,5…),然后输出这个字符串。

哈希表模拟


Vanya and Lanterns

在 [0,L] 的序列内,有一些路灯,找到路灯的最小照亮半径,使得整个序列道路全都被点亮。

贪心的策略:两个相邻的路灯,它们的照亮半径为相邻两个路灯之间距离的一半,然后取一个最大值就可以了。同时我们首先对最左边和最右边的两个路灯求他们分别对 0 和 L 这两个位置的最大值。


T-primes

判断一个数字是否是T质数: 它只能分解为三个不同的因数,如:4 = 1,2,4

它只包含三个因数,则中间的数字一定是这个目标数字的平方根,即这个数字一定是一个完全平方数,然后判断它的平方根是不是一个质数就可以了。

  • 4 = 1,2,4 ;平方根为2,是质数,因此4是T质数
  • 16 = 1 2 4 8 16 ;平方根为4,不是质数,因此16不是T质数。

Cut Ribbon

有一个长度为n的彩带,可以把它剪成三个不同的长度,并且每一个长度都可以无限的剪,问最多可以把这个彩带剪成多少段。

完全背包问题,并且必须装满背包的问题。

即每一个物品选择无限次,求剪满长度为 n 的彩带的方案数,则 dp[n] 就是我们的答案。

状态转移可以表示为: dp[j]=max(dp[j],dp[j-w[i]]+1)

同时需要注意必须装满背包,因此必须把dp数组初始化为 -1 ,并且在选择背包的时候,如果 dp[j-w[i]]<0 ,则说明这个背包没有装满,则跳过。


http://www.ppmy.cn/news/622024.html

相关文章

neovim 键位映射

neovim 键位映射 neovim的键位映射是指将键盘上的一组按键绑定到vim 插件的某一个功能。 7 种模式 官方文档原文&#xff1a; There are seven sets of mappings For Normal mode: When typing commands. For Visual mode: When typing commands while the Visual area is h…

【Spring Cloud Alibaba Seata 处理分布式事务】——每天一点小知识

&#x1f4a7; S p r i n g C l o u d A l i b a b a S e a t a 处理分布式事务 \color{#FF1493}{Spring Cloud Alibaba Seata 处理分布式事务} SpringCloudAlibabaSeata处理分布式事务&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f98…

windows10密钥激活失败 0x80072efe

window10&#xff08;专业版&#xff09;正版密钥激活失败&#xff0c;错误代码&#xff1a;0x80072efe. 首先检查密钥是否输错&#xff0c;在没有输错和网络没有问题的情况下&#xff0c;使用正版光盘里面的激活密钥激活系统&#xff0c;出现激活失败无法激活&#xff0c;有时…

win7激活提示错误代码0x80072EE2的最可行解决办法

很多同学在激活win7旗舰版&#xff0c;专业版和家庭版的时候遇到过提示错误代码0x80072EE2的困难&#xff0c;小编经过几次周折&#xff0c;终于完美解决问题&#xff0c;下面小编就把相关经验为大家分享一下。一&#xff0c;首先保证你的密钥是可用的&#xff0c;如果密钥失效…

软件测试面试题(完整版)

1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&#xff0c;可以实现跨平台&#xff0c;客户端零维护&#xff0c;维护成本低&#xff0c;但是个性化能力低&#xff0c;响应速度较慢 C/S响应速度快&#xff0c;安全性强&#xff0c;一般应用于局域网中&#xff0c…

漏洞分析|死磕Jenkins漏洞回显与利用效果

0x01 背景 近期我们发起了一个Goby漏洞挑战赛的活动&#xff0c;在活动期间收到了大量的反馈信息&#xff0c;延伸出一系列在编写POC漏洞检测与利用中考虑场景不全的问题&#xff0c;我们针对发现的各种场景用市面上常见的工具进行了一些列的对比工作&#xff0c;发现市面上工…

20200222在ubuntu20.04下编译全志R16的tinav3.0.4成功

20200222在ubuntu20.04下编译全志R16的tinav3.0.4成功&#xff08;烧录/运行的任何问题&#xff0c;概不负责&#xff01;^_&#xff09; 2020/2/22 22 17:48 全志R系列的Tina系统官方推荐使用Ubuntu12.04编译&#xff0c;不过Ubuntu12.04的LTS生命支持周期结束了。 Ubuntu14.0…

ERP的前世今生

原题目为&#xff1a; ORACLE ERP 的前世今生 公司被国航收购以后&#xff0c;新的财务总监发出了ORACLE上线的命令&#xff0c;听到这个消息&#xff0c;觉得这个财务总监还是比较务实的&#xff0c;还是想要干一些事情&#xff0c;比起那些只会耍官腔&#xff0c;只会耍口头…