动态规划
x
Error:NAN
这个作者很懒,什么都没留下…
展开
-
正则表达式匹配
正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。dp[i][j] i,j分别代表s[i-1] p[j-1],表式两个前缀是否匹配 当 p[j-1]=='*' 时dp[i][j]=dp[i][j-2](取消*匹配)|dp[i-1][j] s去掉字符串尾部再进行*匹配p[j-1]!=*dp[i][j]=dp..原创 2021-11-03 23:13:56 · 267 阅读 · 0 评论 -
venile Galant(简单dp+逆元)
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld题目描述As a self-proclaimed practitioner of the Guhua Clan (Aka. Kokaha)'s arts, Xingqiu (Aka. Yukuaki) is planning to forge a longsword with length n. The following p...原创 2021-04-26 23:58:21 · 264 阅读 · 0 评论 -
P2198 杀蚂蚁
1.放射塔和辐射塔都是经过后才起作用,所以最后那位一定是激光塔。2.因为放射塔和辐射塔的效果可以累加所以激光塔最后放最优。3.枚举激光塔的长度,剩下的区间放置辐射塔和放射塔int n,r,g,b,t; 激光塔 辐射塔 放射塔dp[i][j] i为放射塔数量,j为辐射塔的数量动态转移方程dp[i][j]=max(dp[i-1][j]+(n-i-j)(j * g)b,dp[i][j-1]+(n-i-j)(ib+t)*g);__int128挺好用#include<iostream>..原创 2021-04-06 21:32:23 · 115 阅读 · 0 评论 -
杠杆数
…#include<iostream>#include<cstring>using namespace std;#define ll long longconst int maxn=25;ll pos[maxn];ll dp[maxn][maxn][maxn*100];ll i;ll dfs(int ps,int pt,int st,int fn)//数的位数 支点的位置 力矩和{ if(!ps) return st==0; i.原创 2021-04-06 20:41:04 · 106 阅读 · 0 评论 -
P1285 队员分组(二分图+背包)
P1285 队员分组#include <iostream>#include <string>#include <complex>#include <vector>#include <stack>#include <cstdio>#include<functional>#include<cmath>#include<ctime>#include<cstring>#in原创 2021-03-28 01:36:52 · 253 阅读 · 0 评论 -
CF865C Gotta Go Fast
CF865C Gotta Go Fastf[i][j]表示在进行关卡i时的时间。1.在关卡i前重新开始,期望值为mid2.关卡i最快方式通过,时间为(dp[i+1][j+a[i]]+a[i])p[i]/1003.关卡i最慢方式通过,时间为(dp[i+1][j+b[i]+b[i]])(1-p[i]/100)#include <iostream>#include <string>#include <complex>#include<functional.原创 2021-03-27 23:19:15 · 140 阅读 · 0 评论 -
CF321E Ciel and Gondolas(决策单调性)
Ciel and Gondolas动态规划方程是dp[i][j]=min{dp[i-1][j]+cal(k+1,j)},cal(i,j)=cal(i-1,j)+cal(i,j-1)-cal(i-1,i-1)+ch[j][j]。做题时,没有注意策略点的范围,超时了好几次。#include<cstdio>#include<cstring>#include<iostream>#include<fstream>using namespace std;c.原创 2021-03-24 12:57:54 · 268 阅读 · 0 评论 -
CF868F Yet Another Minimization Problem(决策单调性)
Yet Another Minimization Problem题意:将序列划分为k段,每段的代价为这段所有重复数n(n-1)/2的和,求怎么分段使得,所有段的代价之和最小。思路:容易知道动态规划方程式为dp[i][j]=max(dp[i-1][k]+cal(k+1,j)){i为分段数,j为序列总长度}但是这样做时间复杂度为O(n3),所以要对动态规划进行优化。决策单调性若序列总长度分别为i,m,i>m则最优决策点iu>=mu,根据决策点单调的性质分治优化,cal(i,j)则用莫队。#..原创 2021-03-21 13:22:24 · 436 阅读 · 0 评论 -
P1642 规划
链接01分数规划+树形DP#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<functional>#include<iomanip>using namespace std;#define in(x) scanf("%d",&x)#define onword(n,arr) \for(int i=0;i&原创 2020-10-18 22:27:26 · 133 阅读 · 0 评论 -
P1725 琪露诺
题目描述在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子i时,她只移动到区间[i+l,i+r]中的任意一格。你问为什么她这么移动,这还不简单,因为她是笨蛋啊。每一个格子都有一个冰冻指数A[i],编号为0的格子冰冻指数为0。当琪露原创 2020-07-19 16:33:14 · 104 阅读 · 0 评论 -
1571:【例 3】凸多边形的划分
时间限制: 1000 ms 内存限制: 524288 KB提交数: 562 通过数: 150【题目描述】给定一个具有 N 个顶点的凸多边形,将顶点从 1 至 N 标号,每个顶点的权值都是一个正整数。将这个凸多边形划分成 N−2 个互不相交的三角形,试求这些三角形顶点的权值乘积和至少为多少。【输入】输入第一行为顶点数 N第二行依次为顶点 1 至顶点 N 的权值。...原创 2020-04-11 15:08:11 · 1174 阅读 · 1 评论 -
1594
简单的搜索枚举状态然后套用状态压缩的模板。#include<iostream>#include<cstdio>#include<cstring>using namespace std;char per[6];int dp[20001][100];#define sc(x) scanf("%d",&x)#define st(x) scanf("%s",x)#define tr(x) temp[x].per#define debug(x) pri.原创 2020-09-27 20:25:55 · 136 阅读 · 0 评论 -
1604
rc的矩阵用单调队列横向缩为r(c-n+1)矩阵,然后纵向缩为(r-n+1)*(c-n+1)矩阵,矩阵每一个点都代表着一个正方形的最值。#include<iostream>#include<algorithm>#include<cstring>#include<cstdlib>#include<ctime>#include<cstdio>using namespace std;const int maxn=2e5+5;.原创 2020-09-27 12:42:24 · 131 阅读 · 0 评论