03 2013 档案

摘要:题意:输入n个营地,告诉你每个营地最多可以有多少人。再告诉你m条记录,告诉你两个营地之间至少有多少人,问你所有营地的人数总和最少是多少。当告诉你的条件有矛盾时输出:Bad Estimations做法:差分约束,因为给出的条件都是不等式,满足差分约束形式。每个营地最多x人,则有条件:s[i] - s[i-1] <= x;i 和 j营地之间至少x人,则有条件:s[j] - s[i-1] >= x; 相当于条件: s[i-1] - s[j] <= -x为了使整张图联通,不出现断层则有条件:s[i-1] - s[i] <= 0;或者设0为超级原点 s[0] - s[i] < 阅读全文
posted @ 2013-03-30 11:37 gray035 阅读(155) 评论(0) 推荐(0)
摘要:假设湫湫有可能经过的n个城市分别编号从1到n,湫湫要从城市A回到城市B,购票网站上列出了t辆列车行程,每辆车的行程用一个字符串表示,途径的城市间用+号相连,如1+2+3+5代表一辆从1城市分别经过2,3到达5的火车,湫湫可以从中间任意一站出发和下车(路径是单向的,即必须沿字符串从左到右来走),每个字符串对应着一个整数k,k=0表示该车只有硬座,k=1表示该车有卧铺也有硬座,在整个回家的计划中,同一辆车可以坐无限次,为了中途换车的方便,如果在起点坐的是卧铺,则后面乘坐的车必须全是卧铺,同样的,如果在起点坐的是硬座,则后面乘坐的车必须全是硬座,假设一段(一辆车行程中,两相邻城市间为一段)硬座的不舒 阅读全文
posted @ 2013-03-26 16:59 gray035 阅读(172) 评论(0) 推荐(0)
摘要:#include <iostream>#include <algorithm>#include <cstdlib>#include <cstring>#include <string>#include <vector>#include <cstdio>#include <queue>#include <cmath>using namespace std;const int Max = 13;struct Matrix{ int m[Max][Max];} ;Matrix I;Matrix 阅读全文
posted @ 2013-03-26 13:13 gray035 阅读(209) 评论(0) 推荐(1)
摘要:3-1.文件和字符串基本操作:从文件中读取单词,统计单词的个数,单词之间以空格、标点或换行符分隔。注意判断文件是否打开成功。单词为英文单词。提示:使用系统函数getline来读取一整行到string类型的变量中去。其第一个参数是输入流,第二个参数是string类型的变量。该函数从输入流中读入字符,然后存储到string变量中,直到出现以下情况为止:3-2.类的设计:从以下两题中选一。选1. 设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等。其中“出生日期”声明 阅读全文
posted @ 2013-03-26 12:37 gray035 阅读(785) 评论(0) 推荐(0)
摘要:如HDU的4502,把题目抽象成一张图,把区间的头-1,这样就可以连接起来了。View Code #include <cstdio>#include <cstring>const int Max = 109;#define max(a,b) a>b?a:bint mat[Max][Max];int dis[Max];bool vis[Max];int n ,m;void dij(int s) { memset(vis,0,sizeof(vis)); for(int i = 1; i <= n; i++) { dis[i] = mat[s][i]; } vi. 阅读全文
posted @ 2013-03-21 17:42 gray035 阅读(899) 评论(0) 推荐(0)
摘要:存一份好一点的强连通模板,主要是数组特别多,要注意初始化!!!不然各种问题,数组越界,值特别大之类的 - -大致题意: 有n个帅哥要泡n个美女。对于每个帅哥,给出他可以选择的美女序号。然后给出一个可行的匹配。对于每个帅哥,求出他可以选择哪些美女,才能使得所有帅哥都有马子泡。View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <stack>using namespace std;#define Max 4 阅读全文
posted @ 2013-03-20 20:26 gray035 阅读(134) 评论(0) 推荐(0)
摘要:View Code #include<iostream>using namespace std;struct pos { int x ,y ; pos() {}; pos(int X,int Y) :x(X) , y(Y) {} pos operator + (pos & a) { //重载 + 号,可以直接相加 return pos(a.x + x,a.y + y); } void print() { cout << x << " " << y <<endl; }};template <typena 阅读全文
posted @ 2013-03-19 17:41 gray035 阅读(171) 评论(0) 推荐(0)
摘要:题意:给定起点和终点,每个点都有价值,给出m条双向边和边的权值,可能会有重边。求解:从起点到终点的路径数,走过的点能拿到的最大价值,以及输出那条能拿到最大价值的边。本题主要是需要进行两次最短路,第一次为了算出从起点到任意点的最短距离。第二次最短路根据第一次最短路算出来的最短距离,可以算出从起点到任意点的能拿到的最大价值,还有路径总数。在松弛这些点的时候可以将路径保存下来。递归输出即可。View Code #include <iostream>#include <algorithm>#include <string>#include <string.h& 阅读全文
posted @ 2013-03-18 21:02 gray035 阅读(210) 评论(0) 推荐(0)
摘要:3种链接属性: 外部(external), 内部(internal),无设置(none)外部(external): 使用extern关键字内部(internal): 使用static关键字如果在不同的文件中定义相同名字的变量,编译器无法通过编译使用extern可以访问其他文件中定义的变量使用static标示的变量在文件内部有效,其他文件中无法访问。并且在该文件中无法引用到其他文件的同名称变量使用extern标示的变量必须已经定义过。使用static标示的函数,在其他文件中不能访问。在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一 阅读全文
posted @ 2013-03-18 18:27 gray035 阅读(1576) 评论(0) 推荐(0)
摘要:题意:一群人要越狱,要用绳子荡过一条沟,给你初速度和体重,和对岸墙的高度,先做单摆运动后是斜抛,当高度和墙同高时松手斜抛。问你最后能成功越狱的有谁名字按字典序输出。View Code #include <iostream>#include <algorithm>#include <string>#include <string.h>#include <cstdio>#include <math.h>#include <vector>using namespace std;#define inf 10000000 阅读全文
posted @ 2013-03-17 20:41 gray035 阅读(173) 评论(0) 推荐(0)
摘要:这题是给定许多骨牌,以及相对应的关系, a->b 就表示a 倒之后会推倒 b题目要求说最少推倒几个就可以使骨牌全部倒!View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <stack>using namespace std;#define Max 100009#define max(a,b) a>b?a:bstruct node{ int u,v,next;}*Edge;stack<i 阅读全文
posted @ 2013-03-16 18:12 gray035 阅读(203) 评论(0) 推荐(0)
摘要:作业2-3:文件in.txt中有多个整数,各个数字之间以空白字符分隔。请读出所有的数字,并转成16进制数据输出到另一个文件out.txt中。只需提交源文件 NumberConvert.cpp。作业2-4:输入一段文字,其中包含一些非法的单词,请将这些非法单词删除或替换,然后输出过滤后的文字。只需提交源文件 Word.cpp。要求:程序格式规范,变量、函数命名合理,程序中应有必要的注释。View Code #include <iostream>#include <cstdio>#include <fstream>using namespace std;int 阅读全文
posted @ 2013-03-16 09:09 gray035 阅读(460) 评论(0) 推荐(0)
摘要:新注册了博客,正好刚刚开始做强连通专题,就当存个模板了题目简述:n头奶牛,给出若干个欢迎关系a b,表示a欢迎b,欢迎关系是单向的,但是是可以传递的。另外每个奶牛都是欢迎他自己的。求出被所有的奶牛欢迎的奶牛的数目。思路:先得出每个强连通分块的规模,再检查输入的每一条边,如果这边连着2个不同的强连通分块,那么被指向的分块才可能是答案。当答案不唯一时则说明至少有两头牛没有任何关系,这时输出0. 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int Max = 20009; 8 #d... 阅读全文
posted @ 2013-03-15 21:56 gray035 阅读(180) 评论(0) 推荐(0)