摘要: 1 #include 2 /* 3 题意:就是寻找从源点到汇点的最大流! 4 要注意的是每两个点的流量可能有多个,也就是说有重边,所以要把两个点的所有的流量都加起来 5 就是这两个点之间的流量了! 6 7 思路:建图之后... 阅读全文
posted @ 2014-08-27 22:30 hjzqyx 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:给出一个无向图,去掉一条权值最小边,使这个无向图不再连同! 3 4 tm太坑了... 5 1,如果这个无向图开始就是一个非连通图,直接输出0 6 2,重边(两个节点存在多条边, 权值不一样) 7 3,如果找到了桥的最小权值为0,... 阅读全文
posted @ 2014-08-26 15:42 hjzqyx 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:给出一串字符(全部是小写字母),添加或删除一个字符,都会产生一定的花费。 3 那么,将字符串变成回文串的最小花费是多少呢? 4 5 思路:如果一个字符串增加一个字符 x可以形成一个回文串,那么从这个字符串中删除这个字符 x 6 同样... 阅读全文
posted @ 2014-08-25 22:44 hjzqyx 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:给你不同面额的硬币(每种硬币无限多),需要找零的面值是T,用这些硬币进行找零, 3 如果T恰好能被找零,输出最少需要的硬币的数目!否则请输出剩下钱数最少的找零方案中的最少硬币数! 4 5 思路:转换成完全背包的问题! 6 */ 7 #incl... 阅读全文
posted @ 2014-08-25 21:12 hjzqyx 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:一个矩阵中有 n*m个宠物,每一个宠物都有一个状态, 1醒着的,0睡着的 3 X离开的!如果这个宠物(醒着的)的周围醒着的个数>3 || 9 #include10 #include11 #include12 using namespace std;13 14 in... 阅读全文
posted @ 2014-08-24 23:23 hjzqyx 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:建立一棵二叉树,左子树和父节点占一个宽度,右子树另外占一个宽度! 3 使任意左右子树交换顺序,使得整个树的宽度最小! 4 思路:递归交换左右子树 ! 开始写的代码复杂了,其实左右子树不用真的交换,只要返回交换与不交换最小的宽度值... 阅读全文
posted @ 2014-08-24 23:14 hjzqyx 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:给一个DAG图,n个节点,每个节点都对应一个值,入度为零的点走到出度为零的点,计算所有可能路径 3 经过节点值的和最大! 4 5 思路:记忆话搜索:也就是如果我们搜索到某一个节点的时候发现该节点已经存在了值,那么直接返回该节点的值! 6 ... 阅读全文
posted @ 2014-08-23 23:43 hjzqyx 阅读(352) 评论(1) 推荐(0) 编辑
摘要: 1 /* 2 题意: 有两棵苹果树,每一棵苹果树每一秒间隔的掉落下来一个苹果,一个人在树下接住苹果,不让苹果掉落! 3 人在两棵树之间的移动是很快的!但是这个人移动的次数是有限制的,问最多可以接住多少个苹果! 4 5 思路:dp[i][j]表示的是前 i个苹果掉落... 阅读全文
posted @ 2014-08-23 21:51 hjzqyx 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 1 /* 题意: 给你一个图,求这个有向图示否是一个强连通图(每两个节点都是可以相互到达的)! 思路1:按正向边dfs一遍,将经过的节点计数,如果记录的节点的个数小于n,那么就说明图按照正向边就不是连同的,所以就不是强连通图! ... 阅读全文
posted @ 2014-08-22 16:18 hjzqyx 阅读(2426) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意: 物主有一个物品,价值为P,地位为L, 以及一系列的替代品Ti和该替代品所对应的"优惠"Vi 3 g[u][i] 表示的是u物品被i物品替换后的优惠价格!(u>0, i>0) 4 g[u][0]表示不用替换该物品的实际价格 ! 5 d[0]表示的是第一个... 阅读全文
posted @ 2014-08-20 23:18 hjzqyx 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 森林转换成二叉树 3 思路:u的孩子节点为v1, v2, v3....(v1,v2,....互为兄弟节点) 4 那么将u的一个孩子节点(v1)连在u的左子树上,那么其他的孩子节点都连在v1的右子树上! 5 */ 6 #include 7 #incl... 阅读全文
posted @ 2014-08-20 16:36 hjzqyx 阅读(1887) 评论(0) 推荐(1) 编辑
摘要: 1,看一下下面程序错误发生在哪一行!class Test implements Runnable{ public void run(Thread t){ }}2,输出结果是什么?class Test{ public static void main(String[] args){ new Th... 阅读全文
posted @ 2014-08-19 20:56 hjzqyx 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:将两端涂有颜色的木棒连在一起,并且连接处的颜色相同! 3 思路:将每一个单词看成一个节点,建立节点之间的无向图!判断是否是欧拉回路或者是欧拉路 4 5 并查集判通 + 奇度节点个数等于2或者0 6 */ 7 #include 8 #include 9... 阅读全文
posted @ 2014-08-19 17:21 hjzqyx 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:单词拼接,前一个单词的末尾字母和后一个单词的开头字母相同 3 思路:将一个单词的开头和末尾单词分别做两个点并建一条有向边!然后判断是否存在欧拉回路或者欧拉路 4 5 再次强调有向图欧拉路或欧拉回路的判定方法: 6 (1)有向图G为欧拉图(存在欧拉回路),当且仅当... 阅读全文
posted @ 2014-08-19 11:57 hjzqyx 阅读(349) 评论(0) 推荐(0) 编辑
摘要: import java.util.concurrent.locks.*;class DuckMsg{ int size;//烤鸭的大小 String id;//烤鸭的厂家和标号 DuckMsg(){ } DuckMsg(int size, Strin... 阅读全文
posted @ 2014-08-18 23:36 hjzqyx 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 下面的程序会出现下面的情况,当Thread-0, Thread-1, Thread-2都被wait的时候,可能会同时苏醒 3 Thread-0 put 4 Thread-1 put 5 Thread-2 put 6 Thread-3 get//在此处,... 阅读全文
posted @ 2014-08-18 23:34 hjzqyx 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:给多个二进制数,对某些数进行按位取反操作! 3 然后从中找到最大数和最小数,并输出他们的差值! 4 注意:所有的数都是整数,包括取反之后 5 6 思路:一个n为二进制数x,令tmp为n位全1!则 y=tmp&(tmp^x)就是取反之后的数字 7... 阅读全文
posted @ 2014-08-18 17:23 hjzqyx 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #define N 505 6 using namespace std; 7 8 int g[N][N]; 9 int n, m;10 int vis[N], linker[N];11 bool dfs... 阅读全文
posted @ 2014-08-18 14:44 hjzqyx 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-08-18 12:03 hjzqyx 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:用木板盖住泥泞的地方,不能盖住草。木板任意长!可以重叠覆盖! '*'表示泥泞的地方,'.'表示草! 3 思路: 4 首先让我们回忆一下HDU 2119 Matrix这一道题,一个矩阵中只有0, 1,然后让我们通过选择一行,或者 5 ... 阅读全文
posted @ 2014-08-17 23:09 hjzqyx 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 定义一个PXP的有向图中,路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每条路径就是一个弱连通子集.由上面可以得出:1.... 阅读全文
posted @ 2014-08-17 15:58 hjzqyx 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意: 出租车 有一个出发的时间,从点(a, b)到点(c, d),时间为 3 abs(a-c)+abs(b-d)! 一辆车可以在运完一个乘客后运另一个乘客, 4 条件是此车要在预约开始前一分钟之前到达出发地, 问最少需要几辆车 5 搞定所有预约。 6 ... 阅读全文
posted @ 2014-08-17 15:56 hjzqyx 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:n个同学,k个车, 取旅游d天! 3 要求所有的学生没有两个或者两个以上的在同一辆车上共同带d天! 输出可行的方案! 4 5 对于d行n列的矩阵,第i行第j列表示的是第i天第j个同学所在的车号! 6 也就是保证所有行不全相同,即每一列都是不相同的... 阅读全文
posted @ 2014-08-16 21:01 hjzqyx 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:矩阵相乘的最少的步数 3 dp[i][j]=min(dp[i][j], dp[i][k]+dp[k+1][j]+num[i-1]*num[k]*num[j]); 4 表示的是第i个矩阵到第j个矩阵相乘的最少步数 5 sign[i][j]表示的是第... 阅读全文
posted @ 2014-08-15 23:19 hjzqyx 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:就是源点到终点有多条的路径,每一条路径中都有一段最大的距离! 3 求这些路径中最大距离的最小值! 4 5 Dijkstra, Floyd, spfa都是可以的!只不过是将松弛的条件变一下就行了! 6 7 想了一下,这道题用最小... 阅读全文
posted @ 2014-08-15 16:44 hjzqyx 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 注意的事项:是输出小于 10^n的正整数的个数哦!开始的时候总比样例输出多一个数, 3 纠结了好久,原来是 0加了进去了! 4 5 dpI[n][m]表示的是第n位添加数字m(0....9)的构成单调递增数个数 6 dpD[n][m]表示的是第n位添... 阅读全文
posted @ 2014-08-14 23:17 hjzqyx 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题意:有 n 个站点(编号1...n),每一个站点都有一个能量值,为了不让这些能量值连接起来,要用 3 坦克占领这个站点!已知站点的 之间的距离,每个坦克从0点出发到某一个站点,1 unit distance costs 1 unit oil! 4 最后占... 阅读全文
posted @ 2014-08-14 19:32 hjzqyx 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 这道题如果按照度为0的节点来判断的时候,将度为0的节点和其相连的节点(度数并减去1) 3 从图中去掉,如果度为0的节点的个数为0个但是图中的节点没有都去掉的 时候那么说明 4 出现了回路!用这种方法必须将重边去除掉! 5 6 所以推荐用dfs... 阅读全文
posted @ 2014-08-14 01:02 hjzqyx 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 char map[105][105]; 7 8 int dir[8][2]={0, 1, 1, 0, -1, 0, 0, -1, 1, 1, 1, -1, -... 阅读全文
posted @ 2014-08-13 23:43 hjzqyx 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 bfs搜索!要注意的是点与点的权值是不一样的哦! 3 空地到空地的步数是1, 空地到墙的步数是2(轰一炮+移过去) 4 所以用到优先队列进行对当前节点步数的更新! 5 */ 6 #include 7 #include 8 #include 9 #inc... 阅读全文
posted @ 2014-08-13 19:50 hjzqyx 阅读(244) 评论(0) 推荐(0) 编辑