端午节做题记录
作者:互联网
前言
艹原来本来十六点就写好了,突然洛谷的博客功能不能全选了,一Ctrl+A就tm内容全没,调了半天,还得从写啊啊啊。
然后还看到一个退役的高二学长回关我了,,,55555好感动
目录
- P2417 课程
- P3722 [AH2017/HNOI2017] 影魔
- P4568 [JLOI2011] 飞行路线
- P4495 [HAOI2018] 奇怪的背包
- P4728 [HNOI2009] 双递增序列
- P4719 【模板】"动态 DP"&动态树分治
- P4751 【模板】"动态DP"&动态树分治(加强版)
- P4922 [MtOI2018] 崩坏3?非酋之战!
- P3224 [HNOI2012] 永无乡
- P8376 [APIO2022] 排列
- P8378 [PFOI Round1] Two Sequences
- P8379 [PFOI Round1] Two Operations
- P8366 [LNOI2022] 题
- P6563 [SBCOI2020] 一直在你身旁
- P5851 [USACO19DEC] Greedy Pie Eaters P
- P2583 地铁间谍
- AT5761 Odd Sum Rectangles
- LibreOJ #2461 「2018 集训队互测 Day 1」完美的队列
- UOJ #93 【集训队互测2015】上帝之手
- P2183 [国家集训队] 礼物
- LibreOJ #3258 「ROIR 2020 Day 1」超速
- P2350 [HAOI2012] 外星人
- AT5695 [AGC041D] Problem Scores
- LibreOJ #6031 「雅礼集训 2017 Day1」字符串
//--------------------------------------------------------------------------------------------------------------------------
P2417 课程
二分图最大匹配
但我想了想,可不可以直接暴力算出sum之后跟p比大小呢?
如果不卡常不吸氧好像都可以过,
然后。。。。
真过了!
//--------------------------------------------------------------------------------------------------------------------------
P3722 [AH2017/HNOI2017] 影魔
通过线段树求解出这一个东西。对于i
,找到右边大于他的第一个数,如果没有,自然是最后一个数,但是这样不好,于是我们加一个第n+1
个数为+∞
。然后设ri
为右边大于他的第一个数,那么[i,i+1]、[i,i+2]、......[i,ri]
都符合条件,于是在线段树中对于[i+1,ri]
都+=p2
。对于全部询问排序,给以i为左端点的区间加上贡献,查询[i+1,R]
的和。反过来再搞一遍,注意询问区间也要反过来。
//--------------------------------------------------------------------------------------------------------------------------
P4568 [JLOI2011] 飞行路线
分层图最短路板子
跑个Dijkstra
就行
//--------------------------------------------------------------------------------------------------------------------------
P4495 [HAOI2018] 奇怪的背包
重点是题目转化:
题目转化成了求有多少个子集满足\(gcd(v_1,v_2..v_n,P)\)
核心转移方程
dp[k]=(dp[k]+(f[a[i]]-1)*fdp[j])%mod;
//--------------------------------------------------------------------------------------------------------------------------
P4728 [HNOI2009] 双递增序列
核心转移方程
dp[i][j]=min(dp[i][j],a[i-1]);
//--------------------------------------------------------------------------------------------------------------------------
P4719 【模板】"动态 DP"&动态树分治
这道题就是没有上司的舞会动态。
首先DP的状态转移方程一般很好推。
f[x][0]=a[0][0],f[x][1]=a[0][1];
但维护起来特别麻烦,很容易超时
//--------------------------------------------------------------------------------------------------------------------------
P4751 【模板】"动态DP"&动态树分治(加强版)
在P4719的基础上,不使用树剖套线段树来维护矩阵,而是改为使用\(LCT\)来维护矩阵
//--------------------------------------------------------------------------------------------------------------------------
P4922 [MtOI2018] 崩坏3?非酋之战!
贪心 + Dp + 滚动数组
cnt = min(r,i+j+max((int)0,(l-f[i&1][j]+dp-1)/dp));
//--------------------------------------------------------------------------------------------------------------------------
P3224 [HNOI2012] 永无乡
启发式合并就是在合并两个集合时,把size
小集合中的所有元素一个一个加入到size
大的集合。这个操作是\(nlogn\)的。
这个题目是并查集和Treap
的综合题。
用并查集来维护哪些岛屿已经联通了。
Treap
用来求第\(K\)大的岛。
//--------------------------------------------------------------------------------------------------------------------------
P8376 [APIO2022] 排列
这种新式儿的题目(可能是我孤陋寡闻)我真是第一次见,就因为一个int 64
CE了好几次。。。。
核心代码
a.push_back(deque_news++);
a.insert(a.begin()+2,deque_news++)
//--------------------------------------------------------------------------------------------------------------------------
P8378 [PFOI Round1] Two Sequences
结论题:\(((n-1)*n/2*(n-2)*(n-2))\)
注意开long long
//--------------------------------------------------------------------------------------------------------------------------
P8379 [PFOI Round1] Two Operations
赛时写的数据点4的部分分,就吃饭去了。后来现在把100的写了一下,但是刚开始自己在在线IDE跑了一个自己hack的数据,270多MB,后来调了很久。
核心代码
printf("%lld",q1.top()*inv);
当然,还需要快速幂。
//--------------------------------------------------------------------------------------------------------------------------
P8366 [LNOI2022] 题
核心状态转移方程
dp(f[i+1&1][1][2][3][21-1][13][32],21*x);
//--------------------------------------------------------------------------------------------------------------------------
P6563 [SBCOI2020] 一直在你身旁
一道非常烦的细节dp题
然后也是因为长度越长,花费越大,所以当最大值是 dp[l][k]
时,肯定是 k
越小,dp[l][k]
越小, a[k]
越小,所以 dp[l][k] + a[k]
越小,所以此时的总的最小值直接取我们找到的那个中间点的位置就好了。
而当最大值是dp[k+1][r]
时,我们直接对这一部分维护一个单调队列就好了。
核心转移方程
dp[l][r]=min(dp[l][r],dp[q[x]+1][r]+a[qx]]);
//--------------------------------------------------------------------------------------------------------------------------
P5851 [USACO19DEC] Greedy Pie Eaters P
满足更新一个点不用没有更新的点
因为都是长度短的更新长度长的,按照长度枚举
//--------------------------------------------------------------------------------------------------------------------------
P2583 地铁间谍
核心转移方程
f[j][i]=min(f[j][i],f[j+1][i-dp[j]]);
//--------------------------------------------------------------------------------------------------------------------------
AT5761 Odd Sum Rectangles
刚开始写的dp写挂了后改的深搜,结果过不了样例,但还是AC了,,,,,
但它不是spj吧。。。
//--------------------------------------------------------------------------------------------------------------------------
LibreOJ #2461. 「2018 集训队互测 Day 1」完美的队列
双二分题目
在循环结构中同时存储两份l,r
即可。
//--------------------------------------------------------------------------------------------------------------------------
UOJ #93. 【集训队互测2015】上帝之手
线段树板子
只需要加个前缀和优化
for(f[n]=0,i=n-1;i;i--)
f[i]+=f[i+1];
//--------------------------------------------------------------------------------------------------------------------------
P2183 [国家集训队]礼物
先用组合数进行化简
然后就可以直接扩展卢卡斯了!
//--------------------------------------------------------------------------------------------------------------------------
LibreOJ #3258. 「ROIR 2020 Day 1」超速
这个题比完美的队列那个题还要水。。。。
一层二分就可以了
但是很麻烦,要开三个数组进行维护
t+=l[i]/1.0/(v[i]+a[m]);
//--------------------------------------------------------------------------------------------------------------------------
P2350 [HAOI2012] 外星人
这个题非常考验数学基础
幸好最近在学导数的应用
这一段,老师还带我们刷了好多导数题,快一百了吧。所以很快的就算出来了。
//--------------------------------------------------------------------------------------------------------------------------
AT5695 [AGC041D] Problem Scores
常见背包问题。
多了几个限制而已
f[j-a[i]]=(f[j-a[i]]+f[j]);
//--------------------------------------------------------------------------------------------------------------------------
LibreOJ #6031 「雅礼集训 2017 Day1」字符串
后缀自动机+dfs
//--------------------------------------------------------------------------------------------------------------------------
标签:AC,LibreOJ,记录,端午节,record,------------------------------------------------------- 来源: https://www.cnblogs.com/spaceswalker/p/16412383.html