Luogu P4933 大师(dp)】的更多相关文章

P4933 大师 题意 题目背景 建筑大师最近在跟着数学大师ljt12138学数学,今天他学了等差数列,ljt12138决定给他留一道练习题. 题目描述 ljt12138首先建了\(n\)个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为\(1\)到\(n\),第\(i\)个电塔的高度为\(h[i]\). 建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去.这时候,如果留在地上的电塔的高度,从左向右构成了一个等差数列,那么这个选择方案就会被认为是美观的. 建筑大师需要求出,一共有多少种美…
题目传送门 题目大意:给你一个序列,求子序列为等差数列的子序列个数.序列长度$n<=2000$,最高的塔高$v<=20000$. 这种计数类的题,大概就是dp的套路了⑧.开始设计的是一个错误的状态:设$f[i][j]$为到前$i$个塔选了$j$个的方案数,但是我们再看一看就会发现这是错的,因为等差数列啊,我们并没有考虑公差鸭.所以我们再设计一个状态:设$f[i][j]$表示到第$i$个塔为止,公差为$j$的方案数.开始想的是$O(n^3)$算法 ,还要枚举公差,但是后来发现不需要特意枚举公差,…
luogu P6835 概率DP 期望 洛谷 P6835 原题链接 题意 n + 1个节点,第i个节点都有指向i + 1的一条单向路,现在给他们添加m条边,每条边都从一个节点指向小于等于自己的一个节点,现在从1号点开始走,每次等概率地选择出边,问到达n+1的步数期望 思路 用 \(F_{i,j}\) 代表从i到j的期望步数 由于期望的线性性质,所以 \(F_{i,k} + F_{k,j} = F_{i,j}\) 所以我们算出每个 \(F_{i,i+1}\) 即可 对于当前节点i,出度为 \(d_…
复习复习DP...都忘了QAQ... 好了这道题我其实是看题解才会的... 方程 f[i]=min(f[i-j]+v[i]) v[i]表示i是不是石头 s<=j<=t 路径压缩引用一下证明From Luogu@Panda_Hu #include<cstdio> #include<iostream> #define R register int #include<algorithm> #define R register int ,Inf=0x3f3f3f3f…
$des$ 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b).一个学生要从这些课程里选择M门课程学习,问他能获得的最大学分是多少? $des$ 建出完整的树后 dp #include <bits/stdc++.h> using namespace std; #define R…
题面 动态求最大独立集 题解 树剖后用矩阵转移. 具体见Tweetuzki的洛谷博客 CODE #include <bits/stdc++.h> using namespace std; typedef long long LL; char cb[1<<15],*cs=cb,*ct=cb; #define getc() (cs==ct&&(ct=(cs=cb)+fread(cb,1,1<<15,stdin),cs==ct)?0:*cs++) inline…
题面 (实名推荐:本题的出题人小哥哥打球暴帅哦!(APIO/CTSC/WC的时候一起打过球w,而且大学在我隔壁喔) ) 没仔细看数据范围的时候真是摸不着头脑...还以为要 O(N^2) dp 爆锤.. 后来发现v<=20000,这能干啥呢? 至少我的暴力是可以趁机跑过了2333,暴力如下: 我们枚举每一种公差,然后每一轮     先把所有 a[j]-a[i]=公差 的 i在图中连一条到j的边(i<j), 再跑一遍拓扑排序求这种公差的方案数.(因为任意一种选法都可以且仅可以对应到唯一的一轮的建出…
[NOIP2016] Day1 T3 换教室 ——!x^n+y^n=z^n 题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n 节课程安排在 nn 个时间段上.在第 i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 ci​ 上课,而另一节课程在教室 di​ 进行. 在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的 n 节安排好的课程.如果学生想更换第 ii 节课程的教室…
题目描述 ljt12138首先建了n个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为1到n,第i个电塔的高度为h[i]. 建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去.这时候,如果留在地上的电塔的高度,从左向右构成了一个等差数列,那么这个选择方案就会被认为是美观的. 建筑大师需要求出,一共有多少种美观的选择方案,答案模998244353. 注意,如果地上只留了一个或者两个电塔,那么这种方案也是美观的.地上没有电塔的方案被认为是不美观的. 分析 题目的大致意思就是求当前数列的等差数…
记f[i][j]是以i号为结尾的.公差为j的的个数(不包括只有i的情况) 那么就有$f[i][i-i']=\sum{(f[i'][i-i']+1)}$之类的东西 最后再加个n就行啦 而且公差有可能有负的,都加个20000好了 #include<bits/stdc++.h> #define pa pair<int,int> #define CLR(a,x) memset(a,x,sizeof(a)) using namespace std; typedef long long ll;…