DP
Rainbow6174
这个作者很懒,什么都没留下…
展开
-
NOIP难度 零件分组 stick 题解&代码
DP= =双关键字排序然后取最大的啦【呸哪有双关键字了…明明只是分情况讨论取最大的嘛= =#include<iostream>#include<algorithm>#include<string.h>using namespace std;int n,w[1005],l[1005],p[1005],dp[1005],ans1,ans2;bool cmpl(int a,int b){原创 2015-07-21 16:36:22 · 1670 阅读 · 0 评论 -
HDU5637 bestcoder#74 Transform 题解&代码
场上没想出来…搜索直接过了就没算复杂度,愉快FST,第一次以TLE的姿态FST…我只能说pretest简直太丧病了…因为所有步骤可以转换成为1-18位单个位转换和a[]的异或转换 所以对这些做个01背包…然后将s^t放进去(相同数的异或值是0,另外整个式子一定满足对于新的a[]存在s^a[i]^…^t=0),O(1)地得到了答案#include<iostream>#include<cstdio>原创 2016-03-07 19:25:31 · 469 阅读 · 0 评论 -
POJ3691 DNA repair 题解&代码
我心好痛啊…f**k -1改成0x3f3f3f3f就过了…这么玄妙的东西我卡了半个月我服 等老师再研究一下吧,我现在不想看到这道题 //一道题的代码几乎能背过是什么体验 注释不删,等待第二版更新#include <cmath>#include <climits>#include <cstdlib>#include <iostream>#include <queue>#include原创 2016-02-17 21:01:42 · 885 阅读 · 0 评论 -
POJ1014 Dividing 题解&代码
二进制优化写跪好几次感觉有点醉= =果然是好久没写dp都忘了#include<iostream>#include<stdio.h>#include<string.h>using namespace std;bool flag;int T,a[10],dp[60005],tot,now,temp,x;int main(void){ while(true) {原创 2016-01-07 18:14:03 · 635 阅读 · 0 评论 -
POJ1036 Gangsters 题解&代码
题意:有一个门,可以打开的大小在[0,k]之间(一定是整数),每秒打开大小可以变化至多1(即假如门时间t时打开了K,那么时间t+1时门的状态可以是K-1,K,K+1)。有n个人在不同的时间到达这个门,每个人有一个s,如果s等于门当前的大小,那么我们可以获得价值p,问最终我们可以获得的最大价值是多少。题解:不知道是聚聚不屑于做这种水题还是啥= =网上挂的题解那代码我有点看不下去…反正就这样 按时间先原创 2016-01-07 18:11:19 · 912 阅读 · 0 评论 -
POJ1050 To the Max 题解&代码
DP= =加上前缀和优化#include<iostream>#include<stdio.h>using namespace std;int n,ans,sum,a[105][105],s[105][105];int main(void){ scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++)原创 2016-01-07 20:31:47 · 674 阅读 · 0 评论 -
POJ1080 Human Gene Functions 题解&代码
卧槽为什么没人告诉我这个数列长度可以是0= =被教做人 我看到数列长度可以是0的时候【表情大概和下面这只陆夫人一样 #include<iostream>#include<stdio.h>using namespace std;int T,l1,l2,dp[105][105];char s1[105],s2[105];int d[5][5]={ {5,-1,-2,-1,-3},原创 2016-01-07 22:14:51 · 597 阅读 · 0 评论 -
POJ1141 Brackets Sequence 题解&代码
= =POJ我PE居然是WA…伤心 路径处理那里改了好久= =#include<iostream>#include<stdio.h>using namespace std;string s;int len,temp,mind,dp[105][105],vis[105][105];void print(int l,int r){ if(l>r)return; if(l==原创 2016-01-08 20:26:01 · 562 阅读 · 0 评论 -
BZOJ 1088 [SCOI 2005] 扫雷Mine 题解&代码
我推了好久的dp啊= =一口老血喷出来 这个智商怎么救= =快告诉我怎么救#include<iostream>#include<stdio.h>using namespace std;const int maxn=10005;int n,ans,a[maxn],s[maxn];int cal(void){ for(int i=2;i<=n;i++) {原创 2016-01-08 13:00:13 · 604 阅读 · 0 评论 -
Codeforces 111C Petya and Spiders 题解&代码
题意:给出一个n×m的网格,每个网格里有一只蜘蛛,每只蜘蛛一秒都可以向四个方向跳一格【不可以跳出网格】(当然它也可以选择不跳)。问一秒之后【每只蜘蛛都行动至多一次】网格上有至多多少个位置没有蜘蛛思路:dp啦dp啦= = dp方程是当存在某种转移条件时,dp[i][sta][stb]=max(dp[i-1][stc][sta]+s[sta],dp[i][sta][stb]) 其中i是行数【其实是最原创 2016-01-20 17:40:16 · 748 阅读 · 0 评论 -
BZOJ1030 JSOI2007 文本生成器 题解&代码
题意:给出n个匹配串,询问:对于长度为m的串,有多少个串至少包含一个匹配串(答案对10007取模) 题解: “至少包含一个匹配串的长度为m的串”,那么很容易转化为“所有串除去不包含任何匹配串的长度为m的串” 然后就是喜闻乐见的AC自动机上的dp了,dp方程显然是dp[i][j]表示长度为i的串匹配到j位时有多少不包含任何匹配串 有:dp[i][ch[j][k]]+=dp[i-1][j] 即原创 2016-03-11 16:30:13 · 597 阅读 · 0 评论