
dp
文章平均质量分 58
Togt
这个作者很懒,什么都没留下…
展开
-
ural1002(字典树+dp)
题意:给你一些数字对应一些字母(一对多),然后给一个数字串和一些字母串,问数字串最少可由哪几个字母串组成。 题解:将字母串对应的数字串插入字典树。然后设dp[i]为数字串第i个数字到最后一个数字最少能用几个字母串构成,dp[i]=min(dp[j]),i+1<=j#include<iostream>#include<cstring>#include<c...原创 2018-05-17 21:49:54 · 186 阅读 · 0 评论 -
cf983B dp
cf983B blemset/problem/983/B)代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;int dp[5005][5005];int a[5005];int main(){ int n; scanf(&quot;%d&quot;,&amp;amp;n); for(int i=1;i&原创 2018-05-19 12:38:59 · 221 阅读 · 0 评论 -
poj3233矩阵快速幂(模板)
题意:给定一个n*n的矩阵A,求S=A+A2+A4+..+AkS=A+A2+A4+..+AkS=A+A^2+A^4+..+A^k(每个元素mod m)题解:矩阵快速幂: 设Sk=I+A+A2+A4+..+AkSk=I+A+A2+A4+..+AkSk=I+A+A^2+A^4+..+A^k,其中III为单位矩阵#include<iostream>#include<cs...原创 2018-05-07 00:40:47 · 218 阅读 · 0 评论 -
最长公共子序列、最长上升子序列、最长公共上升子序列
1.最长公共子序列:核心代码:for(int i=1;i<n;i++) { for(int j=1;j<m;j++) { if(a[i]==b[j]) { dp[i][j]=dp[i-1][j-1]+1; } e...原创 2018-05-08 13:28:00 · 2731 阅读 · 1 评论 -
Avito Code Challenge 2018 D
传送 题意:给你一串数字,叫你给它划分为k段,对每段求和,求每段相&的最大值。 题解:dp[i][j]作为一个标记,1表示前j个数划分成i段满足当前要求(即当前位可为1)。#include<bits/stdc++.h>#define ll long longusing namespace std;bool dp[55][55];int n,k;int ma...原创 2018-05-28 15:01:51 · 323 阅读 · 0 评论 -
Educational Codeforces Round 44 (Rated for Div. 2)E
传送 题目大意:给定一个序列,要你把这个序列任意地分成若干个集合,如果有满足以下两个条件的集合就输出YES,否则NO,1)任意一个集合不少于k个元素,2)任意一个集合中任意两个数的差绝对值不超过d题解:先排个序再dp,dp[i]=1表示第i个数(不包括第i个数)之前的所有数满足上述条件,反之不满足。 转移方程:dp[i]=1,(若dp[j]=1且,x<=j<=i-k+1,x为序...原创 2018-05-24 17:16:59 · 154 阅读 · 0 评论 -
hdu5745(字符串dp+bitset优化)
传送门题意:交换相邻字符,用二进制表示匹配。/** @Author: biggf* @Date: 2018-07-04 19:38:55* @Last Modified by: biggf* @Last Modified time: 2018-07-04 20:11:26*/#include<iostream>#include<cstring&g...原创 2018-07-04 20:15:45 · 364 阅读 · 0 评论