dp
Tz_rain
需要做的事情
解题 总结 巩固
解题三个步骤
量化 分析 实现
需要改变的三个问题
性格 心态 思考方式
不要再后悔
展开
-
最长完美子序列
最长完美子序列 时间限制: 1 Sec 内存限制: 128 MB 题目描述 如果一个序列,它的任意两个相邻的元素之差都不超过K,那么这个序列就被称作完美序列。 一个序列的子序列,就是从这个序列中,按照从前往后的顺序,取出任意多个数字(不一定连续)组成的新序列。 一个序列的完美子序列,就是从这个序列中取出一个子序列,且这个子序列是完美序列。 给定一个序列,求原创 2016-10-20 13:38:34 · 1938 阅读 · 0 评论 -
SRM553 Div1 500
/* 终态分析:对于一个情况(以某一个为标准)最后答案一定是 对于每一行来说的一个单调数列 如 000001 11100 000011 或 11100 000011 11000 011111 10000 我们用A[i][j原创 2017-04-16 19:33:38 · 313 阅读 · 0 评论 -
SRM574 Div1 450
#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,m,S,T,A[18];ll dp[1<<18][18];ll dfs(int s,int a){ if(s==T){ int b=(a+1)%n,c=(a+n-1)%n; return b!=A[0]&&c!=原创 2017-04-11 19:11:13 · 201 阅读 · 0 评论 -
SRM573 Div1
/* 由于每个点存在两个状态(编号和高度)我们用dis[nw][nx]表示到 原来编号为nw把高度改成编号为nx 的距离 于是 dis[s][k1]=dis[t][k2]+abs(h[t]-h[k2]);*/ #include<bits/stdc++.h>using namespace std;typedef long long ll;const int M=55;co原创 2017-04-10 21:26:46 · 266 阅读 · 0 评论 -
SRM593 Div1 450
令SS和TT为分成的两个集合。答案为 max(∑i∈Sbi−∑i∈Tai,∑i∈Tbi−∑i∈Sai) =max(∑i=0n−1bi−∑i∈T(ai+bi),∑i∈T(ai+bi)−∑i=0n−1ai) \begin{align} \max(\sum_{i \in S} b_i - \sum_{i \in T} a_i, \sum_{i \in T} b_i - \sum_{i \in S} a_原创 2017-04-12 20:48:24 · 264 阅读 · 0 评论 -
SRM549 Div1 600
/* 对于每一个帽子有3个状态(1 没有开 2 开了有硬币 3 开了没有硬币) 由于题目有限制条件,如果我们每次转移的时候都判断一下太麻烦了 又因为帽子的摆放和硬币的是唯一的所以可以再最后判断 */#include<bits/stdc++.h> using namespace std;const int M=15,INF=1555,N=1694323;int dp[原创 2017-04-13 20:00:36 · 258 阅读 · 0 评论 -
2017.3.18NOIP模拟赛题解及反思
第一题解题思路: 假设我们有n个桶每个桶中有A[i]个元素如果我们的要求取出给定的序列(序列的中的每个元素分别来自不同的桶)的可能性; 我们有两种求法: 1.每个桶里取一个答案为1/∏ni=1Ai1 / \prod_{i=1}^{n} A_i; 2.由于答案是无序的,我们也可以把取出所有的给定为有序的序列的可能性相加->即为要求的结果 反思 首先我没有很快地把题目搞懂,很慌浪费了20多分原创 2017-03-19 21:55:03 · 322 阅读 · 0 评论 -
SRM 690 WolfHockeyTeamEasy
有2*n只狼,编号为0到2*n-1。他们拍照时会排成两行,每行n只狼。一张照片好看,必须满足每一行的最大编号大于等于k。每一张照片有一个特征序列,这个序列有n+2个元素,前n个元素分别是n列的列最大值,后两个元素分别是两行的行最大值。两张照片只有在特征序列不同时才被认为是不同的。他们想知道可以拍多少张好看而又不同的照片。const int M=2005,P=1e9+7;class WolfHock原创 2017-02-02 21:40:45 · 217 阅读 · 0 评论 -
SRM 551 ColorfulCupcakesDivTwo
有n个蛋糕(1<=n<=50),蛋糕有A,B,C三种。(读入一个字符串,由‘A’、’B‘、’C‘三种字符组成)现在有n个人围成一圈,每个人将得到一个蛋糕,而且相邻两个人的蛋糕是不同的。求有多少种分法?答案mod 1e9+7。思路<1>对于一个状态如何转移:我们发现可以从一个X->可以以其为中心加上其他字符来实现转移int dfs(int f,int a,int b,int c,int t){原创 2017-01-22 20:07:53 · 226 阅读 · 0 评论 -
SRM 584 Excavations2
原来城市中有n个建筑,每一个建筑有一个权值表示它的种类。现在,建筑全被风沙埋掉了,人们只从中挖出了K个建筑。告诉你哪些种类的建筑被挖出来了至少一个。人们想知道,他们挖出来的建筑究竟是n个建筑中的哪几个,问可能的方案有几个?(n<=50)举个例子:原来的建筑为1 2 2 1,人们挖出了2个建筑,其中1、2两种种类的建筑都被挖出来至少一个,那么可能挖出来方案有4个:第一个1和第一个2,第一个1和第二个2原创 2017-01-23 19:23:59 · 224 阅读 · 0 评论 -
SRM 556 Div1 500
/* 非常简单的题,可是做了好久 裸的区间dp 由于要满足两个条件{1.字典序最小;2.ans>s2} 我们通过dp找到对于[a,b]区间合法解的最小字典序的串(解决了1) 为了解决2我们对dp再加一维 dp[a][b][0]表示ans<s2;dp[a][b][1]表示ans==s2;dp[a][b][2]表示ans>s2 反思:对于某一个和字典序原创 2017-04-17 22:05:37 · 287 阅读 · 0 评论