也不知道属于什么DP,反正就是DP算了。。设dp[i][j]表示前i个数组合成j的最多方案数和恰好装满的01背包类似一开始的思路是dp[i][j]=dp[i-1][j-a[i]]+1;真不知道当时是怎么能想出这个方程来的,或许是看到长得不错就要它了吧。。后来敲代码,怎么调都对不了,后来就反思,老觉得...
分类:
其他好文 时间:
2014-08-24 23:33:53
阅读次数:
350
其实就是最长上升子序列。只要把普通的LIS中的“>”改为另外一种这里需要的判断的方式即可。dp[i]表示包含i在内的从1到i的LIS 状态方程, dp[i] = max(dp[i],dp[j]+1)(if(“i>j”));边界dp[i] = 1;最后还需要扫一遍dp[]取出其中的最大值,(为什么d....
分类:
其他好文 时间:
2014-08-24 23:28:53
阅读次数:
270
动态转移方程dp[i]=max(dp[i-1]+a[i],a[i]);
dp[i]表示一这个点结尾的最大连续子序列
因为还要记录序列的头和尾,用start[]记录每个点在该序列的起始位置
注意提示要用scanf啊,cin会TLE
/*************************************************************************
> Fil...
分类:
其他好文 时间:
2014-08-24 22:21:43
阅读次数:
271
很间的动态规划但ac率低于四分之一了,状态转移方程:
dp[i]=max(dp[i-1]+a[i],a[i])注意几点:
case 之间有空格
输入的最小负数为-1000
有多组答案找出第一个的意思是,从头便利,得到第一个最大的和就输出被,然后break;
/*****************************************************************...
分类:
其他好文 时间:
2014-08-24 22:20:43
阅读次数:
189
#include
#include
#include
#include
using namespace std;
int a[40][40],x[40];//系数矩阵,解数组
int equ,var;//方程数,变元数
void Debug()
{
for(int i=0;i<equ;i++)
{
for(int j=0;j<=var;j++)
...
分类:
其他好文 时间:
2014-08-24 22:18:43
阅读次数:
213
sgu 106: 这道题首先让我们解一个线性方程式ax+by=-c,用拓展欧几里得就可以搞定。但是它要求我们需要输出满足x1,而cmath里有名字叫y1的函数,真蛋疼。不过其实只要把y1从全局拿到main函数内部就好) 1 #include 2 #include 3 #include 4...
分类:
其他好文 时间:
2014-08-24 20:41:23
阅读次数:
250
在计算大型方程式时通常要同时打开20甚至30个标签,寻找已经打开的文档令人非常郁闷。Tabs Studio让你点击鼠标就能立即切换到另一个标签上。使用正常表达式,Tabs Studio可对基于标题和路径的标签群组进行完全控制。通过将你的h/cpp,xaml/xaml.cs,和aspx/aspx.vb...
分类:
其他好文 时间:
2014-08-24 15:25:42
阅读次数:
157
题意 输入一个城市的滑雪地图 你可以从高的地方滑到伤下左右低的地方 求这个城市的最长滑雪线路长度 即在一个矩阵中找出最长递减连续序列
令d[i][j]为以格子map(i,j)为起点的最长序列 则有状态转移方程d[i][j]=max{d[a][b]}+1 a,b为与i,j相邻且值比i,j小的所有点
#include
#include
#include
using na...
分类:
其他好文 时间:
2014-08-23 11:25:20
阅读次数:
245
解题报告
题目传送门
思路:
解方程组:
(a-1)-b
0
Max-Min>=m
源点为Max,求出dis[Max]-dis[Min]
#include
#include
#include
#include
#include
#define N 100001
#define M 550000
#define inf 0x3f3f3f3f
using namespace ...
分类:
其他好文 时间:
2014-08-22 22:38:21
阅读次数:
179