wikioi
文章平均质量分 69
iwtwiioi_2
闪耀无比灿烂的光芒,超越极点。
与其做一棵绿洲上的小草,不如做一棵沙漠中的大树。
展开
-
【wikioi】1003 电话连线
题目链接算法: 最小生成树此题为基础题刚开始学图论时只会用Kruskal+并查集,以为Kruskal和Prim差不多= =于是就用Kruskal来做这题,结果是不用说的然后就学习了Prim,并在我之前的博文有介绍 点击打开链接 题目描述: 一个国家有n个城市。若干个城市之间有电话线连接,现在要增加m条电话线(电话线当然是双向的了),使得任意两原创 2013-10-20 14:09:41 · 1389 阅读 · 0 评论 -
【wikioi】1004 四子连棋
题目链接算法:BFS+此题卡了我一天,原因是宽搜时方向搞错= =(汗= =),而这个错误我竟然检查了好久= =!!(大神不要笑,我用来超多的代码来实现= =是别人提交代码的5倍以上,,,200多行= =)#include #include #include using namespace std;enum pa{NUL, LEFT, UP, RIGHT, DO原创 2013-10-20 15:23:52 · 2674 阅读 · 1 评论 -
【wikioi】1017 乘积最大
题目链接算法:划分型DP非常典型的一道题目,划分型DP题目描述:设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串:312, 当N=3,K=1时会有以下两种分法:1) 3*12=362) 31*2=62这原创 2013-10-20 17:18:38 · 849 阅读 · 0 评论 -
最长公共上升子序列
简称LCIS,在串a和b中,有串c为串a和b的公共串,且c(i-1)/*转自http://wenku.baidu.com/view/3e78f223aaea998fcc220ea0.html定义状态F[i][j]表示以a串的前i个字符b串的前j个字符且以b[j]为结尾构成的LCIS的长度。 为什么是这个而不是其他的状态定义?最重要的原因是我只会这个,还有一个原因是我知道这个定义能搞到平原创 2013-11-06 18:05:37 · 869 阅读 · 1 评论 -
【wikioi】1041 Car的旅行路线
题目链接算法:最短路(数据弱,Floyd也能过)惨痛的教训:此题我至少提交了20次,原因在于= =太草率和粗心了,看到那个多少组数据以为是城市的数量,导致数组开得小小的= =。(对不起,wikioi的评测机= =)。一直报运行错误。。我居然一直没查到是越界= =TAT记住:一定要看清数据范围啊啊啊啊啊!!!!!此题最恶心的是处理第四个节点,刚开始我不知道怎么算第四个点(本人蒟蒻原创 2013-10-23 17:41:36 · 1581 阅读 · 0 评论 -
【wikioi】1025 选菜
题目链接算法:01背包DP此题主要是预处理恶心。我提交了2次。。。第一次数组开小了。。。(体积要=V*10)注意:钱做为体积,美味价值作为价值注意,因为体积(钱)是小数点后1位,故数组下标无法表示体积(01背包),所以体积(钱)要扩大10倍作为01背包的体积还有因为有重复的,所以要去重再01代码:#include #include using names原创 2013-10-27 18:26:44 · 673 阅读 · 0 评论 -
【wikioi】1014 装箱问题
题目链接算法:动态规划(01背包)01背包思想:依次对待某一物体,考虑是否放入容量为V的背包中用f[V]来表示容量为V的背包的最大价值,则决策是f[V] = max{f[V], f[V-v[i]]+w[i]} (0 = 0)解释:每一个物体i,只有两种选择,是否放入(放入后一定体积要等于容量V) 容量为V的背包中,如果放入的话,那么就要比较现在容量为V的背包不放原创 2013-10-20 16:22:07 · 757 阅读 · 0 评论 -
【wikioi】1295 N皇后问题
题目链接算法:DFS刚开始卡了我一下,我竟然傻到用二维来放皇后= =。导致一直TLE。。。。其实用1维就行了的,下标为行(列),值为列(行)我是用下标为列做的。上代码#include using namespace std;int n, ans = 0;int map[14];void dfs(int x){ if(x > n) {ans++; retur原创 2013-10-22 13:32:39 · 932 阅读 · 0 评论 -
【wikioi】1116 四色问题
题目链接算法:DFS刚开始卡了一下,但后面想了想,于是放上代码:#include using namespace std;bool map[9][9];int c[9]; //随便命名四种颜色int ans = 0, N;//依次枚举每个节点,来试与前面的节点是否有重合的,没有就下一层void dfs(int n){ int i, j; if(n > N)原创 2013-10-21 18:41:19 · 12654 阅读 · 0 评论 -
【wikioi】1018 单词接龙
题目链接算法:BFS+考你阅题题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和at原创 2013-10-21 17:26:35 · 1571 阅读 · 0 评论 -
【wikioi】2822 爱在心中
题目链接算法:Tarjan+dfs(最短路的都行,判连通而已)先了解一下什么是TarjanTarjan算法用于求出图中所有的强连通分量。转自NOCOW:点击打开链接===============================================================================================Tarjan算法是基于原创 2013-10-26 17:59:29 · 1382 阅读 · 0 评论 -
【wikioi】1040 统计单词个数
题目链接算法:划分型DPPS:被卡过3天。日期:2013-10-10 ~ 2013-10-12 18:52:48这题是我提交了13次AC= =汗= =题目描述:给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1单词在给出的一个不超过6个单词的字典中。要求输出最大的个数原创 2013-10-20 18:41:14 · 2344 阅读 · 0 评论 -
【wikioi】1000 A+B问题
题目链接不用说#include int main(){ int a,b; std::cin>>a>>b; std::cout<<a+b<<std::endl; return 0;}原创 2013-10-20 15:05:10 · 644 阅读 · 0 评论 -
【wikioi】1012 最大公约数和最小公倍数问题
题目链接算法:数论(辗转相除)gcd(a, b)是a和b最小公倍数, lcm(a, b)是a和b的最大公倍数gcd(a, b) == gcd(b, a%b)lcm(a, b) == a/gcd(a, b)*b //不用a*b/gcd(a,b)是为了防止溢出一般枚举算法//暴力枚举即可//只不过gcd(a, b) == gcd(b, a%b); lcm(a,原创 2013-10-20 15:58:50 · 838 阅读 · 0 评论 -
【wikioi】1011 数的计算
题目链接普通的搜索(or递推)//因为每次都是加小于c/2的自然数,所以只需要递归每次生成自然数即可#include using namespace std;int ans = 0;void dfs(int c){ ans++; for(int i = 1; i <= c/2; i++) dfs(i);}int main(){ int a; cin >> a;原创 2013-10-20 15:46:21 · 1172 阅读 · 0 评论 -
【wikioi】1010 过河卒
题目链接算法:DFS+剪枝刚开始最容易想到的是朴素搜索#include using namespace std;int n, m, X, Y;int ans = 0;void dfs(int i, int j){ if(i == 0 && j == 0){ans++; return;} if(i<0||j<0||(i==X&&j==Y) ||原创 2013-10-20 15:42:01 · 902 阅读 · 0 评论 -
【wikioi】1007 级数求和
模拟即可#include using namespace std;int main(){ int k, n = 1; double sum = 0; cin >> k; while(1) { sum += double(1/double(n)); if(sum > k) break; n++;原创 2013-10-20 15:06:50 · 1096 阅读 · 0 评论 -
【wikioi】1026 逃跑的拉尔夫
题目链接算法:BFS题目描述:年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且车上装有用于发射车子移动路线的装置。那个装置太旧了,以至于只能发射关于那辆车的移动路线的方向信息。编写程序,通过使用一张小镇的地图帮助警察局找到那辆车。程序必须能表示出该车最终所有可能的位置。小镇的地图是矩形的,上面的符号用来标明哪儿可以行车哪儿不行。“.原创 2013-10-20 17:32:46 · 1256 阅读 · 0 评论