随笔分类 - OJ_HDU
摘要:Unidirectional TSPProblem DescriptionProblems that require minimum paths through some domain appear in many different areas of computer science. For example, one of the constraints in VLSI routing problems is minimizing wire length. The Traveling Salesperson Problem (TSP) -- finding whether all the
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4249题目大意:给一个a+b=c的表达式,但是a、b、c中部分位的数字丢失,并用?代替,问有多少种方案使得这个表达式成立。Sample Input7+1?=1??1+?1=22Sample OutputCase 1: 3Case 2: 1Hint There are three solutions for the first case: 7+10=17, 7+11=18, 7+12=19 There is only one solution for the second case: 11+11=22
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3920题目大意:你在一个位置用激光枪灭敌人,给你初始位置,下面是2*n个敌人的位置,你一枪能杀两个,可以杀死任意两个人,激光束的路径是消耗的能量,求最小能量,保证一次只消灭两个敌人,你的位置不变Sample Input20 0 1 6 0 3 00 0 2 1 0 2 1 -1 0 -2 0Sample OutputCase #1: 6.00 Case #2: 4.41分析:给每个点编个号,用状态压缩表示射击那些点,射击过的表示为1,dp[i]表示射击状态 i 时最少消耗,答案即为dp[(1 2 #
阅读全文
摘要:不要62Problem Description杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有4或62的号码。例如:62315 73418 88914都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。Input输入的都是整数对n、m(0 2 # include 3 int
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555题目大意:从0开始到给定的数字N所有的数字中遇到“49”的数字的个数。Sample Input3150500Sample Output0115HintFrom 1 to 500, the numbers that include the sub-sequence "49" are "49","149","249","349","449","490",&qu
阅读全文
摘要:敌兵布阵Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地到第10个营地共有多少人!”Tidy就要马上
阅读全文
摘要:月之数Problem Description当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数。如果一个正整数m表示成二进制,它的位数为n(不包含前导0),寒月称它为一个n二进制数。所有的n二进制数中,1的总个数被称为n对应的月之数。例如,3二进制数总共有4个,分别是4(100)、5(101)、6(110)、7(111),他们中1的个数一共是1+2+2+3=8,所以3对应的月之数就是8。Input给你一个整数T,表示输入数据的组数,接下来有T行,每行包含一个正整数 n(1 2 int f[21]={0,1,3}; 3 void ini
阅读全文
摘要:Tiling_easy versionProblem Description有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。Input输入的第一行包含一个正整数T(T 2 int f[31]={0,1,3}; 3 void init(){ 4 for(int i=3; i<31; i++) 5 f[i] = f[i-1] + 2*f[i-2]; 6 } 7 int main(){ 8 int T; 9 init();10 scanf("%d",&T);11 ...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3442题目大意:三国时期,刘备逃亡。给定一个最大为50*50的地图,刘备在地图中只能往4个方向走。 地图中,A代表瞭望塔,攻击范围是2,攻击伤害是1; B 代表堡垒,攻击范围是3,攻击伤害是2; C 代表火焰,对于走在该位置上的单位造成3点伤害; D 代表弓箭手,攻击范围是2,攻击伤害是4; E 代表士兵,攻击范围是1,攻击伤害是5; $ 代表刘备; !代表目的地; # 代表障碍物 . 代表地板刘备不能穿过A,B,D,E。但是可以走上C和地板。 有3条重要规则:1.刘备不能被相同的...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2809题目大意:给出战神吕布的初始攻击力ATI、防御力DEF、生命值HP、每升一级增加的攻击力In_ATI,增加的防御力In_DEF和增加的生命值In_HP。然后给出n个敌人的攻击力、防御力、生命值和杀死该单位能获得的经验值EXP。 吕布的初始经验值EXP是0,初始等级level是1,每当EXP>=level*100时就会升级。 在吕布LvBu和敌人A之间的战斗有3条规则 1.吕布攻击A,A失去Max(1,LvBu's ATI- A's DEF) HP; 2.A攻击吕布,吕布失
阅读全文
摘要:Mondriaan's DreamProblem DescriptionSquares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of his paper was filled with squares and rectangles), he
阅读全文
摘要:题目链接:http://poj.org/problem?id=1564题目大意:给定一个整数t,和n个元素组成的集合。求能否用该集合中的元素和表示该整数,如果可以输出所有可行解。1 2 # include 3 # include 4 using namespace std; 5 bool cmp(int a,int b){ 6 return a>b; 7 } 8 int a[15],t,n; 9 bool flag;10 int ans[15],len;11 12 void dfs(int sum,int mark){13 int i;14 if(sum == 0){1...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3006题目大意:给定n个集合,每个集合都是由大于等于1小于等于m的数字组成,m最大为14。由给出的集合可以组成多少个不同的集合。输入描述:第一行为n,m,接下来n行,每行包含k+1个数字,第一个为k,表示该集合的元素个数,接下来k行表示集合元素。Sample Input4 41 11 21 31 42 43 1 2 34 1 2 3 4Sample Output152分析:以为m的规模很小,可以用二进制表示集合。借助位运算的或( | )来达到集合合并的目的。 比如一个集合中有两个元素 1 3 那就.
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114题目大意:根据储钱罐的重量,求出里面钱最少有多少。给定储钱罐的初始重量,装硬币后重量,和每个对应面值硬币的重量。Sample Input310 11021 130 5010 11021 150 301 6210 320 4Sample OutputThe minimum amount of money in the piggy-bank is 60.The minimum amount of money in the piggy-bank is 100.This is impossible.分
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074题目大意:学生要完成各科作业, 给出各科老师给出交作业的期限和学生完成该科所需时间, 如果逾期一天则扣掉一单位学分, 要你求出完成所有作业而被扣最小的学分, 并将完成作业的顺序输出.Sample Input23Computer 3 3English 20 1Math 3 23Computer 3 3English 6 3Math 6 3Sample Output2ComputerMathEnglish3ComputerEnglishMath分析:(转)刚开始以为是背包, 但背包难以记录输出顺序
阅读全文
摘要:题目链接: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
阅读全文
摘要:胜利大逃亡(续)Problem DescriptionIgnatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一个。魔王每t分钟回地牢视察一次,若发现Ignatius不在原位置便把他拎回去。经过若干次的尝试,Ignatius已画出整个地牢的地图。现在请你帮他计算能否再次成功逃亡。只要在魔王下次视察之前走到出口就算离
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4627题目大意:给定一个整数n(2 2 # include 3 # include 4 using namespace std; 5 __int64 n; 6 int main() 7 { 8 int T; 9 scanf("%d",&T);10 while(T--)11 {12 scanf("%I64d",&n);13 __int64 temp = n/2;14 if(n==2)15 prin...
阅读全文
摘要:Pieces题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628题目大意:给定一个字符串s,如果子序列中有回文,可以一步删除掉它,求把整个序列删除所需要的最少步数。比如:axbyczbea 可以一次删除掉abcba 得到xyzeSample Input2aaabbSample Output12分析:这道题目刚出来时居然有超过一半的人AC,是我太弱了吗? 到底不会,先贴出标程,再慢慢消化好了 集合上的动态规划。。。和点集配对很像,这里我先求出所有的回文串,然后dp。 设d[S]表示将集合S中的字母删除需要多少步,结果就是d[(1 2 #...
阅读全文
摘要:11年北京现场赛的题目。概率DP。公式化简起来比较困难。。。。而且就算结果做出来了,没有考虑特殊情况照样会WA到死的。。。。去参加区域赛一定要考虑到各种情况。像概率dp,公式推出来就很容易写出来了。 1 /* 2 HDU 4098 3 题意:有n个人排队等着在官网上激活游戏。Tomato排在第m个。 4 对于队列中的第一个人。有一下情况: 5 1、激活失败,留在队列中等待下一次激活(概率为p1) 6 2、失去连接,出队列,然后排在队列的最后(概率为p2) 7 3、激活成功,离开队列(概率为p3) 8 4、服务器瘫痪,服务器停止激活,所有人都无法激活了。 9 求服务器瘫痪时Tomato在队列中的
阅读全文