- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 弄了一个新的wordpress博客 http://mnlm.comyr.com/
http://mnlm.comyr.com/ mnlm ACM 点滴 这个博客将会记录我之后的ACM的点点滴滴,希望大家多多支持
2011-10-10 13:35:59
565
转载 64位整数全解(增补板)
64位整形引起的混乱主要在两方面,一是数据类型的声明,二是输入输出。首先是如果我们在自己机器上写程序的话,情况分类如下:(1) 在win下的VC6.0里面,声明数据类型的时候应该写作__int64 a;输入输出的时候用 %I64dscanf
2011-08-29 12:32:53
714
原创 hdoj(hdu)-2813-KM+Trie
<br />这个题做得我很郁闷,自己的KM模板照理说应该是没有问题,时间复杂度也是N^3,而N<201;一直超时,我在网上找代码也和我的代码差不多,我就相当的不理解为什么他们就可以过,而我的就是超时呢.后来我只得拿别人的代码一个一个地方改成我的代码的那个样子.发现改了很多地方还是可以过.只剩下输入没有改了,别人也是用MAP,我也是用MAP,我想应该是差不多吧,没想到是因为别人没有多次使用MAP查找,只查找了一次,而我是能用MAP的地方都用了,就这样导致我超时了.后来用字典树写了一下,竟然只要234MS就过了
2011-04-27 15:23:00
778
原创 hdoj(hdu)-3487-play with the chain-SplayTree
<br />这个题弄了很久,原来一直是那个标记下放那里有个地方没有下放导致一直TLE<br />/*ID: mnlm1991PROG: hdoj 3487 play with the chainLANG: C++*/#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<vector>#include<algorithm>#include<string>#inclu
2011-04-26 23:36:00
807
原创 hdoj(hdu)-1561-the more the better
<br />这个是我的第一道树型DP的题<br />解题思路:<br />首先添加一个0节点这样可以简化.<br />根据子节点用多重背包算出根节点<br />代码:<br />/*ID: mnlm1991PROG: hdoj 1561 the more the betterLANG: C++*/#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<vector>#inc
2011-04-17 10:32:00
994
原创 hdoj-3000-字符串处理
<br />这个题没有什么好说的,只要细心就好了.<br />/*ID: mnlm1991PROG: hdoj 3000LANG: C++*/#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<vector>#include<algorithm>#include<string>#include<map>#include<set>#include<bits
2011-04-09 17:30:00
547
原创 usaco-4.4.1-shuttle
<br />这道题做起来挺杯具的,刚开始用BFS,爆内存了,我是用set判重.上网看了一下大部分都是用构造法,我哪知道怎么构造啊,不过还好也有人用BFS,我看了一下他们的好像是用贪心+BFS,就是B只能向右走,而W只能向左走.其实也不怎么理解为什么一定要这样,我也改了一下反倒过了.也不知道怎样去证明为什么那样就可以了.<br />/*ID: mnlm1991PROG: shuttleLANG: C++*/#include<cstdio>#include<cstdlib>#in
2011-04-09 17:20:00
661
原创 usaco-4.3.4-lgame
<br />这个题以前看到了都不敢做,就停了几个月做usaco,重新做的时候发现这个题好像并不难.<br />我是把每个单词都排序,然后用字典树存起来,然后对输入的单词同样对其排序,这样就会比较容易找到只有一个单词构成的最优解.在这个过程中同时找出可能用于二个单词的最优解的单词.然后就是遍历所有可能找出最大值.<br />/*ID: mnlm1991PROG: lgameLANG: C++*/#include<cstdio>#include<cstdlib>#include<
2011-04-09 17:16:00
649
原创 hdoj-3348-贪心
<br />这个题是比较难的贪心题吧。<br />主要算法:<br />1、先求出最小值,同时可以根据能否找到最小值来判断是否有解。<br />2、由最小值慢慢逼近求最大值<br />代码:<br />/*ID: mnlm1991PROG: hdoj 3348 LANG: C++*/#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<vector>#include<al
2011-03-24 22:47:00
621
原创 hdoj-1811-拓扑排序+并查集
<br />这个题我提交了差不多40次。其中可能主要的原因是我没有看清楚题吧。在CONFLICT和UNCERTAIN并存的时候输出CONFLICT。我一直都没有考虑这个。加了这个一下就过了。<br />主要算法:<br />1、用并查集把有=的合并为一个点<br />2、拓扑排序,一定要排序到最后,不能发现了 UNCERTAIN就停止<br />代码:<br />/*ID: mnlm1991PROG: hdoj 1811 LANG: C++*/#include<cstdio>#i
2011-03-23 16:45:00
1017
原创 poj-1390-Blocks(方块消除)-DP
<br />这个题是算法艺术那本书里面的一个例题。虽然看了那里的分析知道了状态方程,但是那里有时间复杂度是O(N^4).这样肯定是要优化的。我也是根据书里的提示来优化的,弄了差不多6个多小时才搞定,而且时间效率也很低,自己的算法能力真的是有待提高。<br /> <br />未经优化的代码:<br />/*ID: mnlm1991PROG: poj 1390 LANG: C++*/#include<cstdio>#include<cstdlib>#include<cmath>
2011-03-21 22:04:00
1345
原创 sgu 119 Magic Pairs
<br />/*ID: mnlm1991PROG: sgu 119 Magic PairsLANG: C++*/#include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<vector> #include<algorithm> #include<string> #include<map> #include<set>
2011-03-15 00:43:00
1133
原创 高精度类-有 + - * / < 还有 开方 等运算
#include#include#includeconst int MOD = 10000;struct BigNum{ int num[1001]; int l; BigNum(int x); BigNum(char * ss); bool operator
2011-03-09 23:29:00
614
原创 sgu 103 Traffic Lights-广搜-优先列队
<br />我是用广搜把这道题过了的,也就是处理等待的时间难一点。我是用一个Deal函数算出在时间T的时刻某个点的颜色,和下个颜色出现还有多少时间还有下下个颜色出现还有多少时间。如果两个点的颜色相同等待时间就为0,否则如果下个颜色出现的时间不同则等待时间为两个点下个颜色出现的时间最小值,否则如果下下个颜色出现的时间不同则等待时间为下下个颜色出现的最小值。<br />/*ID: mnlm1991PROG: sgu 103 traffic lightsLANG: C++*/#include<
2011-03-05 09:52:00
748
原创 usaco 4.3.3 race3
<br />这个题不难,就是求一个有向图的割点,还要求这个图化成无向图的割点。<br />我是先判断是不是有向图的割点,如果是割点再来判断是否是无向图的割点。因为我是用搜索判断是否连通的,在搜索过程中从开始点可以不通过要判断的那个点到达终点就表明这个点不是割点,在判断的过程中我有标记是否可以从开始点到达某个点,所以如果一个是有向图的割点,那么就只要判断它能不能从这个点出发能不能到达之前标记过的点,如果可以则不是无向图的割点。<br /> <br />代码:<br />/*ID: mnlm1991PR
2010-12-29 19:01:00
594
原创 usaco 4.3.2 The Primes
<br />开始的时候自己写的代码最多只能过7组数据。我一直想不把输出存起来,直接找到一个就输出,这样的话就只能一行一行枚举,这样的话填的时候限制条件就很少了。搞到最后所有可以想到的剪枝都用了,还是只能过7组数据。没办法只好搜一下解题报告,原来别人都是把输出存起来的。这样的话限制条件就多了。<br />填表顺序:<br />第一行,第一列;<br />左下到右上;<br />左上到右下;<br />第二行,第二列,第四行,第四列;<br />第三行,第三列;<br />这样的顺序就是为了使限制条件尽可能的多
2010-12-25 11:30:00
649
原创 usaco 4.3.1 Buy Low, Buy Lower DP + 高精度
这个题我觉得高精度到没有什么问题,主要是怎样去DP,第一问也不是问题主要是第二问,刚开始我也不知道怎样会产生重复的序列,后来看了下别人的解题报告,才知道原来是像 7 5 5 1 这样就会有两个7 5 1的序列,我们主要是要去掉这个重复的。我的想法好像别人的不一样,我是先把这个序列排序,然后得到他们的rank然后开一个dp[5001]的数组表示到达i个数是各个rank的最大长度。代码:/*ID: mnlm1991PROG: buylowLANG: C++*/#include#inc
2010-12-21 18:51:00
642
原创 usaco 4.1.4 Cryptcowgraphy 搜索剪枝
<br />又是一道搞得我头晕的题,也是看解题报告才会做的。<br />刚开始还是用宽搜,超内存了,我还以为这道题宽搜和深搜都一样。<br />题目的大意:给你一串字符让你判断能否通过交换COW中的CO和OW之间的字符然后去掉COW 这种变换变成原来的那串字符;<br />剪枝:<br />1 字符串哈希函数,判断是否已经出现过这种字符串。我刚开始是用STL中的SET去判断的,到了第9组数据就不行了。看书对字符串HASH也不熟,都是网上找的代码的。<br />2 判断在COW这些字母之间的字符串是不是在
2010-12-17 23:29:00
738
原创 usaco 4.1.2 Fence Rails 搜索剪枝
这个题是我做usaco第一个不看解题报告做不出来的题目。题目大意:有N根木料,和需要R根木板,我们就要判断最多可以用那些木料可以切出多少根木板。木料和木板的长度都可能是不同的。N 根据木板的长度小于128我们可以知道有很多种重复的木板长度是我们需要的,这里就是剪枝的关键所在了。我们当然知道是用深搜判断能否切出X根木板。我是一个一个木板搜,看看能不能满足要求。首先是判断最大的根数,然后递减的判断能不能满足条件。很容易证明能切出X根木板,就一定可以切出X小的木板,所以我们要先把木板排序,然后搜索。剪枝:1 如
2010-12-17 23:16:00
1088
原创 hdu 1574 RP问题 DP
<br /> <br />问题描述:有N件连续的事件,有些事件是RP值增加a,获益值减少c。有些则相反。每件事件还有一个RP门槛b,RP值增加的事件RP得>=RP门槛,RP值减少的事件则得RP<=RP门槛。满足上述条件不一定就会发生。其中N<= 1000 ,a<=10,b<=10000,c<=10000;求这些事件的最大获益值,事件发生的顺序按照输入先后顺序先后发生,也就是说不可能先发生第i行的事件,然后再发生i – j行的事件。开始RP和获益值都为0;<br /> <br />算法:是DP题。一件事件发生
2010-12-17 22:51:00
1724
2
原创 HDU 2128 Tempter of the Bone II(BFS)有数据
这个题是比较难的宽搜题,之所以难是因为他比以前的这个类似题目多了一个炸弹,增加了题目难度。不过杭电的数据好像不强,也就让很多人可以过了。刚开始的时候我也只有考虑到时间和炸弹数这两个因素。后来我发现有一个因素我们同样需要考虑就是炸弹炸的地方,好像杭电并没有出这种数据我先出个数据6 5S.XX1X.1X1XX.X.XXXXXXXXXXXXXDX这个数据的答案并不是-
2010-10-03 18:37:00
1664
原创 HDU 1402 A * B Problem Plus 高精度乘法
这个题的高精度乘法就数据来说算是比较大的有,长度有5000 * 5000 ,我也没有用字符串去做,不知道会不会超时。我用的是一个整数存四位的方法做的,就效率上来讲也是比较低的,但是还是可以AC的。也不知道还有什么效率更高的算法。// hdu 1402 mnlm 1.0#include#include#include#include#include#includeusing namespace std;int a[20000]; int b[20000]; //两
2010-09-26 14:27:00
3120
原创 2010杭州赛区网络预赛 1007 Tetris(DFS)
这个题其实没有什么特别的技巧,就是直接DFS就行了,至于时间嘛,按一般的DFS都不会超时。题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3647 这里还可以提交这个题只要细心就没有多大的问题,要把所有的情况都考虑进去。// 1007 mnlm 1.0#include#include#include#include#include#includeusing namespace std;int n, m;cha
2010-09-20 20:30:00
647
原创 2010杭州赛区网络预赛 1006 Fate Stay Night (DP)
The 35th ACM/ICPC Asia Regional Hangzhou Site —— Online Contest 1006 Fate Stay Night题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3646 这里还可以提交这个题主要就是用DP,不过动态方程算是比较难想的 // 1006 mnlm 1.0#include#include#include#include#include#includeusing n
2010-09-20 20:11:00
749
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人