上一页 1 2 3 4 5 6 ··· 19 下一页
摘要: 题意:给你一棵树,每条边都有值W,然后问你去掉一条边,令val = w*max(两颗新树的直径),求val最小值~做法,先求树的直径,然后算出直径上每个点的最长枝条长度。这样对于每一条边,假如是枝条边,那么val = w*直径,如果不是那么val = max(w*(两颗新树的直径))。新树直径说到这里已经很好算了。DFS爆栈了一下午 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i... 阅读全文
posted @ 2013-08-19 18:51 某某。 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 链接:题意就是告诉你一个扫雷图里面每个雷的位置,有两个人,每个人都知道雷的确切位置,每个人一次可以点一部,问你谁能赢。链接:http://acm.hdu.edu.cn/showproblem.php?pid=4678思路:整张图有三种格子,一种是空白,一种是带数字的,一种是雷。我们可以根据雷知道整张地图。如果我们点空白那么跟空白连通的数字(不可能有雷)和空白都会显示出来。也就是说数字又可以分为跟空白连着的和不连着的。整个游戏的输赢是与这局所走的总步数有着直接关系,如果是偶数那么后手赢,否则先手赢。那么与空白连着的数字一定被点与否一定会决定着真个游戏的走势,而不与空白相连的数字不管奇偶性都是要被 阅读全文
posted @ 2013-08-18 21:17 某某。 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 题意:不说了很好懂、这题这么水= =。。。当时竟然没有勇气暴力搜一下。昨天(好吧前天。)比赛的时候胃疼,看到这题想了一个办法就是对每一个出现最短的C串前后连接然后对这个串求最长公共子序列。其实优化一下就是现在的答案啊~~!!!!给赵鹏说了赵鹏说不可能这么过。。然后就没想。就这样这么水的一道题都没过!!!!桑心啊~代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 char sa[1005]; 7 char sb[1005]; 8 char sc[1005]; 9 int c[... 阅读全文
posted @ 2013-08-17 01:58 某某。 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 题意:给你N个珠宝和一个K,每个珠宝上面都有数字,这个珠宝做成项链,把珠宝上的数字拼起来如果可以整除掉K,那么久说这个数字为wonderful value,问你有多少种方案可以组成WONDERFUL VALUE。对每个数取余并记录多少位,这样的话拼数的时候好操作。详细解法贴个结题报告吧。代码: 1 #include 2 #include 3 using namespace std; 4 int dp[50005][300]; 5 int a[100005]; 6 int len[100005]; 7 int decmod[50005 1;i--)56 {57 ... 阅读全文
posted @ 2013-08-16 21:18 某某。 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题意:给你N 城市和M条道路,每条道路要付的钱,但是如果你在这个道路上你可以付其他道路的钱(跟走到的时候去的话不一样),问你从1走到N最少话费是多少。直接DFS搜。链接http://poj.org/problem?id=3411代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i = s;i g[15];19 int vis[15];20 int ans;21 int n,m;22 void ... 阅读全文
posted @ 2013-08-16 16:10 某某。 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题意:给你N个城市和M条路和K块钱,每条路有话费,问你从1走到N的在K块钱内所能走的最短距离是多少链接:http://poj.org/problem?id=1724直接dfs搜一遍就是代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i = s;i dis)31 ans = dis;32 return ;33 }34 35 if(ans < di... 阅读全文
posted @ 2013-08-16 16:07 某某。 阅读(189) 评论(0) 推荐(0) 编辑
摘要: STL简介1概况 21.1STL是什么 21.2为什么我们需要学习STL 21.3初识STL 21.4STL的组成 52容器 62.1基本容器——向量(vector) 62.2双端队列(deque容器类) 92.3表(List容器类) 102.4集和多集(set和multiset容器类): 122.5映射和多重映射(map和multimap) 133算法(algorithm): 153.1翻转和复制(reverse()和copy()) 153.2单值交换(Swap()) 163.3查找(find()) 173.4得到数目(Count()) 183.5排序(sort()) 194迭代器(iter 阅读全文
posted @ 2013-08-14 15:36 某某。 阅读(394) 评论(1) 推荐(0) 编辑
摘要: 当时自己做的时候没有这么想,想的是每个象限去找一个无穷值来作为比较点。但是很麻烦代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define loop(s,i,n) for(i = s;i mst[50];21 for(i = 1;i ::iterator it;60 it = mst[j].find(sum);61 62 ... 阅读全文
posted @ 2013-08-14 15:33 某某。 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个n*m的矩阵,告诉了在每一行或者每一列安装大炮的代价,每一个大炮可以瞬间消灭这一行或者这一列的所有敌人,然后告诉了敌人可能出现的L个坐标位置,问如何安置大炮,使花费最小。如果一个敌人位于第r行c列,则他可以被第r行或者第c列的大炮消灭。链接:http://poj.org/problem?id=3308这题突然就让我想起来那个多校的那道多米诺骨牌的那个,几乎一样的模型,还不过要把权值改一下,因为权值是相乘,那么就吧权值改成相加,也就是用log去改变。这样的话 如果坐标为x,y的点要被消灭,那么要么走x要么走y,这样的话就直接是一个二分图的形式了。一边是行,一边是列,用出现的点连边,就 阅读全文
posted @ 2013-08-14 01:11 某某。 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一些城市,然后再给一些寄信的路信,A,B,H代表把信从A城市寄到B城市需要H小时。如果没有直接可以寄达的,可以先通过另外一个城市到达,比如A,B可以寄信,B,C可以寄信,那么,A,C也可以寄信。其中两个城市之间如果可以相互寄信的话,那么这两个城市是属于一个国家的,寄信可以通过电子邮件,所以所需的时间为0.题目中有K个询问,输入A,B询问A到B之间寄信最少需要多少时间。连接:http://poj.org/problem?id=3114距离为零肯定就是强连通分量嘛~。一开始是打算用的缩点FLOYD,结果超时。但是搜了一下,有人用floyd就不超时,叫秦川看了下,秦川也不晓得,他自己写 阅读全文
posted @ 2013-08-12 20:07 某某。 阅读(189) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 19 下一页