
算法
文章平均质量分 67
suikay
这个作者很懒,什么都没留下…
展开
-
POJ 3625 Building Roads 解题报告
题意:给出N个坐标点的位置,其中的K个是已经相连的,求把它们连在一起需要最短的路径和。分析:典型的最小生成树。一开始我选择了Kruskal(我也不知道怎么会选上的。。)。把所有有可能的边全部添加进去,外加stl的heap优化。#include #include #include #include #include #include #include #incl原创 2009-08-04 15:36:00 · 1040 阅读 · 1 评论 -
2983 Is the Information Reliable? 解题报告
Memory: 2776KTime: 860MSLanguage: G++Faults:5 wa+1 oleAlgorithm:查分约束/* 这题我是用差分约束做的 求的是最短路,如果有负环 则 inreliable*/#include #include #include using namespace std;#define NIL 100000000#d原创 2009-03-04 09:55:00 · 340 阅读 · 0 评论 -
2485 Highways 解题报告 2
AccecptTime: 2008-12-22 11:41:02Language: C++Memory: 596KTime: 157MSErrors:原创 2008-12-22 11:41:00 · 319 阅读 · 0 评论 -
1751 Highways 解题报告 2
AccecptTime: 2008-12-22 11:19:49Language: C++Memory: 2424KTime: 94MSErrors: NoAlgorithm: Prim原创 2008-12-22 11:20:00 · 329 阅读 · 0 评论 -
Prim 最小生成树总结
之前以为Prim的最小生成树算法不过如此。后来经过波波的指导发现原来我做的大部分最小生成树的题目里边用Prim都可以得到比较高的效率,而且代码比较少。而在《算法导论》里边Prim理论上可以达到O(E+Vlg(V))比Kruskal更优。先贴一个自己写的标程: #include #include #include #include using namespac原创 2008-12-22 14:23:00 · 619 阅读 · 0 评论 -
1789 Truck History 解题报告
本来以为对最小生成树的学习告一段落了,昨晚跟波波聊的时候他说Prim不一定比Kruskal慢,于是我就拿1789来开刀。果然,于是我先用Kruskal,ac,1641MS,恩,不错.再用Prim写,一交,果然TimeLimitExeeded!!看来波波错了,但是他是已经ac了的..看看他的时间,只有375MS,不算cin的时间消耗他的程序比我快了足足3倍!!看他的解题报告,原来他用的储存结构和我原创 2008-12-22 10:42:00 · 364 阅读 · 0 评论 -
2346 Lucky tickets 解题报告
Memory: 2612K Time: 63MSLanguage: G++Fault: 0 #include#include//将数分为左右两边,然后用选择原则把一个数出现的情况平方//即左边出现的情况乘以右边同时出现这个数的情况即可int poss[6][100020];int main(){ int N; scanf("%d",&N);原创 2009-03-05 23:18:00 · 427 阅读 · 0 评论 -
2181 Jumping Cows 解题报告
Memory: 304KTime: 94MSLanguage: G++Faults: 0Algorithm: dp/* 这应该也算是dp吧 记录上次odd time的取值 和 even time 的取值 */#includeint main(){ int p,tmp,_neg, pos(0),neg(0); scanf("%d",&p); for(in原创 2009-03-04 11:37:00 · 393 阅读 · 0 评论 -
poj 2051解题报告
这是我除了a+b外唯一秒杀的题.当然一次搞定是要付出代价的,看代码就知道了.这道题主要考的就是qsort的应用(又是qsort -_-!)另外波波觉得这道题比较有实际应用.#include #include #include #include //数据储存结构 typedef struct work{ int Q_number; int原创 2008-12-09 23:17:00 · 449 阅读 · 0 评论 -
2063 Investment 解题报告
Memory: 612KTime: 16 MSLanguage: G++Faults:2 wa + ...Algorithm: dp /* 由“The value of a bond is always a multiple of $1 000”可以推知 可以把所有的value除以1000来简化dp “The interest of a bond is never more原创 2009-03-04 10:40:00 · 845 阅读 · 0 评论 -
2184 Cow Exhibition 解题报告
Memory: 1228KTime: 47MSLanguage: G++Faults: 3 TLE + 2WA + 1 REAlgorithm: dp #includeusing namespace std;#define MID 100050bool in[200100];// 用dp[i]记录smartness为i的情况下funness的最大值// 由于s原创 2009-03-04 19:52:00 · 342 阅读 · 0 评论 -
1011 Sticks
摘自Poj的warmtrue大牛:1。降序排列,从最长的开始一个个找。如果找的是第一根杆而且最长的没有选到则终止。2。两个相同值,前一个搜索失败后后一个也不用找了。这两条都是搜索经常用到的剪枝,不过我写的时候忽略了第二条,TLE。加了以后32MS就过了。#include #include #include using namespace std;int n,ori_s原创 2009-07-31 16:55:00 · 531 阅读 · 0 评论 -
最长子序列的更优解法
这个算法巧妙之处在于利用了大部分之前的计算的信息。这里开了一个数组,记录最长子序列stack,stack[n]记录长度为n的子序列的最小序列尾数。 举例:原序列为1,5,8,3,6,7 读完8以后,栈为1,5,8,此时读到3,则用3替换5,得到栈中元素为1,3,8, 再读6,用6替换8,得到1,3,6,再读7,得到最终栈为1,3,6,7, 最长递增子序列为长度4。(例子来自于h原创 2009-07-21 16:50:00 · 557 阅读 · 0 评论 -
POJ 3414 Pots
本来用string来记录状态,tle,于是改为用类似于并查集的方法记录。只记录 此次动作 和 上一个动作的位置。中间又有一些低级失误,wa了n次。。orz/*ID: immozer1PROG: ****LANG: C++*/#include #include #include #include #include #include #include原创 2009-07-15 01:55:00 · 685 阅读 · 0 评论 -
POJ 3504 Obfuscation 解题报告
//这道题的解法有点傻...首先对字符串进行hash//得到其在字典中的位置,然后比较两个hash值(hash2,hash3)//是否相等,另外用dp[i]表示其位置是否能达到,0为不能//-1为多种可能,否则就用 101*到达i位置的字符串对应的hash+字符串长度#include#include#include#define P1 3543#define P2原创 2009-04-04 16:16:00 · 1633 阅读 · 0 评论 -
福州oj 1689 未ac
/* 这题应该不难,主要是将种族杀掉不同怪物 数分别做成一个背包,另外是记录杀死n个怪物 * 所需要的能量,但是为什么就ac不了呢。。 */#include#include#includeusing namespace std;int m,n,p;//e[i][j] 用于记录第i个种族杀掉j个怪物所需要的最少能量//用d[i][j]记录前i个种族要杀掉j个怪原创 2009-03-22 13:40:00 · 1207 阅读 · 0 评论 -
1363 Rails 解题报告
#include#includeusing namespace std;int main(){ bool v[5010],flag1,flag2; int n,tmp; while(cin>>n&&n) { while(cin >> tmp&& tmp) { bool res(true); memset(v,f原创 2009-03-10 17:14:00 · 529 阅读 · 0 评论 -
1716 Integer Intervals 解题报告
AccecptTime: 2008-12-24 17:47:56 2008-12-24 17:51:06Language: C++Memory: 224K 204KTime: 0MS 32MSErrors: 1 WAAlgo原创 2008-12-24 17:52:00 · 805 阅读 · 3 评论 -
2236
Memory: 396K Time: 0MSLanguage: G+Fault: 2 wa #define M 1440#include#include#includeusing namespace std;int n,m,t;//这里用动态规划算出最早的开始时间用ttime来记录//arrive用来记录车到达的时间int ttime[M],arr原创 2009-03-05 22:37:00 · 543 阅读 · 0 评论 -
poj 2153解题报告
tle了n次后,经过波波的指导,成功的ac了这道小水题.写篇报告记录一下~~这道题的难点是字符串的匹配.通过用二分匹配法可以在规定的时间内对已排序的数组进行查找.这应该是对qsort和bsearch应用的一种训练.而我觉得题目本身就对储存结构有比较明显的提示.#include #include #include //数据储存 typedef struct da原创 2008-12-09 23:05:00 · 474 阅读 · 0 评论 -
1644 To Bet or Not To Bet 解题报告
本来不想给这么水电题目写报告了的,但是自己居然在这上边wa了8次,把一些该留意到细节写下来。有时候都不知道该不该对double进行精度判断了。。。平时要注意初始化 #include#include#include#define M 55#define T 44#define NIL 999999int is[M],m,t;double dp[M][M];原创 2009-02-11 12:42:00 · 555 阅读 · 0 评论 -
1742 Coins 解题报告
传说中“男人八题”中最简单的一道,但是在没有看别人的解题报告前我还是没能解出来。。后来终于过了。其实我ac的算法也是一个普通的dp,只是状态记录和以前的有些不一样而已。使用了一个use[x]来记录达到x使用当前第i个硬币的个数.Memory: 1368K Time: 2282MSLanguage: G++ Faults:5 tle#include#include#inclu原创 2009-02-12 10:53:00 · 393 阅读 · 0 评论 -
2479 Maximum sum 解题报告
AccecptTime: 2009-02-03 16:44:05Language: G++Memory: 1808KTime: 547MSErrors: 3WAAlgorithm: DP #include #include #includ原创 2009-02-03 16:38:00 · 491 阅读 · 0 评论 -
zoj 1076 Gene Assembly 解题报告
AccecptTime: 2009-02-02 00:18:02Language: C++Memory: 196KTime: 0MSErrors: 3WAAlgorithm: DP #include #include #include #include原创 2009-02-02 00:18:00 · 891 阅读 · 0 评论 -
ZOJ 2972 Hurdles of 110m 解题报告
AccecptTime: 2009-02-01 16:21:30Language: C++Memory: 184KTime: 0MSErrors: 3 waAlgorithm: DP #include #include #include usin原创 2009-02-01 16:22:00 · 1178 阅读 · 0 评论 -
1730 Perfect Pth Powers 抄题报告
终于ac一道题了...不过这个久违的ac是抄来的...http://hi.baidu.com/zhulei632/blog/item/0877392947e8dcfb99250aef.html觉得这道题很多东西要学,就把自己觉得有用的加个注释~不过这道题也有点太变态了..以前一直以为只有double转int会丢信息,原来int转double也会丢...#include #include #incl原创 2009-01-13 20:53:00 · 434 阅读 · 0 评论 -
1062 昂贵的聘礼 解题报告
AccecptTime: 2009-01-04 17:12:21Language: C++Memory: 296KTime: 0MSErrors: 3WAAlgorithm: Dijkstra最短路径#include #include #include #include原创 2009-01-04 17:14:00 · 1277 阅读 · 1 评论 -
3268 Silver Cow Party 解题报告
AccecptTime: 2009-01-01 12:05:53Language: C++Memory: 4112KTime: 63MSErrors: 2WA + 1TLAlgorithm: Dijkstra最短路径#include #defi原创 2009-01-01 12:17:00 · 638 阅读 · 0 评论 -
2253 Frogger 解题报告
AccecptTime: 2008-12-30 11:11:23Language: C++Memory: 572KTime: 16MSErrors: 2WAAlgorithm: Dijkstra最短路径#include#include#include #include #include usi原创 2008-12-30 11:12:00 · 655 阅读 · 0 评论 -
1797 Heavy Transportation 解题报告
AccecptTime: 2008-12-30 10:07:12Language: C++Memory: 4184KTime: 1641MSErrors: 3PE + 4WA + 1TL + 1ML + 2REAlgorithm: Dijkstra#include #include #include #include #include原创 2008-12-30 10:25:00 · 505 阅读 · 0 评论 -
1042 Gone Fishing 解题报告
AccecptTime: 2009-02-03 17:02:15Language: G++Memory: 1152KTime: 407MSErrors: 3 waAlgorithm: DP#include #include #include using原创 2009-02-03 16:57:00 · 496 阅读 · 0 评论 -
1141 Brackets Sequence 解题报告
AccecptTime: 2009-02-03 19:44:50Language: G++Memory: 1064KTime: 0 msErrors: 5 waAlgorithm: DP 这题看者眼熟,但是又做了很久...做了一些DP题后觉得好像主要难在状态的纪原创 2009-02-03 22:04:00 · 433 阅读 · 0 评论 -
1609 Tiling Up Blocks 解题报告
这道题考察dp的基础,开始没注意l1==l2&&m12 的情况wa了一次Memory: 324K Time: 0MSLanguage: G++ Faults:1 waAlgorithm:DP /* *我的做法是从底至上 */#include#include#define N 102int lm[N][N];bool input(){ i原创 2009-02-11 00:19:00 · 475 阅读 · 0 评论 -
1456 Supermarket 解题报告
很水的一道题,但是居然wa了两次。下次要注意了:以bool为返回值的函数不一定默认返回true #include#include#include#define N 10110using namespace std;typedef struct Product{ int w; int dl; bool operator()(Product a,Product原创 2009-02-10 23:26:00 · 386 阅读 · 0 评论 -
1160 Post Office 解题报告
Memory: 1292KTime: 16MSLanguage: G++Fault:(none) 一道dp水题,状态不好,居做了这么久... #include #include #define V 315#define P 32int dp[V][P];int p[V];int d[V][V];int main(){ int v,p原创 2009-02-07 14:45:00 · 445 阅读 · 0 评论 -
1083 Moving Tables
这道题太水了,但是自己还是错了.平时要注意看题,因为1,2号房间占用同一段门廊.wa了一次.其余的只要注桌子意可能从后到前搬,输入处理一下即可.然后直接贪心原创 2009-02-07 15:40:00 · 382 阅读 · 0 评论 -
1015 Jury Compromise 解题报告
做了很久,终于把这道在书上看过的题写出来了。虽然方法笨了点,但毕竟是自己写的,还是把它贴出来,见笑了。 Memory: 8428K Time: 63MSLanguage: G++ Result: AcceptedFaults: 6 wa+ 3 MLE #include using namespace std;#define M 21#define N 2原创 2009-02-07 11:50:00 · 516 阅读 · 0 评论 -
1260 Pearls 解题报告
AccecptTime: 2009-02-04 14:54:57Language: G++Memory: 1004 KTime: 0 msErrors: 3 waAlgorithm: DP这道题咋一看以为是贪心的,但惨痛的wa了3次后恍然大悟.果然是dp的,(或者是我不会用贪心吧原创 2009-02-04 14:58:00 · 522 阅读 · 0 评论 -
1080 Human Gene Functions 解题报告
AccecptTime: 2009-02-04 01:16:09Language: G++Memory: 996KTime: 16 msErrors: 2 waAlgorithm: DP 又做了一道dp题,这题之前在书上看过.写起来很快,但是有一个初始化条件没写好.导致原创 2009-02-04 01:17:00 · 953 阅读 · 0 评论 -
1050 To the Max 解题报告
AccecptTime: 2009-02-03 22:59:35Language: G++Memory: 4100KTime: 1672 msErrors: 1 waAlgorithm: DP 呵呵,这题是最大子序列的衍生题,由一维变二维的.我的做法是用一个二维数原创 2009-02-03 23:18:00 · 439 阅读 · 0 评论