随笔分类 - 入门经典训练指南
摘要:这题是最长公共子序列的变形,要注意的就是,题目要求输出最长上升子序列的字典排序最小值,最麻烦的就是这个,想了半天都没什么思路,我对最长上升子序列的理解不是很透彻。在网上看了别人的题解,都是用一个结构题来保存状态 (公共子序列的长度,公共子序列的串)我才恍然大悟,既然这样,那不是搜索一遍所有的状态的字符串就可以了吗。#include
#include
#include
#include
#include
using namespace std;
#define MAXN 1010
struct Node
{ int l; string s;
}no[MAXN][MAXN];
char sm[..
阅读全文
摘要:此题的大意是给定一个序列,求一个最长的奇数子序列,使得前k个序列上升,后k个序列下降。此题的解法是从左往右求一次最长上升子序列,然后从右往左再求一次最长上升子序列,分别记录在状态变量d1[i],d2[i],求min(d1[i],d2[i])的最大值即可,答案就是2*min-1。#include
#include
#include
#include
#include
using namespace std;
#define MAXN 10010
#define INF 1000000000
int seq[MAXN];
int d1[MAXN],d2[MAXN];
int g[MAXN];
in
阅读全文
摘要:这个题目的大意就是,给你一个字符串,然后让你求出最少的回文数。我开始傻逼了,写了一个o(n^3)的算法,结果老超时。然后略看了别人的题解,才知道有个如此的转移方程。f[i+1]=min(f[j]+1,其中j~i是回文),基础的动态规划题目,还得多多加强训练。#include
#include
#include
using namespace std;
#define MAXN 1010
#define INF 1000000000
char s[MAXN];
int f[MAXN];
bool isp(int l,int r)
{ bool ok=1; for(int k=...
阅读全文
摘要:题目的大意是有一个整数组成的序列,两个人轮流取数,只能从一端取一个或者多个数(这里大白书上写错了),当所有的数都被取完的时候,取到的所有的数之和为该玩家的分数,求A的分数-B的分数,两个人都是以最优的方案取值。这个问题使用动态规划求解,子问题就是i~j的子序列先手取得的分数最大值。设d[i][j]表示子序列i~j的先手取数所获得的最大分数则d[i][j]=sum[i][j]-min(d[i+1][j],d[i+2][j],d[i+3][j],...,d[j][j],....,d[i][j-1],d[i][j-2],d[i][j-3],...,d[i][i],0)。0表示所有的数都被先手取完。因
阅读全文
摘要:http://acm.uva.es/local/online_judge/search_uva.html这题 的论证过程如下:假设l0=1,2,3,4,...,n-1,n;减掉数k之后剩下 1,2,3,...,k-1,0,1,2,3,4,...,n-k;则讲数列分成了两半l1=1,2,3,...,k-1,和l2=1,2,3,...,n-k;由于较短的数列是较长的数列的子集因此,相减的次数主要取决于较长的数列,于是有:fl0=fl2+1(|l2|>|l1|);或fl0=fl1+1(|l1|>|l2|),由此我们知道不管是l1还是l2都必须尽量的短,于是有|l1|=|l2|或者|l1|
阅读全文
摘要:http://acm.uva.es/local/online_judge/search_uva.html这一题需要遍历所有的可能性,从第一行开始有2^n种可能,接下来的n-1行可以由第一行推测出来。主要是如何遍历的问题,我想了一个下午都没得到正确的答案,索性全部删除,借用书上的思路把代码敲出来,为什么一模一样呢?因为已经到了该无可改的地步了。精彩之处1.使用移位运算枚举第一行的所有可能性。2.比较a矩阵和b矩阵计算出要改变的零的个数。3.计算周围元素之和的sum条件语句也是非常精炼的。/*
*1.枚举第一行的每个元素
*2.计算推测第二行至第n行的元素
*3.计算矩阵的不同元素个数获取ct值
阅读全文
摘要:Problem DPiotr's AntsTime Limit: 2 seconds"One thing is for certain: there is no stopping them;the ants will soon be here. And I, for one, welcome ournew insect overlords." Kent Brockman Piotr likes playing with ants. He has n of them on a horizontal poleL cm long. Each ant is facing e
阅读全文

浙公网安备 33010602011771号