
入门经典训练指南
文章平均质量分 60
湖心北斗2013
这个作者很懒,什么都没留下…
展开
-
Piotr's ants UVA 10881
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."原创 2013-07-31 15:31:42 · 563 阅读 · 0 评论 -
help is needed for dexter uva 11384
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;由于较短的数列是较长的数列的子集因此,相减的次数主原创 2013-07-31 23:43:24 · 742 阅读 · 0 评论 -
Even Parity UVA 11464
http://acm.uva.es/local/online_judge/search_uva.html这一题需要遍历所有的可能性,从第一行开始有2^n种可能,接下来的n-1行可以由第一行推测出来。主要是如何遍历的问题,我想了一个下午都没得到正确的答案,索性全部删除,借用书上的思路把代码敲出来,为什么一模一样呢?因为已经到了该无可改的地步了。精彩之处1.使用移位运算枚举第一行的所有可能原创 2013-07-31 20:15:43 · 743 阅读 · 0 评论 -
sum游戏 Game of sum uva 10891 动态规划 备忘录(记忆化搜索)
题目的大意是有一个整数组成的序列,两个人轮流取数,只能从一端取一个或者多个数(这里大白书上写错了),当所有的数都被取完的时候,取到的所有的数之和为该玩家的分数,求A的分数-B的分数,两个人都是以最优的方案取值。这个问题使用动态规划求解,子问题就是i~j的子序列先手取得的分数最大值。设d[i][j]表示子序列i~j的先手取数所获得的最大分数则d[i][j]=sum[i][j]-min(d[i+1原创 2013-09-19 14:41:10 · 1006 阅读 · 0 评论 -
UVA 11584 Partitioning by Palindromes 动态规划 入门
这个题目的大意就是,给你一个字符串,然后让你求出最少的回文数。我开始傻逼了,写了一个o(n^3)的算法,结果老超时。然后略看了别人的题解,才知道有个如此的转移方程。f[i+1]=min(f[j]+1,其中j~i是回文),基础的动态规划题目,还得多多加强训练。#include#include#includeusing namespace std;#define MAXN 1010#原创 2013-09-20 00:43:29 · 731 阅读 · 0 评论 -
回文子序列 Palindromic Subsequence UVA 11404 动态规划 最长公共子序列
这题是最长公共子序列的变形,要注意的就是,题目要求输出最长上升子序列的字典排序最小值,最麻烦的就是这个,想了半天都没什么思路,我对最长上升子序列的理解不是很透彻。在网上看了别人的题解,都是用一个结构题来保存状态 (公共子序列的长度,公共子序列的串)我才恍然大悟,既然这样,那不是搜索一遍所有的状态的字符串就可以了吗。#include#include#include#include#inc原创 2013-09-23 22:21:47 · 833 阅读 · 0 评论 -
波浪子序列 Wavio Sequence UVA10534 动态规划 最长上升子序列变形
此题的大意是给定一个序列,求一个最长的奇数子序列,使得前k个序列上升,后k个序列下降。此题的解法是从左往右求一次最长上升子序列,然后从右往左再求一次最长上升子序列,分别记录在状态变量d1[i],d2[i],求min(d1[i],d2[i])的最大值即可,答案就是2*min-1。#include#include#include#include#includeusing name原创 2013-09-23 21:59:29 · 786 阅读 · 0 评论