欢迎访问我的个人网站==》 jiashubing.cn
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 40 下一页
摘要: 炮兵阵地Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响。现在,将军们规划如何部署炮兵部队,在防止误 阅读全文
posted @ 2013-08-23 19:27 贾树丙 阅读(458) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=423Sample Input3(A-B + C) - (A+(B - C)) - (C-(D- E) )((A)-( (B)))A-(B+C)Sample OutputA-B+C-(A+B-C)-(C-(D-E))A-BA-(B+C)题目大意:给出加减代数表达式,仅由变量(大写字母表示),圆括号,加号 '+', 减号'-'组成,要求去掉多余的括号,但是不能改变表达式中的加号和减号,也就是说如果括号外面是减号,那就不能去掉分析: 对于每 阅读全文
posted @ 2013-08-22 18:52 贾树丙 阅读(499) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681题目大意:给定三个字符串A,B,C 求最长的串D,要求(1)D是A的字序列 (2)D是B的子序列 (3)C是D的连续子序列Sample Input2aaaaaaaaaaaabcdefacebdfcfSample OutputCase #1: 4Case #2: 3HintFor test one, D is "aaaa", and for test two, D is "acf".分析:求A和B的LCS,正反各求一次得到dp1和dp2,然后枚举C在A,B 阅读全文
posted @ 2013-08-21 19:53 贾树丙 阅读(235) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5048Sample Input4 3 Sample Output3题目大意:n个格子排成一条直线,可以选择涂成红色或蓝色,问最少m个连续为红色的方案数。分析:递推法dp[i]表示前i个最少m个连续为红色的方案数。转移时,分类讨论:1、前i-1个已经满足这个性质,那么,第i个随意涂色,方案数为dp[i-1]*2。2、前i-1个不满足这个性质,那么,要想成为方案,区间[i-m+1,i]必须涂成红色。并且,下标为i-m这个点必须是蓝色,否则就与情况1重复了。而且正是由于这 阅读全文
posted @ 2013-08-21 18:07 贾树丙 阅读(308) 评论(0) 推荐(0)
摘要: Hackers’ CrackdownMiracle Corporations has a number of system services running in a distributed computer system which is a prime target for hackers. The system is basically a set ofNcomputer nodes with each of them running a set ofNservices. Note that, the set of services running on every node is sa 阅读全文
posted @ 2013-08-21 16:11 贾树丙 阅读(975) 评论(2) 推荐(0)
摘要: 胜利大逃亡(续)Problem DescriptionIgnatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一个。魔王每t分钟回地牢视察一次,若发现Ignatius不在原位置便把他拎回去。经过若干次的尝试,Ignatius已画出整个地牢的地图。现在请你帮他计算能否再次成功逃亡。只要在魔王下次视察之前走到出口就算离 阅读全文
posted @ 2013-08-20 06:11 贾树丙 阅读(361) 评论(0) 推荐(0)
摘要: STL中map用法详解 说明:如果你具备一定的C++ template知识,即使你没有接触过STL,这个文章你也应该可能较轻易的看懂。本人水平有限,不当之处,望大家辅正。 一.Map概述 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可 阅读全文
posted @ 2013-08-20 04:45 贾树丙 阅读(320) 评论(0) 推荐(0)
摘要: Bridging signalsDescription'Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once more the routing designers have screwed up completely, making the signals on the chip connecting the ports of two functional blocks cross each other all over the place. 阅读全文
posted @ 2013-08-17 22:13 贾树丙 阅读(578) 评论(0) 推荐(0)
摘要: 头文件 函数简介 lower_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个大于等于value 的值。 阅读全文
posted @ 2013-08-17 21:41 贾树丙 阅读(533) 评论(0) 推荐(0)
摘要: 利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。不过经常还是用在DP题目中,因为DP题目是一个自下而上的扩展过程,我们常常用到是连续的解,前面的解往往舍弃!所以用滚动数组可以说是很有必要的。 滚动数组 举个简单的例子: int i, d[100]; d[0] = 1; d[1] = 1; f 阅读全文
posted @ 2013-08-17 17:31 贾树丙 阅读(798) 评论(0) 推荐(3)
摘要: 题目链接:http://poj.org/problem?id=1159题目大意:给定一串字符,添加最少的字符,使之成为回文串。Sample Input5Ab3bdSample Output2分析:这道题目之前有做过,就是将原字符串逆序得到另一个字符串,求它们的最长公共子序列,这样就能求得它的可以构成回文的最长字符数,用n减去即为添加最少可使之成为回文的数目。可恨的是之前一直超内存,看了别人的解题报告,原来定义dp[MAX][MAX]时,不用int型,而是short型,内存只占int的一半(见上一篇日志)另外逆序字符串可以不用新开一个数组,也可以直接在原数组上从后往前循环。代码如下: 1 # i 阅读全文
posted @ 2013-08-17 16:48 贾树丙 阅读(256) 评论(0) 推荐(0)
摘要: short和int等一样,是C或C++的一种内部数据类型。用于表示有符号整数。不同的是,他们在内存中所占的空间大小不同,short通常为int所占一半,也有一些实现为和int一样,但不会比int大。所占内存空间不同,那么可用表示的整数范围也就不同。至于具体能表示什么范围,这个问题是体系结构和编译环境 阅读全文
posted @ 2013-08-17 16:40 贾树丙 阅读(2747) 评论(0) 推荐(0)
摘要: Greatest Common Increasing Subsequence题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1432题目大意:给出两串数字,求他们的最长公共上升子序列(LCIS),并且打印出来。Sample Input151 4 2 5 -124-12 1 2 4Sample Output21 4分析:神奇就神奇在是LIS与LCS的组合令dp[i][j]表示A串的前i个,与B串的前j个,并以B[j]为结尾的LCIS 的长度.状态转移方程: f(A[i]==B[j]) dp[i][j]=max(... 阅读全文
posted @ 2013-08-17 07:08 贾树丙 阅读(846) 评论(0) 推荐(0)
摘要: Anagrams by Stack题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4题目大意:输入两个字符串序列,判断能否通过对第一个字符串进行进栈出栈操作得到第二个字符串,若能则输出所有能达到的进出栈操作过程。我通过全排列每得到一组操作过程,则用函数按照这个操作过程,判断能否得到第二个字符串,若能则表明此操作过程可行,输出。代码如下: 1 # include 2 # include 3 # include 4 # include 5 using namespace std; 6 7 string str1,st. 阅读全文
posted @ 2013-08-15 03:59 贾树丙 阅读(391) 评论(0) 推荐(0)
摘要: Undercut题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=57题目大意:a card game,two player,每个player有n张牌,按顺序出牌,如果2张牌的点数相等,2个player都不得分;如果2张牌点数相差1,点数大的player得分为2张牌的点数和;如果2张牌的点数相差超过1,点数大的player得分为点数大的牌的点数;特殊情况,如果2张牌的点数分别为1和2,持2的player得分为6而不是3;给出2个player各n张牌的点数,要求输出每个player的得分情况代码如下: 1 # incl 阅读全文
posted @ 2013-08-15 03:31 贾树丙 阅读(541) 评论(0) 推荐(0)
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 40 下一页