2014年3月18日

POJ 2253 Frogger

摘要: 题目大意:给一个图,求给出的两个节点之间,所有路径中权值最大的最小值(就是取出每一条路径里的权值最大值,然后答案就是这些最大值的最小值,有些拗口,注意一下)分析:赤裸裸的Floyd。O(n^3)复杂度,贴出代码: 1 #include 2 #include 3 #include 4 #define Max 210 5 int n,k=0; 6 struct Point 7 { 8 double x,y; 9 }point[Max];10 double map[Max][Max];11 double juli(Point a,Point b)12 {13 double x,y;1... 阅读全文

posted @ 2014-03-18 21:05 静夜方赤 阅读(499) 评论(0) 推荐(0) 编辑

C++map函数的用法

摘要: 对map函数的一些整理C++map的基本操作和使用Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key-value的对应。key和value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。快 阅读全文

posted @ 2014-03-18 19:40 静夜方赤 阅读(8363) 评论(1) 推荐(0) 编辑

蓝桥杯 幂方分解

摘要: 问题描述 任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20 同时约定方次用括号来表示,即ab 可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 22+2+20 (21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=210 +28 +25 +2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)输入格式 输入包含一个正整数N(N 2 #include... 阅读全文

posted @ 2014-03-18 10:51 静夜方赤 阅读(838) 评论(0) 推荐(0) 编辑

2014年3月13日

蓝桥杯 危险系数

摘要: 问题描述抗日战争时期,冀中平原的地道战曾发挥重要作用。地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。我们来定义一个危险系数DF(x,y):对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y)就表示为这两点之间的关键点个数。本题的任务是:已知网络结构,求两站点之间的危险系数。输入格式输入数据第一行包含2个整数n(2 2 #include 3 #define Max 1005 4 5 using na.. 阅读全文

posted @ 2014-03-13 18:50 静夜方赤 阅读(644) 评论(0) 推荐(0) 编辑

2014年3月12日

POJ 2234 Matches Game

摘要: 题目大意:有N堆火柴,每堆火柴数告诉你,现在有两个玩家A,B,每个人每一个回合可以且仅可以在任意一堆里取出任意多根火柴(取的火柴数不能为0)最后取完所有的火柴的人胜利,现在问你先取的人是赢还是输(两个人足够聪明)分析:显然这是一道博弈论的题目。当两堆的时候不难发现,两堆数量相同(达到平衡状态),那么先取的人必输。当多堆的时候,有个平衡点,每个数对应一个二进制数(前面不足用0补上),如果N个数的个个位相加起来是偶数,那么该位是平衡位,如果所有的位都是平衡位,那么该状态为平衡状态。好了,今天有点晚了,就不详细写了,直接贴上代码(不懂的地方可以评论,我会详解的): 1 #include 2 int 阅读全文

posted @ 2014-03-12 21:22 静夜方赤 阅读(125) 评论(0) 推荐(0) 编辑

POJ 1852 Ants

摘要: 题目大意:有n个蚂蚁在一个杆长为d的杆上,他们的位置(以蚂蚁和杆的最左端的距离为标准)依次是接下来的n个数。任意的蚂蚁爬行的时候,若两个蚂蚁相遇,那么他们按照各自的反方向爬行(蚂蚁转弯的时间忽略不计),若蚂蚁爬到了最左(右)端,那么该蚂蚁掉下来。蚂蚁最初选择行走的方向不定,求所有蚂蚁都掉下来的可能的最早时间和最晚时间。分析:该问题看起来复杂,其实不然,如果光想着两只蚂蚁相遇之后的情景,那就是很复杂了,我们可以换位思考,我们要求蚂蚁都掉下来的时间,因为每个蚂蚁对我们来说都是一样的,所以就算两个蚂蚁相遇了,他们的本质对我们来说还是不变(相遇前一个向左爬行,一个向右爬行;相遇后还是一个向左爬行一个向 阅读全文

posted @ 2014-03-12 20:57 静夜方赤 阅读(544) 评论(12) 推荐(0) 编辑

POJ 1144 Network

摘要: 题目大意的本质就是给你一个图,求该图的割点个数。不过这一题的输入有点特别,以第二个例子为例:6(输入的第一个数,表示节点个数,0代表结束输入)2 1 3(第一个数代表节点(以2为例,0代表结束边的输入),第二个数到后面的所有数字代表与节点2相邻的边)(这组代表有边2-1 和2-3)5 4 6 2(同上)0(结束输入)这道题是典型的求图的割点。分析:求图的割点要用到两个函数:dfn,low.dfn[v]代表无向图中节点v的先序值(也就是DFS树中遍历的顺序,也就是v的发现时间。low[v]代表节点v及其后代所能追溯到的最早的(最先被发现)祖先点u的dfn[u]的值。求割点基于这样的事实:事实一: 阅读全文

posted @ 2014-03-12 20:20 静夜方赤 阅读(229) 评论(0) 推荐(0) 编辑

2014年3月6日

POJ1419 Graph Coloring

摘要: 问题描叙:对一个给定的图找出最佳着色,只能用黑色和白色,着色规则是任何相连接的节点不可能同时都是黑色。分析:这题是典型的求最大独立集,有个定理(这里就不写证明了):图的最大独立集=它的补图的最大团。所以先构造器补图,然后计算补图的最大团,先按照序号递减的顺序,依次将节点i作为当前的第i各节点,然后将节点i+1到n中与节点i邻接的点置在一个集合里(get)程序中:map[][]为图(在输入的时候就变换成了原图的补图)ans[]为当前的最大团结果序列。dp[i]表示节点i到n之间最大团个数。get[i][]表示当前有两个已经进入最大团时,其中最后一个节点k(表示当前最大团里的i个节点序号最后的那个 阅读全文

posted @ 2014-03-06 16:09 静夜方赤 阅读(606) 评论(0) 推荐(0) 编辑

2014年3月4日

poj 2573 Bridge(有A、B、C、D四个人,要在夜里过一座桥……)

摘要: 微软面试题题目大意:有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?四个人A(1分钟),B(2分钟),C(5分钟),D(10分钟)第一趟:A,B过桥,A(或B)返回;(此趟花费 3(或 4)分钟!)第二趟:C,D过桥,B(或A)返回;(此趟花费12(或11)分钟!)第三趟:A,B过桥;过桥完毕。 (此趟话费 2分钟!)总时间17分钟。附:这道题本是ACM世界里的一道编程题(POJ2573),原题是有N个人过桥(场景和上面的一样),他们通过的时间分别是a[... 阅读全文

posted @ 2014-03-04 13:19 静夜方赤 阅读(3047) 评论(0) 推荐(0) 编辑

小知识(输出源文件的标题和目前执行行的行数)

摘要: 直接贴上代码 1 #include 2 int main() 3 { 4 printf("%s\n", __FILE__); 5 6 printf("%u\n", __LINE__); 7 printf("%u\n", __LINE__); 8 printf("%u\n", __LINE__); 9 10 return 0;11 }View Code 阅读全文

posted @ 2014-03-04 13:05 静夜方赤 阅读(139) 评论(0) 推荐(0) 编辑

导航