ACM
文章平均质量分 55
RichardXG
这个作者很懒,什么都没留下…
展开
-
hdoj1228 A+B
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1228水题一道值得一提的是处理输入while (cin >> str && str != "+") { A = A*10 + strtoi(str); }#include #include using namespace std;string num[10]原创 2012-08-23 20:51:24 · 1664 阅读 · 0 评论 -
hdoj 1068 Girls and Boys
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068/*最大独立集问题(等于 定点数 - 最大匹配数) 题目大意为:大学二年级的时候,一些同学开始研究男女同学之间的缘分。研究者试图找出没有缘分同学的最大集。程序的结果就是要输出这个集合中学生的数量*/#include using namespace std;const in原创 2012-08-14 22:56:09 · 1459 阅读 · 0 评论 -
hdoj 1151 Air Raid
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1151/*题意大致为:有一个城镇,它的所有街道都是单行的,并且每条街道都是和两个路口相连。同时已知街道不会形成回路。你的任务是编写程序求最小数量的伞兵,这些伞兵可以访问(visit)所有的路口。对于伞兵的起始降落点不做限制DAG图最小路径覆盖题,匈牙利法先求最大匹配max,最小路径覆原创 2012-08-14 17:28:43 · 2021 阅读 · 0 评论 -
hdoj 1241 Oil Deposits
http://acm.hdu.edu.cn/showproblem.php?pid=1241//题意大致就是将矩形区域中有多少的@组成的区域,*为隔开的符号//深度优先搜索,向八个方向有@的方向深入搜索,并且将其覆盖为*#include #include using namespace std;char M[101][101];int dir[8][2] = {{-1,0},原创 2012-08-10 08:32:12 · 463 阅读 · 0 评论 -
hdoj 1232 畅通工程
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232/*典型的并查集习题,思路比较简单,只需要找出有几棵树就可以了*/#include using namespace std;const int MAX = 1001;int father[MAX];int rank[MAX];void Make_Set(const原创 2012-08-13 20:56:19 · 775 阅读 · 0 评论 -
hdoj 1272 小希的迷宫
并查集入门题题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 #include using namespace std;#define MAX 100001// father[x]表示x的父节点int father[MAX];// rank[x]表示x的秩int rank[MAX];// 初始化void Make_原创 2012-08-13 20:50:22 · 458 阅读 · 1 评论 -
hdoj 1213 How Many Tables
并查集 入门题题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 #include using namespace std;int father[1001];int rank[1001];void Make_Set(const int n){ for (int i = 1; i <= n; i++)原创 2012-08-13 20:53:14 · 431 阅读 · 0 评论 -
hdoj 1242 Rescue
http://acm.hdu.edu.cn/showproblem.php?pid=1242//搜索题:广度优先搜索/*当前格视为节点,其上下左右视为下一层,用广度优先搜索,将每层的节点入队。对已经访问的格子标记已经访问。节点附带属性为坐标和时间,由于有守卫影响,所以同一个格子可能出现不同的时间属性,故将守卫的格子视为两层,对守卫的格子进行标记,以确定是否为第一次访问将其入队两次。最原创 2012-08-10 10:53:46 · 745 阅读 · 0 评论 -
hdoj 2048
http://acm.hdu.edu.cn/showproblem.php?pid=2048DP 入门/*首先我们考虑,如果前面N-1个人拿的都不是自己的票,即前N-1个人满足错排,现在又来了一个人,他手里拿的是自己的票。只要他把自己的票与其他N-1个人中的任意一个交换,就可以满足N个人的错排。这时有N-1种方法。另外,我们考虑,如果前N-1个人不满足错排,而第N个人把自己的票原创 2012-08-10 11:07:10 · 2482 阅读 · 0 评论 -
hdoj 1098
http://acm.hdu.edu.cn/showproblem.php?pid=1098//数学题//题目可以简化成求 使18 + k*a 能被65整除的最小非负整数#include using namespace std;int main(){ int k, a; int i; while (cin >> k) { for (i = 1; i <= 65;原创 2012-08-10 08:32:42 · 595 阅读 · 0 评论 -
hdoj 1203
http://acm.hdu.edu.cn/showproblem.php?pid=1203#include #include using namespace std;int main(){ int n, m; int i, j; int a[10000]; double b[10000], f[10000], bi; while (cin >> n >> m && (原创 2012-08-10 08:32:30 · 605 阅读 · 0 评论 -
hdoj 1257
http://acm.hdu.edu.cn/showproblem.php?pid=1257#include using namespace std;#define MAX 10000int sys;//当前系统个数int cur[MAX];//当前各个系统可以应付的高度int h[MAX];//当前各个导弹的高度int main(){ int n,i,j; whil原创 2012-08-10 08:31:56 · 739 阅读 · 0 评论 -
hdoj 1205 吃糖果
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1205/*水题:最大的情况是:#^#%#^# (#,^,%表示糖果),比这种情况再多一粒就会No 这种情况x下x + x-1 = sum 所以: x = (sum + 1)/2。(sum为奇数)所以判断为No的条件为:max >= (sum + 1)/2 + 1*/#include原创 2012-08-15 19:05:24 · 931 阅读 · 0 评论 -
hdoj 2094 产生冠军
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2094//拓扑排序/*网上看到的一个比较好的方法,使用map,set处理。利用set建立点集,用map映射形成边,用输的指向赢的 A <- B由于题目是求产生冠军,只需要有向图只有一个根就可以了,即遍历set点集合时,查看是否有后继,且唯一*/#include #include #i原创 2012-08-15 11:31:10 · 1364 阅读 · 0 评论 -
hdoj1874 畅通工程续
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874Dijsktra算法:伪代码:清除所有标记d[0] = 0, 其他d[i] = intmaxfor (1到n) {所有没有标记的点中寻找d[i]最小的点x标记x对以x出发的点进行更新所有边(x,y) 即:d[y] = min( d[y], d[x]+map[x][原创 2012-08-21 14:57:55 · 709 阅读 · 0 评论 -
hdoj2544 最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544Dijkstra算法应用#include using namespace std;const int intmax = 10000000;const int MAX = 102;int Map[MAX][MAX];bool visited[MAX];int dist[原创 2012-08-21 17:08:55 · 1023 阅读 · 0 评论 -
hdoj1879 继续畅通工程
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1879最小生成树,只要注意先把已经修好的路先合并了//prim算法模版 只要改变一点点就可以了//开始使用cin输入,结果TLE了#include #include using namespace std;struct Road { int c1, c2, cost, isbuilt原创 2012-08-18 14:53:29 · 733 阅读 · 0 评论 -
hdoj1863 畅通工程
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863此题与hdoj1233解法一样http://blog.csdn.net/xuguangsoft/article/details/7879572#include #include using namespace std;int city[101];struct Road { in原创 2012-08-18 11:16:55 · 654 阅读 · 0 评论 -
hdoj 1150 Machine Schedule
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1150/*大致题意:有两台机器A和B以及k个需要运行的任务。每台机器有n,m种不同的模式,而每个任务都恰好能在一台机器上运行。机器A上有模式 mode_0, mode_1, …, mode_n-1,机器B上有模式: mode_0, mode_1, … , mode_m-1。开始的工作模式都原创 2012-08-14 14:32:44 · 2390 阅读 · 1 评论 -
hdoj1233 还是畅通工程
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233最小生成树问题:prim算法#include #include using namespace std;struct Road { int c1, c2, cost;};Road road[5051];int city[101];//统一将大序号指向小序号,形成树的根可由最原创 2012-08-17 23:59:21 · 1176 阅读 · 0 评论 -
hdoj1253 胜利大逃亡
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253//这个题我MLE了好几次,就意识到剪枝的必要性//改进后的代码#include #include using namespace std;int dir[6][3] = {{0,0,1},{0,1,0},{0,0,-1},{0,-1,0},{1,0,0},{-1,0,0}};bo原创 2012-08-17 11:18:27 · 1045 阅读 · 0 评论 -
hdoj1072 Nightmare
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1072/*题目大意:某人走迷宫,从2处开始到3处终止,0是墙,1是空地。身上有定时炸弹,在第6min爆炸(只能走5步)。4处是将定时炸弹重设的工具。问它最快能否逃出迷宫。*///此题题意允许每个格子走多次,那么需要其他标记来剪枝//我使用visited[][]保存上次访问此点用时,如果当前原创 2012-08-16 17:14:14 · 823 阅读 · 0 评论 -
hdoj 1010 Tempter of the Bone
http://acm.hdu.edu.cn/showproblem.php?pid=1010#include #include using namespace std;char M[8][8];int dir[4][2] = {{0, -1},{0, 1},{-1, 0},{1, 0}};int di, dj;//终点int n, m, time, wall;boo原创 2012-08-10 08:33:04 · 444 阅读 · 0 评论 -
hdoj1027 Ignatius and the Princess II
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1027题意就是要把1到n的所有排列按字典排序(升序)定义为由小到大。1 2 3 4 5 6 ……n 为最小的排序。问第m小的排序什么样的。/*排列问题此题可以用C++STL的函数next_permutation来做*/#include #include using namespace原创 2012-08-16 10:57:06 · 657 阅读 · 0 评论 -
hdoj 2037
http://acm.hdu.edu.cn/showproblem.php?pid=2037//贪心/*此题可以用动态规划做,也可以用贪心做。DP做法:首先排序为排节目开始时间,接下来就是选当前节目开始时间大于上一个节目的结束时间的最快结束的节目贪心做法:如果排节目的结束时间,接下来就是选当前节目的开始时间大于上一个节目的结束时间的第一个节目就可以了,故选后者思路更快捷*/原创 2012-08-10 08:31:42 · 653 阅读 · 0 评论 -
hdoj 2573
http://acm.hdu.edu.cn/showproblem.php?pid=2573//字符串#include #include using namespace std;int main(){ int t, k; bool Caps; string str, res; cin >> t; while (t--) { cin >> k原创 2012-08-09 21:14:34 · 450 阅读 · 0 评论 -
hdoj 2054
http://acm.hdu.edu.cn/showproblem.php?pid=2054//字符串题 要考虑各种情况,题目中没有说明两个数是什么样的数#include #include using namespace std;void func(string & a){ int k = a.length()-1; while (a[k]=='0') k--; if (原创 2012-08-10 08:31:10 · 883 阅读 · 0 评论 -
hdoj 2524
http://acm.hdu.edu.cn/showproblem.php?pid=2524/* 首先考虑行 : 1格 : n个 2格: n-1个 …. 共有 n * (n+1) /2 种 同理 列 也是 m * ( m + 1 ) / 2 种方式, 接下来就是组合起来 :(n*(n+1)*m*(m+1)/4) 种*/#include int main(){原创 2012-08-09 21:17:10 · 417 阅读 · 0 评论 -
hdoj 2552
http://acm.hdu.edu.cn/showproblem.php?pid=2552/*1.tan(a+b) = ( tan(a) + tan(b) ) / (1 – tan(a) * tan(b) )2.tan( atan(x) ) = x可以推出结果总是为1*/#include using namespace std;int main()原创 2012-08-09 21:13:50 · 478 阅读 · 0 评论 -
hdoj 2549
http://acm.hdu.edu.cn/showproblem.php?pid=2549//水题#include #include using namespace std;int main(){ int t, n; string num; int flag; cin >> t; while (t--) { cin >> num >>原创 2012-08-09 21:10:49 · 340 阅读 · 0 评论 -
hdoj2547
http://acm.hdu.edu.cn/showproblem.php?pid=2547//水题#include #include using namespace std;double func(double x, double y, double m, double n){ return (sqrt(x*x + y*y + m*m + n*n - 2*m*原创 2012-08-09 21:08:47 · 385 阅读 · 0 评论 -
hdoj 2537
http://acm.hdu.edu.cn/showproblem.php?pid=2537//水题#include #include using namespace std;int main(){ int rsum, ysum, n; int i; string str; while (cin >> n && n) { cin >> st原创 2012-08-09 21:08:02 · 398 阅读 · 0 评论 -
hdoj 1290
http://acm.hdu.edu.cn/showproblem.php?pid=1290/*简单题F[n] = F[n-1] + f[n-1]*/#include using namespace std;int main(){ int n; while (cin >> n) { cout << (n-1+(n*n-1)*n/6+2) <原创 2012-08-09 21:06:59 · 397 阅读 · 0 评论 -
hdoj 1061
http://acm.hdu.edu.cn/showproblem.php?pid=1061//直接模拟会Time Limit Exceeded//故猜想此题数据上会有规律之类的,通过对数据分析,发现数据n次方的规律://n>4时每次四循环回来,并且数据只由个位数决定#include #include using namespace std;int main()原创 2012-08-09 21:04:22 · 559 阅读 · 0 评论 -
hdoj 1049
http://acm.hdu.edu.cn/showproblem.php?pid=1049//模拟 水题#include using namespace std;int main(){ int d, u, n; int time,len; while (cin >> n >> u >> d && (u + d + n)) { len = time原创 2012-08-09 21:03:34 · 470 阅读 · 0 评论 -
hdoj 1040
http://acm.hdu.edu.cn/showproblem.php?pid=1040//水题#include #include using namespace std;int main (){ int t, n, i; int *d; cin >> t; while (t--) { cin >> n; d = (int *)mal原创 2012-08-09 20:59:55 · 562 阅读 · 0 评论 -
hdoj1037
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1037//水题#include using namespace std;int main(){ int a, b, c, min; while (cin >> a >> b >> c) { min = a; if (b < min) min = b;原创 2012-08-09 20:58:44 · 683 阅读 · 0 评论 -
hdoj 1238
http://acm.hdu.edu.cn/showproblem.php?pid=1238//搜素 字符串题#include #include #include using namespace std;string str[101];int cmp (const string str1, const string str2){ return (str1.length()原创 2012-08-10 08:32:20 · 761 阅读 · 0 评论 -
hdoj 1097
http://acm.hdu.edu.cn/showproblem.php?pid=1097//简单数学题 和hdoj1061差不多#include #include using namespace std;int main (){ int a, b; int ta, tb; while (cin >> a >> b) { ta = a % 10; tb = b原创 2012-08-10 08:32:48 · 400 阅读 · 0 评论 -
hdoj 2551
http://acm.hdu.edu.cn/showproblem.php?pid=2551//水题#include #include using namespace std;int main(){ int t, n, x; int i, j; cin >> t; while (t--) { cin >> x; n = 0; i = 1;原创 2012-08-09 21:12:39 · 381 阅读 · 0 评论