08 2022 档案
8.25总结
摘要:##A.幸福 因为n的数据范围为,所以O(n)和O()的做法是不行的,我就考虑这道题可能是结论题能够用公式O(1)完成。在考场上打表找规律找了好久,我都没找到规律,最后写了O(n)的做法,得到70pts。但这道题其实没有O(1)的公式。 以下是这道题的真实做法。
8.24总结
摘要:##寿司 考场上我对于这道题第一眼感觉是DP(反正不会是数据结构),但n的数据范围太大了,我没有想到O(n)的DP。于是考虑是否是贪心,但考场上我推出的贪心式子有问题。我是通过枚举每一个连续位置,找出到达这个位置的步数,求步数的最小值,但我的贪心方法在找到达连续位置的步数时不是最优,所以错了。 综上
8.23总结
摘要:##神仙题 快读+sort找出现次数大于n/2的编号就可以过了,时间限制是5s,考场没过是我想太多 AC Code #include<bits/stdc++.h> using namespace std; inline int read() { int x=0,f=1; cha
8.22总结
摘要:##函数变化 考试最后关头,我才发现T1是有规律的,哭~ 写下一个暴力程序,打表后,你可以发现前n-1项中第i项的答案为,第n项为,n以后项的答案为前n项的和,就可以解决问题了。 AC Code #include<bits/stdc++.h> us
8.20总结
摘要:##Blue Mary的战役地图 暴力卡常 时间复杂度较高 优化后可过: 倒叙枚举边长,一旦找到就输出 AC Code #include<bits/stdc++.h> using namespace std; inline int read() { int x=
8.19总结
摘要:啊~,本周的第一个爆零 ##所罗门王的宝藏 第一眼的时候完全没有想到是图论,~~当然爆零不是这个原因~~ 把行和列进行连边,因为行i的旋转次数+列j的旋转次数一定等于,所以bfs一遍,如果无法同时满足,$a_{i1}+b_{j
8.18总结
摘要:##泡泡堂 这道题有点像田忌赛马,但不全是。 贪心策略: 如果我方最强强于对方最强,ans+=2; 如果我方最弱强于对方最弱,ans+=2; 否则最弱打最强送死为其他人创造机会 AC Code #include<bits/stdc++.h> using namespace st
8.17总结
摘要:##自动刷题机 二分答案找最大最小值 考试时二分写错了 AC Code #include<bits/stdc++.h> using namespace std; #define ll long long inline ll read() { ll x=0,f=1; char c
8.16
摘要:##T1.数字 基础dp转移方程为: 用bitest优化,0表示不行,1表示可以,初始设为f[0].set(0),目标状态为f[n].count(). AC Code #include<bits/std
8.15
摘要:##A.begin 一道显而易见的结论题 因为,所以排个序,算一下(1,2),(i,i-2)···(n-1,n)的路长的和,即得答案 AC Code #include<bits/stdc++.h> using namespace std; #define l
8.8~8.13考试总结
摘要:#8.9 ##wave 【题目描述】 海浪分为前浪和后浪,分别用数字 0 和数字 1 表示。 现在给定一天中 n 个时段的海浪序列,第 i 个序列包含 个海浪。 全天海浪序列是 n 个时段的海浪序列按照任意的一种次序顺次拼接而成的序列。 一个涨潮定义为海浪序列的一个子序列(不必连续),满
8.2测试
摘要:##A.蓝蓝的棋盘 dp题 因为蓝蓝走过棋之后下一个人是先手,可以把问题简化为一个保证先手且不断减少的棋盘。 设计状态:dp[i]表示在第i位下,先后手最优策略下的差值,因为是先手减去后手,所以也是最大差值 从n到0倒序dp,设计转移方程为:dp[i]=max(a[y]-dp[y])$i<y \le
8.1测试
摘要:##A.Doughnut 因为数据范围为,且结合题意,我们可以考虑用dp的方法来解决。 设计状态为://表示第一次到i点时需要的步数 因为想要前进一步就必须保证当前这一格的甜甜圈是偶数个,所以每次到一个新的点上后都需要返回点,从点重新走到点。 所