摘要:
给定一个序列,求这个序列的最长连续不重复子序列。 n<=1e4,a[i]<=1e5 首先观察数据,发现O(N^2)也能过,于是我们可以用两重for循环来解决,第一层来枚举起点,在第2层中运用一个桶来记录以i为起点的最长连续不重复子序列。 总结:在当时我一看到这题就想到了自以为很对的双指针写法,结果挂 阅读全文
摘要:
有一串序列,可以通过选序列中两个数a,b,将a替换成a%b,只能操作3次或6次,求操作后序列的最大和。 首先根据题目,在mod时的最优策略为每次用一个小数模大数,但有一个特殊情况在全部相等时,需要用ans-这个序列中的元素(我就是这样挂的)。 总结:在当时,因为我做过一道类似的题,于是就把那个规律写 阅读全文
摘要:
根据贪心可知最优解一定是从1一路往右点亮火把走到n,再回到 1,再一路往右熄灭火把走到 n 。所以我们只需按照贪心原则模拟即可。但这有一个坑,初始火把不一定位置是1(我就是这样挂的)。 总结: 1.读题不够仔细,认真。 2.考虑不够全面。 3.打完不造hack数据。 阅读全文
摘要:
根据题面,数据保证一定能到达终点并且按大小顺序给了每个加油站的坐标,因此可以记录上一次加油的位置,遍历数组 ,只要出现到达不了的加油站,就在它上一个位置加油,每次更新上一次加油的位置,复杂度为O(n)。 总结:赛场上我其实想出了正解,但我把起点设置为了0,导致只有45分。 阅读全文
摘要:
总结:在赛场上我想到了解决办法,但在写的时候出错,只能写了个不加优化的代码,赛后我重新看这题时,有了新的思路,不需要绕那么多的弯。如果有一题花了太多时间,应该再读一遍题,重新思考解决办法,就会有新的收获。 阅读全文
摘要:
根据题意我们不难想出枚举1到n,然后逐个判断能整除自己的个数,时间复杂度O(N^2),n<=1e5,明显会爆炸。 考虑优化,我们看到a[i]<=1e6,可以开一个桶来记录,然后枚举1到maxn(即最大的a[i]),然后从i开始,每次加i,w[j](记录能整除j的a[i]的个数)+=c[i](值为i的 阅读全文
摘要:
初看这题时,感觉就是一个简简单单的递归,便有了以下代码: #include <bits/stdc++.h> using namespace std; string re(){ string s="",s1=""; char c; int n; while(cin>>c){ if(c=='['){ c 阅读全文
摘要:
在打这题时,最最开始,我写的pd里错把x,写成了常量k,以至于调了很久样例都过不去。。后面改k为x,自信提交结果40分,后面手算了几组数据,发现计算时出了问题,也是总算过了。 总结:在做题时,应先在草稿纸上写好思路,手算数据,再去做题,若调了10多分钟还没调出来应该删掉重新写。 阅读全文
摘要:
题目描述 王老师脑袋一拍,定义了乘加运算! 他定义 a∗bc=(a+b)×c 。 而且他觉得用括号来规定运算的先后顺序太麻烦了,他给乘加运算定义了一个权值的系数(为乘加运算的下标),权值大的乘加运算先进行。 例如下面的表达式: 9 ∗34 9 ∗12 1 ∗23 6 ∗41 29 ∗34 阅读全文
摘要:
题目描述 王老师 最近搬家了,需要购置 a 台家电、b 件家具和 c 个装饰。他来到了商场,商场正好在举行优惠大酬宾,每家店铺都推出了一系列活动。 一共有 n=a+b+c 家店铺,活动期间在第 i 家店铺购买家电只需要 ai 元一台,购买家具只需要 bi 元一件,购买装饰只需要 ci 元一个, 阅读全文