上一页 1 ··· 8 9 10 11 12 13 14 下一页
摘要: 题意:给一个源点一个终点求一条路径是路径上最小的那条边最大。思路:先求最大生成树,然后从源点搜索到终点求权值最小的边即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define INF 0x7fffffff 11 #define eps 1E-8 12 #define LEN 110 13 14 using namespace std; 15 16 int n, m, top, vis[LE... 阅读全文
posted @ 2013-12-09 00:53 张小豪 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Problem A K-Periodic Array题意:一个数列中有1与2的序列组成,问最少修改多少个数,能使数列成为从开头开始每k个一组每组的相应位置都一样。思路:做法就是枚举每一位上的数字1多还是2多,哪个多就让全部的数变成那一个。最后累加求和即可。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #define INF 0x7fffffff13 #define... 阅读全文
posted @ 2013-12-09 00:48 张小豪 阅读(241) 评论(0) 推荐(0) 编辑
摘要: Problem A Magic Pairs水体一枚,其实就是求1-n-1的和。用long long 就行。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define LEN 10100010 #define INF 0x7fffffff11 #define ll long long12 13 using namespace std;14 15 int n, num[LEN];16 17 int main()18 {19 // ... 阅读全文
posted @ 2013-12-08 01:19 张小豪 阅读(393) 评论(2) 推荐(0) 编辑
摘要: Problem A Rook, Bishop and King题目要求:在国际象棋棋盘上给你一个起始点一个终点。让你求车,象,国王从起始点到终点最短走的步数。做法很简单三个公式,具体看代码吧。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 11 using namespace std;12 13 int x1, y1, x2, y2;14 15 inline int abs(int x){return x>0?x... 阅读全文
posted @ 2013-12-07 21:37 张小豪 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题意是给你一个长度小于10的数列,再给你任意子段和的符号。让你输出这一个数列,本题难度在于如何构图。首先要说明的是由于给你的矩阵是任意子段和的符号,所以我们求解的时候可以先求解前缀和,然后也能很方便的在输出时将其转换成我们要得数列。再说一下如何构图,首先我们定义边的含义:i->j的边表示s[i]>s[j]。一旦想到这个算法就清晰了,我们只要进行拓扑排序,然后再排序构成中对于每一个s[i]进行赋值就OK了。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #inc. 阅读全文
posted @ 2013-12-04 22:53 张小豪 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 在区间内统计任意两位相差大于二的数的个数。数位dp在推到时候注意最高位要特判一下因为最高位是没有前一位的。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define ll long long 8 #define LEN 100 9 10 using namespace std;11 12 ll dp[LEN][LEN];13 14 inline int abs(int x){return x>0?x:-x;}15 16 void init()17 {18 memset(dp, 0,... 阅读全文
posted @ 2013-12-02 09:15 张小豪 阅读(194) 评论(0) 推荐(0) 编辑
摘要: Problem AValera and Plates有碗和碟子两种容器,小明每天吃一种食物,食物有两种1只能用碗吃2两个容器都可。给你初始的碗与碟子问小明至少要洗多少个碗或碟子。简单模拟,能用碟子就用碟子。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define INF 0x7fffffff11 12 using namespace std;13 14 int main()15 {16 // freo... 阅读全文
posted @ 2013-11-30 09:11 张小豪 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 昨天第一题竟然还错了。。。真是忧伤。现在改过来了Problem A Sereja and Coat Rack一共有n个房间第i个能赚ai的钱不够一个房间陪d钱,算最后的赚了多少。贪心思想赚的少的先来。 1 #include 2 #include 3 #include 4 #include 5 #define INF 0x7fffffff 6 7 using namespace std; 8 bool cmp(int a, int b){return a>b;} 9 int main()10 {11 // freopen("in.txt", "r", 阅读全文
posted @ 2013-11-27 00:49 张小豪 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 这道题稍微有点烦,主要是确定状态,除了表示位置(x,y)之外。还要记录当前方向朝地板的颜色,最后我们还需要记录步骤数。在确立状态后就是编码了。我写的代码有点冗长。献丑了。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define LEN 10011 #define INF 0x7fffffff12 13 using namespace std;14 15 char Map[LEN][LEN];16 int n... 阅读全文
posted @ 2013-11-26 19:32 张小豪 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 和上一题基本一致。求解除了用了无限发射的城市最小生成树中最长的那一条边。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define INF 0x7fffffff11 #define LEN 101012 using namespace std;13 14 typedef struct{double x, y;}POINT;15 typedef struct {int a, b;double v;}ARC;16... 阅读全文
posted @ 2013-11-25 19:23 张小豪 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 这道题是最小生成树树的变形。题目告诉你在其中已经添加过了一些边,在剩下的边中选取若干条使其成为一个最小生成树。我记得上一次做真题是遇到类似的问题。我用了prime算法求解。现在就换用了kruskal算法。根据查询选把相应边合并,这些边不算入虽小生成树的权值即可,接下来的就和kruskal算法一致。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define INF 0x7fffffff 8 #define LEN 1010 9 using namespace std;10 11 t... 阅读全文
posted @ 2013-11-25 16:06 张小豪 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 求解从一个定点到另一个定点经过的路径中的最长边权值。这道题是floyd算法的改进dis[i][j] = min(dis[i][j], max(dis[i][k], dis[k][j]));dp方程不难退出。但是我被细节问题卡了一节课。优势最后一组样例输出了空行0.0代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define LEN 1010 8 #define INF 0x7fffffff 9 using namespace std;10 11 int Map[LEN][LEN]... 阅读全文
posted @ 2013-11-25 09:41 张小豪 阅读(209) 评论(0) 推荐(0) 编辑
摘要: Problem A Dima and GuardsDima需要贿赂一些宿舍阿姨,每个阿姨需要果汁与巧克力,每个都有一个最小值。只需要送给她的礼物中果汁的值或巧克力的值大于阿姨的最低值,阿姨就会接受礼物。Dima寝室楼一共有四个门,每个门上有两个阿姨把手。所以Dima需挑任意一个门即可。简单暴力题读懂题就ok了。n>=min(a, b)+min(c, d)时满足要求。接下来输出min(a, b)和n-min(a,b)即可注意题目中说了必须正好使用n元。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #incl.. 阅读全文
posted @ 2013-11-25 08:18 张小豪 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 记得在哪里做过一遍,最简单的最小生成树,直接用kruskal秒掉了。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define LEN 110 8 using namespace std; 9 10 typedef struct {11 double x, y;12 }POINT;13 14 POINT Point[LEN];15 16 typedef struct {17 int a, b;18 double w;19 }ARC;20 21 ARC Ar... 阅读全文
posted @ 2013-11-24 23:11 张小豪 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 这道题的大致意思是给你一个有20个点的无向图,再给你最多100个查询。让你每次查询输出两个顶点之间的最短路径长度。本题是最基础的图论题,解决方法有多种,下面我们列举若干种方法并结合其效率进行讨论:一、简单BFS 这种算法是最基本的算法,对于任意两个点直接用广度优先搜索惊醒最短路径求解。写起来方便但是效率并不怎么高。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define LEN 3011 using nam... 阅读全文
posted @ 2013-11-24 20:56 张小豪 阅读(285) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 下一页