- 博客(11)
- 收藏
- 关注

原创 挂分原因记录
注意数据类型的选择(会不会爆long long,int,unsigned long long) 注意数据范围的边界会不会有问题(出边界数据)。 猜结论最好打一个有一定大小的表,这样结论具有普适性。猜完结论后一定要和暴力对拍。 分类讨论时情况一定要考虑全,可以手动将每种情况的数据都造一下。 ...
2021-08-24 22:20:02
160
原创 2021-08-05 cf1549
D 考虑将条件转为m∣(ai−ai+1)m|(a_i-a_{i+1})m∣(ai−ai+1),对于两个点i,ji,ji,j,可以推出m∣gcd(ai−ai+1,aj−aj+1)m|gcd(a_i-a_{i+1},a_j-a_j+1)m∣gcd(ai−ai+1,aj−aj+1),只需要解决区间查询gcd。rmq乱搞即可。 E 考虑原问题就是∑i=1nC3ix\sum_{i=1}^nC_{3i}^x∑i=1nC3ix,考虑dp,dp[i][j]dp[i][j]dp[i][j]表示n=i.
2021-08-05 10:37:49
129
原创 【题解】AcWing2815.三维偏序
模版:AcWing2815.三维偏序 三维偏序问题:给出三个数组a[]a[]a[],b[]b[]b[],c[]c[]c[]。求所有满足1≤i,j≤n1 \le i , j \le n1≤i,j≤n且a[i]≤a[j]a[i] \le a[j]a[i]≤a[j]且b[i]≤b[j]b[i] \le b[j]b[i]≤b[j]且c[i]≤c[j]c[i] \le c[j]c[i]≤c[j]的数对(i,j)。 将数组按照第一关键字为a,第二关键字为b,第三关键字为c排序,这样a[i]≤a[j]a[i] \le a
2021-06-03 19:55:36
173
原创 【题解】P1995 [NOI2011] 智能车比赛
感觉难度紫封顶了。 首先,容易发现每次肯定是一条折线,且所有顶点都是矩形的顶点。由于n很小,直接建图之后跑最短路就可以了。 优化的话,其实还是从上面为出发点,考虑dp(感觉最短路和dp其实有时可以转换),f[i][0]f[i][0]f[i][0]表示当前在i号矩形左边界的最低点,想要走到t至少花多少。f[i][1]f[i][1]f[i][1]表示…最高点,想要走到t至少花多少。 枚举下一次会走到那个点,转移就可以了。 ...
2021-04-13 20:52:35
175
原创 【题解】P1971 [NOI2011] 兔兔与蛋蛋游戏
首先可以推出来一个引理:空格不可能在经过几次操作后回到原来的位置。 大概感性证明一下:容易发现这个空格如果想要走成一个环,向上走的次数=向下走的次数,向左走的次数=向右走的次数。那么如果开始是兔兔走的话,最后得是蛋蛋走的。假设开始兔兔从(x0,y0)(x_0,y_0)(x0,y0)走到了(x1,y1)(x_1,y_1)(x1,y1),最后蛋蛋从(xn,yn)(x_n,y_n)(xn,yn)走到了(x0,y0)(x_0,y_0)(x0,y0)。我们不妨只考虑走出来的最短环(即最早走重的一次),
2021-04-12 20:44:02
255
原创 洛谷 P2176 [USACO14FEB]路障Roadblock
这题SPFA会被卡吗?(实测好像并不会,也没有比Dijkstra慢很多) 纯暴力思路就是枚举每一条边,之后将这条边边权翻倍。时间复杂度O(E × 最短路复杂度 ),用SPFA可能会被卡,dijkstra直接爆炸 优化的思路是显然,草堆只可能放在最短路上,所以每次判断一条边是否在最短路上,如果是,才跑最短路,这样程序效率会快很多,SPFA也不会被卡,当然,因为是全正边,所以肯定跑Dijkstra...
2020-01-07 18:37:16
270
原创 洛谷 P1938 【[USACO09NOV]找工就业Job Hunt】题解
因为有边权,还是求最值,想到最 短 长路,可是点权不好处理到最长路算法中。所以,想到把点权放到边权中,即 $ G_{i}.w = D - T_{i}$,这样就可以直接跑最长路了 至于如何计算最长路,主要有两种方法。法一,是将最长路转化为最短路,所以插入边权时,直接取反即可;法二,是直接改spfa中判断的部分(可以参考代码SPFA里的判断) 输出−1-1−1的情况就是当有正环。肯定使用SPFA,记...
2019-12-30 21:17:58
250
原创 洛谷P2331题解
洛谷P2331题解 显然要用动规,主要入手点是发现m<=2 m <= 2 m<=2,所以想到先考虑m = 1时的情况,再看是否能套用到m = 2的情况 当m = 1是,显然是最大子段和的升级版,选k个子段,这时想到开三维dp[i][j][k]表示现在做了1-i行,选了j个子段(子矩阵),第i行状态为k(核心),若选,则状态为1,否则,状态为0 状态转移顺推以及逆推均可,以逆推为...
2019-12-27 14:06:32
214
原创 洛谷 P1825 [USACO11OPEN]玉米田迷宫Corn Maze 题解
正解: 广搜(bfs),直接开个数组存储传送门,之后写即可,代码不做展示 最短路解法(FloydFloydFloyd会TLETLETLE,边权均正,写spfaspfaspfa与dijkstrdijkstrdijkstra都可以,这里用dijkstradijkstradijkstra) 若不考虑传送门,直接扫一遍,若为’.’,直接与四周建边权为1的边,最后跑一遍最短路即可 但是,走过传送门必须...
2019-12-22 12:58:30
376
原创 洛谷 P5664 Emiya 家今天的饭 题解
纯暴力(32 pts) 开始的第一思路,可以过测试点1-8 直接枚举出每种烹饪方法所用的主要食材 用搜索枚举,传入两个参数:现在枚举的烹饪方法编号以及在此之前的方案数 代码: #include <iostream> #include <cstdio> const long long mod = 998244353 ; using namespace std ;...
2019-12-22 12:55:48
426
原创 洛谷 P1043 【数字游戏】题解
洛谷题解区间dp总结一下思路:环状dp个人感觉不太好做,可以枚举分开的地方,把环展开成链,之后直接dp即可计算一段区间的和当然要用前缀和了状态设计就是分为dpmax和dpmin了,肯定开两维储存已做完这个链的第i项,已经分了j块状态转移凑一下就出来了代码(自认为比较容易看懂,比较结构化,码风凑乎): 区间dp 总结一下思路: 环状dp个人感觉不太好做,可以枚举分开的地方,把环展开成链,之后直接...
2019-12-22 12:53:27
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人