AC之路!
文章平均质量分 76
jqandjq
这个作者很懒,什么都没留下…
展开
-
POJ1163 HDOJ2084 THE TRIANGLE 数塔 DP启蒙
DP启蒙题,可以联系递归的方法,结合练习。方法类似于递归记录。Pku acm 1163 the Trianglehttp://acm.pku.edu.cn/JudgeOnline/problem?id=1163HDU acm 2084 数塔 http://acm.hdu.edu.cn/showproblem.php?pid=2084#include using原创 2009-02-26 10:11:00 · 1973 阅读 · 0 评论 -
PKU 1328 Radar Installation
PKU 1328 Radar Installationhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1328我晕,太注意精度问题了让我WA了N次!!注意我代码里给出的边界测试数据就OK了贪心+排序:#include #include #include using namespace std;const double E原创 2009-04-16 14:25:00 · 803 阅读 · 0 评论 -
HDOJ2519 新生晚会
http://hi.baidu.com/chenghui2050/blog/item/84c552ad525c8f0f4b36d688.html 新生晚会这道题出看可能是比较简单的,无非就是C(n,m)而已,只要注意n>m时输出0就OK了!但是这道题当时的AC率只有9%左右。如果用传统的C(n,m)=n!/(m!*(n-m)!)来做,抱歉WA。我当初就是这样做的,马上想到了C(n,m)=原创 2009-04-02 17:59:00 · 899 阅读 · 0 评论 -
HDU 1882 Strange Billboard
HDU 1882 Strange Billboard http://acm.hdu.edu.cn/showproblem.php?pid=1882位运算+枚举先遍历第一行的点击可能--最多有2^16种然后接下来的行一定要点击上一行为*的点位运算可以实现整行处理。防超时。 #include #include #include using namespace std原创 2009-04-11 17:34:00 · 1561 阅读 · 1 评论 -
PKU 2479 Maximum sum
PKU 2479 Maximum sumhttp://acm.pku.edu.cn/JudgeOnline/problem?id=2479又一晚上讨论题关键求两个最大连续子序列我设计的算法: 前后各算出 求解最大和:M 999755555原创 2009-03-27 15:52:00 · 872 阅读 · 0 评论 -
PKU 2192 Zipper
PKU 2192 Zipperhttp://acm.pku.edu.cn/JudgeOnline/problem?id=2192晚上要讨论的题之一,先A一下也是LCS的思想,关键是去找状态转移方程AC CODE:#include using namespace std;#define maxlen 205char a[maxlen];原创 2009-03-27 14:47:00 · 554 阅读 · 0 评论 -
Pku 1080 Humman Gene Function
Pku 1080 Humman Gene Functionhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1080这是一道比较经典的DP,两串基因序列包含A、C、G、T,每两个字母间的匹配都会产生一个相似值,求基因序列(字符串)匹配的最大值。这题有点像求最长公共子序列。只不过把求最大长度改成了求最大的匹配值。用二维数组opt[i][j]记录原创 2009-03-26 20:25:00 · 1036 阅读 · 0 评论 -
PKU 2250 Compromise
PKU 2250 Compromisehttp://acm.pku.edu.cn/JudgeOnline/problem?id=2250这个也是求最长公共字串,只是相比Common Subsequence需要记录最长公共字串的构成,此时箭头的标记就用上了,在程序中,用opt[][]存放标记,0表示朝向左上方,1表示指向上,-1表示指向左。result[][]存放当前最大字串长度。在求最优解原创 2009-03-25 20:29:00 · 669 阅读 · 0 评论 -
HDOJ 1756 Cupid's Arrow
Problem Description传说世上有一支丘比特的箭,凡是被这支箭射到的人,就会深深的爱上射箭的人。世上无数人都曾经梦想得到这支箭。Lele当然也不例外。不过他想,在得到这支箭前,他总得先学会射箭。日子一天天地过,Lele的箭术也越来越强,渐渐得,他不再满足于去射那圆形的靶子,他开始设计各种各样多边形的靶子。不过,这样又出现了新的问题,由于长时间地练习射箭,Lele的视力已经高原创 2009-04-05 00:19:00 · 711 阅读 · 0 评论 -
PKU 1887 Testing the CATCHER
经典例题:PKU 1887 Testing the CATCHERhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1887解题思路:创建一个一维数组num_array[j],max_array[],num_array[j]表示序列的元素,max_array[i]表示以第i个元素结尾的序列中的最长下降子序列,初始化为0,对于一个max_array[i原创 2009-04-19 11:35:00 · 581 阅读 · 0 评论 -
东华大学上海ACM全国邀请赛 Gem Squares
东华大学上海ACM全国邀请赛G题 Problem : Gem SquaresDescriptionYou are given a board with 8×8 squares. In each square, there can be either a colored gem or no gem at all. Gems with different colors are represen原创 2009-06-05 10:53:00 · 1913 阅读 · 0 评论 -
1026 Ignatius and the Princess I
1026 Ignatius and the Princess I http://acm.hdu.edu.cn/showproblem.php?pid=1026 这道题是经典的地图寻路搜索问题可以用广度优先搜索来完成此题AC CODE:#include #include const int MaxQueue = 1010000;char g[105][105];原创 2009-05-27 19:46:00 · 669 阅读 · 1 评论 -
1016 Prime Ring Problem
1016 Prime Ring Problem这道题是简单的搜索,但是题目还是不错的本来想用STACK来实现,但是发现不是很好控制就是就用DFS实现回溯,一次ACAC CODE :// 1016 Prime Ring Problem BY JQ, 2009.5.20 23:53:00#include int stack[21];#define N 15;bool a[15];int p[原创 2009-05-22 13:16:00 · 1055 阅读 · 0 评论 -
3310 Caterpillar
3310 Caterpillarhttp://acm.pku.edu.cn/JudgeOnline/problem?id=3310 图的操作,题目的意思是:给你一个图,判断它是不是caterpillar是caterpillar的条件是:1.首先这个图不能有环2.最重要的是,这个图中可以找到一条路径这条路径的一定可以经过图中所有点,或邻居点 和ZGG讨论之前我原创 2009-05-21 18:42:00 · 510 阅读 · 0 评论 -
ACM题目的风格和近几年题目的发展
ACM /ICPC的比赛形式一般是五个小时八个题目,综合考察选手的数学能力、算法能力、coding能力和debug能力,还有团队配合能力。数学方面主要强调组合数学、图论和数论这三个方面的能力;而算法的覆盖范围很广,涉及了大部分经典的算法,和少量较前沿的算法。由于每道题目都需要通过所有的测试数据才能得分,并且需要精确解,这限制了Approximation algorithm在一些NP转载 2009-05-06 19:40:00 · 795 阅读 · 0 评论 -
POJ 2591 Set Definition
POJ 2591 Set Definition算是简单题了,双迭代 #include #include using namespace std;long s[10000005];int main(){ int i,j,k,m,n,t; s[0] = 1; j = 0; k=1; i=0; for (;k<=10000000;) {原创 2009-04-20 20:41:00 · 587 阅读 · 0 评论 -
HDOJ 1729 Stone Game
那么对于这些较难的博弈问题可以不断去找必败点,找出临界值SG比如对于HDOJ 1729 Stone Game一题http://acm.hdu.edu.cn/showproblem.php?pid=1729我们可以设有一个箱子容量为s时,d是一个必败点达到d这点的话,我们可以达到的点为 d+1 ~ d+d*d所以一定是: d+d*d 为了找出临界值,于是我的设我一步走到d+1原创 2009-04-19 10:27:00 · 863 阅读 · 2 评论 -
HDOJ 1735 大明A+B
delphi TStringList的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。常规的用法大家都知道,现在来讨论它的一些高级的用法。先把要讨论的几个属性列出来:1、CommaText2、Delimiter & DelimitedText3、Names & Values & ValueFromIndex先看第一个:CommaText。怎么用呢?用代码说原创 2009-04-05 00:09:00 · 1072 阅读 · 2 评论 -
HDOJ 1041 Computer Transformation
HDOJ 1041 Computer Transformationhttp://acm.hdu.edu.cn/showproblem.php?pid=1041简单的大数应用,但很久没有写大数的题WA了几次a[i][j+1] = a[i][j] / 10; //进位a[i][j] = a[i][j] % 10; 但不是简单的大数A+B,所以进位时要注意 /10;改原创 2009-03-24 13:51:00 · 741 阅读 · 0 评论 -
HDOJ 2212 DFS
HDOJ 2212 DFS http://acm.hdu.edu.cn/showproblem.php?pid=2212 比较有技术含量的做法是:for(i=11;i一个十位数的各位阶乘和最多为362800最为猥琐的做法是: main{printf("1/n2/n/145/n40585/n");}原创 2009-03-23 23:07:00 · 534 阅读 · 0 评论 -
HDOJ 2176
有若干堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。相关的经典例题:http://acm.hdu.edu.cn/showproblem.php?pid=2176这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示某种局势,首先(0,0,0)显然是奇异局势,无论谁面对奇异局势,都必然失败。第二种奇异局势是(0,n,n),只要与对手原创 2009-02-27 18:06:00 · 756 阅读 · 0 评论 -
HDOJ2177 取(2堆)石子游戏
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。相关的经典例题:http://acm.hdu.edu.cn/showproblem.php?pid=2177这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,...,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们原创 2009-02-27 14:13:00 · 1037 阅读 · 0 评论 -
HDOJ 1850 Being a Good Boy in Spring Festival
Problem Description:下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。现在我们不想研究到底先手为胜还是为负,我只想问大家:——“先手的人如果想赢,第一步有几种选择呢?” 这题NIM类型的博弈算是简单题了HDOJ 18原创 2009-03-02 20:00:00 · 810 阅读 · 0 评论 -
HDOJ 1847 Good Luck in CET-4 Everybody!
HDOJ 1847 Good Luck in CET-4 Everybody!:http://acm.hdu.edu.cn/showproblem.php?pid=1847网上的提示说是求SG值,但我这道题也是多举两组数据就AC了#include using namespace std;int main(){ int i,j,k,n,m,t; while (scan原创 2009-03-01 21:29:00 · 802 阅读 · 1 评论 -
HDOJ 2516 取石子游戏(一堆)
http://acm.hdu.edu.cn/showproblem.php?pid=2516这题在去年的训练赛有出现过,当时对博弈很不熟悉,于是没有钻研此题,但后来发现一个规律就是题中的数据和菲波纳契数列有一定的联系。所以问题的关键是把INT内的F数列打出来: #include using namespace std;__int64 *a = new __int64原创 2009-02-27 12:55:00 · 953 阅读 · 1 评论 -
HDOJ 1087 Super Jumping! Jumping! Jumping!
经典DP例题:HDU 1087 Super Jumping! Jumping! Jumping!http://acm.hdu.edu.cn/showproblem.php?pid=1087这道理的题意是给一个序列要你求它的最大上升序列(可跳)不用连续如序列:1 4 7 3 5 6 那么开另一个数组来保存同下标的“最大值”,每一个都要向前找合法的最大b值,如这里的5可以找的合法值为3 4原创 2009-02-26 21:13:00 · 2974 阅读 · 0 评论 -
HDOJ 1003 Max Sum
典型例题:Max Sum:http://acm.hdu.edu.cn/showproblem.php?pid=1003这是DP的经典之一,欲求出一个最优的结果,但不暴力地去枚举。如一个序列:6,-1,5,4,-7 求它的连续最大段就是:6 + (-1) + 5 + 4 = 14.用DP的方法只要一重的循环就可以把这道题搞定:每一次的计算对前一次结果不会有影响,这是DP的特点。这原创 2009-02-26 20:42:00 · 4538 阅读 · 11 评论 -
POJ1579 HDOJ1579 Function Run Fun
Pku 1579 Function Run Fun http://acm.pku.edu.cn/JudgeOnline/problem?id=1579Hdu 1579 Function Run Fun http://acm.hdu.edu.cn/showproblem.php?pid=1579 开了一个三维数组,从w(0,0,0)开始递推,逐步产生到w(20,20,20)的原创 2009-02-26 10:41:00 · 1764 阅读 · 0 评论 -
HDOJ 1907 PKU 3480 John
http://acm.hdu.edu.cn/showproblem.php?pid=1907http://acm.hdu.edu.cn/showproblem.php?pid=2509 和HDOJ2059一样1907 是简单的博弈类型属于我整理的博弈类型中的NIMM(尼姆博弈) #include using namespace std;int a[50];int m原创 2009-02-28 20:46:00 · 891 阅读 · 0 评论 -
HDOJ 1846 Brave Game
HDOJ 1846 Brave Game:http://acm.hdu.edu.cn/showproblem.php?pid=1846在取石子问题上加了最大取石子数的限制。只要多写出几组数据就可以发现规律。 代码:#includeusing namesapce std;int main(){ int t,n,m,i; scanf("%d",原创 2009-03-01 21:02:00 · 644 阅读 · 0 评论 -
HDOJ 2502月之数
HDOJ 2502月之数 http://acm.hdu.edu.cn/showproblem.php?pid=2502可以直接用二进制模拟但模拟之后却发现有公式我找到的公式是: a[i] = pow(2,i-1)+(i-1)*pow(2,i-1)/2; 二进制模拟法:#include #include using namespace std;int main()原创 2009-03-23 22:19:00 · 611 阅读 · 0 评论 -
PKU 1159 Palindrome
PKU 1159 Palindrome http://acm.pku.edu.cn/JudgeOnline/problem?id=1159还是LCS,但数据改到了5000, 很容易超内存,要注意!我用的是滑动数组的方法实现内存优化的: #include using namespace std;char a[5001];int y[5001];int temp[5原创 2009-03-24 22:25:00 · 1111 阅读 · 0 评论 -
PKU 1458 HDOJ 1159 Common Subsequence
最长公共子序列LCS (学习逆向求解和向多维转化的思想)经典例题:PKU 1458 HDOJ 1159 Common Subsequence http://acm.pku.edu.cn/JudgeOnline/problem?id=1458http://acm.hdu.edu.cn/showproblem.php?pid=1159这题苏强的表格画得很好,引用一下原创 2009-03-24 20:22:00 · 1266 阅读 · 2 评论 -
HDOJ 1062 Text Reverse
没办法,要检查题数了,只好狂A简单题咯~~~HDOJ 1062 Text Reverse http://acm.hdu.edu.cn/showproblem.php?pid=1062简单的字符串控制,之前好像做过,不过题库里这里还没打勾…..之前还很菜的时候在训练时还A错了几次..而且没A出来今天十几分钟自信地A掉. #include #include using原创 2009-03-23 19:21:00 · 1229 阅读 · 3 评论 -
PKU 2262 Goldbach's Conjecture
上星期遗下的题目还有一道没有完成PKU 2262 Goldbachs Conjecturehttp://acm.pku.edu.cn/JudgeOnline/problem?id=2262主要是用高效点的求素数的方法 #include using namespace std;const int N = 1000005;bool a[N];int p[N];原创 2009-03-22 11:34:00 · 660 阅读 · 0 评论 -
HDOJ 1536 S-NIM
S-NIM:在NIM游戏的基础上加入了S值,限制REMOVE BEADS的数量。其实只要用SG函数就可以解出来了。#include#include#includeusing namespace std;int k; //enable的个数int enable[100]; //规定可以取走的数int SG[10001]; //存放SG值int SG_v原创 2009-03-02 21:08:00 · 809 阅读 · 0 评论 -
HDOJ 1848 Fibonacci again and again
今天,又一个关于Fibonacci的题目出现了,它是一个小游戏,定义如下:1、 这是一个二人游戏;2、 一共有3堆石子,数量分别是m, n, p个;3、 两人轮流走;4、 每走一步可以选择任意一堆石子,然后取走f个;5、 f只能是菲波那契数列中的元素(即每次只能取1,2,3,5,8…等数量);6、 最先取光所有石子的人为胜者; HDOJ 1848 Fibonacci again原创 2009-03-02 20:28:00 · 1061 阅读 · 0 评论 -
PKU 2453 An Easy Problem
PKU 2453 An Easy Problemhttp://acm.pku.edu.cn/JudgeOnline/problem?id=2453 题目的大意是给一个数I要求出一个比I大的最小值,这个值二进制的表示1的数量要和I中1的数目相同。那么首先我们可以想到的方法是,对相同的I的排列数,不用通同位运算得解,但是效率应该不会很高,如果要提高效率或者可以研究一个1的位置变换的规原创 2009-06-07 13:29:00 · 925 阅读 · 0 评论