sicily
vufw_795
Mood decides everything.
展开
-
sicily_1150 & sicily_1151
宽搜 + 康托展开 两题其实是一样的两道题,可以训练宽搜,但是,这两题作为宽搜其实是水题,比较难的地方其实是对状态的记录,即队列的元素采用什么来保存,这里用到了康托展开(介绍点这儿) 解决了保存的问题,接下来的都是琐事了,上代码://sicily 1150 简单魔板#include <bits/stdc++.h>using namespace std;int n,m,goal,tmp[10],原创 2015-02-18 14:38:57 · 459 阅读 · 0 评论 -
sicily 4424
题目链接:sicily 4424解题思路: 先找到符合lucky number位数要求最小的数,然后枚举所有可能性,最小的符合要求的数即为答案。枚举方法使用全排列的next_permutation算法思想,生成全排列中下一个数。代码:// Problem#: 4424// Submission#: 4734859// The source code is licensed under Crea原创 2016-05-28 16:07:18 · 683 阅读 · 0 评论 -
sicily 1047(数学)
题目链接:sicily 1047解题思路: 题意很简单,即需要把一串连续的不超过25个的整数分成A、B两部分,分别相加得到两个数sumA、sumB,使得a+sumA=b+sumB。 一眼看过是感觉是0-1背包,但是其实不太一样,因为所有的整数是连续的,所以可以有更方便的方法解决。 假设第一个数为low,最后一个数为high,我们可以得到如下定理: 当A部分有 i 个数时,当且仅当(low+l原创 2016-05-01 16:04:48 · 621 阅读 · 0 评论 -
sicily 1071(搜索)
题目链接:sicily 1071解题思路: 题目要求我们把大的矩形分得尽量小,那么当我们把一个矩形分成两部分之后,自然会想到分出来的这两个矩形还能不能继续划分,这样就很自然地想到了递归。确定了大概思路之后,我们就得来解决细节——如何判定矩形能否被划分? 具体来说是这样做的,以寻找x轴方向划分线为例,首先,把矩形按照x轴坐标进行排序,之后遍历每个矩形,如果矩形的右边界的边为划分线,那么左边所有矩形原创 2015-06-15 15:32:08 · 833 阅读 · 0 评论 -
sicily 1264(动态规划)
题目链接:sicily 1264解题思路: 状态挺好想的(详见代码),但是得看透这题计算时间开销的本质——预处理,把所有时间开销的可能性处理处理,剩下的就简单了~代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int n,a[105],r;dou原创 2015-06-05 23:34:59 · 813 阅读 · 0 评论 -
sicily 1019(动态规划)
题目链接:sicily 1019题目分析:恶心的一笔的一道题,不过确实是一道好题。给你一棵树,n个结点,结点间距离为1,每个结点有一个值,第一次走过某个节点获得该结点的值,问用m步遍历树可以获得值的最大值。仔细想想这道题其实这道题并不是特别难,只是之前没有做过类似的题目,所以一时半会儿下不了手。解题思路: 树形DP,什么是树形dp呢?其实不用管那么多的啦,都是动态规划就对了,尤其是这道题原创 2015-04-18 07:19:58 · 589 阅读 · 0 评论 -
sicily 1214
题目链接:sicily 1214解题思路: 首先我觉得这是一道很好而且比较难的题,难度在于找规律 题目告诉我们,n是一个很大的数(刚好在unsigned的范围内),这样的话,直接模拟是必然超时的,所以,我们需要根据题目的三条公式来推导a[n]。 这个规律我找了很久也没能找到,最后直接拿来用的,怎么想得到的我也不懂。规律如下:如果n的二进制形式满足回文序列的形式,那么a[n]=n。 得到这个规原创 2015-05-27 14:09:46 · 1271 阅读 · 0 评论 -
树状数组(三)
题目链接:codeforces 220B题意分析:有n个数,m次询问,一开始给你这n个数ai,每一次询问的时候给你一个区间,求这个区间里面满足“数值为x,出现了x次”的条件的数有几个!(1 ≤ n, m ≤ 100000) 从题述上看,这题的难点应该是区间的频繁访问,于是可以想到线段树或者树状数组解题思路: 即便是线段树或者树状数组这种高端数据结构,有时候也是需要一些辅助算法的,在这道题里面,辅助原创 2015-04-08 08:25:03 · 442 阅读 · 0 评论 -
sicily 1077(动态规划)
题目链接:这里写链接内容题目分析:一看便知道,这是一个多重背包问题,但是关键不在这里,而在数据量——好大,于是我们需要一种优化——多重背包转0-1背包解题思路: 首先我们考虑第 i 种物品,如果它有num[i]个,那么我们可以把它当成num[i]个物品来看,这样就转成了0-1背包问题。但是,这样没有用啊,时间复杂度并没有得到改善,怎么办呢?我们是在用计算机解决问题,那么就永远离不开二进制,试一下用原创 2015-04-06 21:45:02 · 471 阅读 · 0 评论 -
sicily 1140(搜索)
题目链接:sicily 1140解题思路:贪心+深搜 相当考编程能力的一道题,一个手贱就卡了好几天,不过的确是一到好题。考察的是对贪心法的运用,还有编程能力——深搜。贪心原则是从最小结点开始搜索(这样最小结点就是根结点),然后对于每一个结点,搜索返回结点数和最小结点,根据题意比较结果,每次贪心搜索之后删除那条边,并标记整个子图,再继续搜索,直到所有的人都分到遗产。代码:(有可能冗余很多,但都是测试原创 2015-04-03 19:48:43 · 682 阅读 · 0 评论 -
sicily 1419(动态规划)
题目链接:sicily 1419 解题思路:(一道稍微有点不一样的动态规划题目) 刚开始看到题目就立马想到一种动规的解法,用dp[i][j]表示第 i 个到达第 j 个点,可是这种做法有一个问题——推导下一个点的时候需要用到再上一个点的数据(因为越慢送的牛奶需要花费越多时间),这样时间复杂度就会达到o( n^3 ),必然超时,于是我们可以看出,要解这道题,要解决两个问题: 1)首先要搜遍所有的原创 2015-03-12 22:40:01 · 540 阅读 · 0 评论 -
sicily 1176 (动态规划)
题目连接:sicily 1176解题思路: 题目看上去像是一道博弈的题,又像是一道区间型DP的题目(矩阵取数),而它跟矩阵取数的区别就是他是两个人在取数,所以每次对一个区间,我们应分两种情况考虑:第一个人取左边的数和取右边的数,而在分别考虑这两种情况时,我们又要根据贪心法则来获取上一个取数的区间。状态方程有点复杂,直接上代码了:// Problem#: 1176// Submission#: 3原创 2015-03-05 15:30:42 · 645 阅读 · 0 评论 -
sicily 1136(线段树+最大子数组)
题目链接:sicily 1136解题思路: 要求区间内的最大子数组,而且访问可能很频繁,时间复杂度需要达到o(n*logn),于是就很自然地想到了线段树。我们可以用线段树来保存区间的最大子数组,但是仔细想想又不对劲了,如果访问的区间跨越了两个小区间怎么破,所以,这并不只是一个简单的求区间连续和的问题,还要有点小技巧。 最大子数组怎么得到的,还记得《算法导论》里面讲过一种用分治法来求最大子数组的方原创 2015-03-19 19:36:19 · 579 阅读 · 0 评论 -
sicily_1012 (计算几何)
计算几何第一题,从没有做过几何题,每次看到就跳,今天是一个开始。这题的递推是小事,重点是几何部分。我用的是高中的解析几何的做法,先求中垂线斜率,已知中点,然后通过距离来求出要求的点的坐标(PS:这题放在高中是超级水题啊,为什么写成C++这么烦) 几何部分代码:void cal(int i,int j){ double l=2.0,h,d; d=sqrt((dp[i].x-dp[j原创 2015-02-21 12:27:56 · 494 阅读 · 0 评论 -
sicily_1221 (0-1背包问题)
题述: 小W发明了一个游戏,他在黑板上写出了一行数字a1,a2,….an,然后给你m个回合的机会,每回合你可以从中选择一个数擦去它,接着剩下来的每个数字ai都要递减一个值bi。如此重复m个回合,所有你擦去的数字之和就是你所得到的分数。要你把这个分数最大化。 输入: 第一行,一个整数n(1<=n<=200),表示数字的个数。 第二行,一个整数m(1<=m<=n),表示回合数。 接下来一行有原创 2015-02-19 23:13:09 · 810 阅读 · 0 评论 -
sicily 1219(记忆化搜索)
题目链接:sicily 1214解题思路: 博弈题,用搜索来做。但是,如果用普通的搜索来做的话,是会超时的——复杂度大约是O( n^n ),所以需要采用记忆化搜索的方法(其实差不多就是动态规划了,但是这里是树形DP)。 状态: 用集合S表示现在树的状态,i 表示现在轮到谁进行砍边,dp[ S ][ i ]表示最优值。集合S可以用二进制来表示,即001表示现在还剩下第0条边。 状态转移: 1原创 2015-06-03 18:40:43 · 899 阅读 · 0 评论