啊,想不到居然今天会有快300个队...其实也不用太担心,应该能过的吧,300选60,照实力来看,偶们还是有机会的,因为一般8题我们可以做出3题,而在决赛能做3题肯定能三等了吧,尽力而为了,也付出这么多了,就算没有进入决赛,其实我也学到了不少的东西,还是很值得的,加油了,大家都在努力了,课能不上就不上了,全力ACM,先能进入决赛再说,这是目前最关键的任务呢.
嗯,贴个记录的些日程,保存起来吧.一些小细节.好好加油,休息了~~~
--------------------------10.7-----------------------------------------
1.完成匈牙利算法,对二分匹配掌握
2.完成深度搜索算法, 对其有了进一步了解.
3.还有任务:加权二分匹配,HUFFMAN编码(多基),搜索的进一步掌握,以及用例图加固网络流算法
和最小费用最大流算法,二分匹配算法.,明天估许完成加权和HUFFMAN, 后天例题搞定网络流和最
小费用流.还有博奕树
--------------------------10.4-----------------------------------------
1.完成最大网络流算法,以及可以用它来解决匹配问题,但时间就v^2*E,而单纯的匈牙利算法则时
间只要V*E.比一般书上有点不同的是,采用了分二组的节点,扩展的时候,只扩展还没标记的节点,
对已正在标记和已标记的节点都没有扩展.
2.完成最小费用最大流算法,用最短路径法,其中本想用负圈法,可惜没找到如何求负圈的算法,故
还是用了ZDF的最短路径法.注意在算该最短路径时,有些是负边,加上可以减少路径,在原先中仍
然可以用.同时由于做权图时要一边分成二条边,须保证原二点之间没有二条边.
--------------------------9.25-----------------------------------------
1.解决了最小生成树的O(n^2)算法,但有个大BUG,用四个小时没搞定,后由lijunwei指定搞定, 重
点错在对题目理解不够,即在存储的矩阵中,注意0表示的意思,有可能表示某两点之间没边,也有
可能表示有边,但是权值为0,凡图运算时都有可能汲到,小心.
2.1496经典最短路径算法, 记录前结点,可以很容易找出字典顺序的记录,小心看题,在结点(i,i)
时,输出为i就可以,而不是(i-->i)这样做了十几次之后才明白,这也算一个常见的错误吧,不讲的
话,最后一个数据完后都是允许回车行的,特定讲到BT才不上最后有回车行的.
-------------------------9.25以前的-----------------------------------
1.记住那种扫尾的空格也会出错.例如输出是1 2 3
若是3后面多了一个空格,没有马上接回车,就会产生Presentation Error!!!
解决方法是先输第一数,然后空格再数循环输出!
2.int main()函数尾没有接return 0;也是可以编译通过的,出于严谨可以加上return 0;
3.不要忘了去了system("pause")或者cin.get()之类的暂停屏幕语句
4.设置域宽的函数:首先用<iomanip>库,然后有二种方法,一种是cout.width(10);cout<<"aabb";
另一种是cout<<setw(10)<<"aabb";均只会影响一行.
5.注意memset,它只含在<memory.h>库中,且一次memset(c,0,10)意思是说用0连续填冲10个字节,
如果C的定义是c[10],那么该句只能填前三个单元,正确做法为memset(c,0,10*4),若有memset
(c,300,10*4),那么它将每个字节用44来填充(44=300-256,取高位,舍低位).
6.ascii码表: 48~57 值为0~9 65~90 A~Z 97~122 a~z
7 isdigit(char)和isalpha(char)是在库<string>中的
8.cpp下最好用<cmath>库,而不用<math.h>库
9 pi 3.141592653589793
10.float为4字节,和INT型一样,double型为8字节.
11.通过cout.precision(n)设置N位精度,刚设置一次,会一直影响下去...
preccision(n)是说设置有效数字为N位,包括小数点的前面部分,且会把尾数的0给没了,并且会多
读一位进行四舍五入.
如cout.precision(5) t=111.104,输出为111.1,若t=111.106,刚输出为111.11
12.进行小数点后有效数字位应用:
cout.precision(4);
cout<<fixed<<11.111000;会输出11.1110
13.// 最大公约数
long long gcd(long long n,long long m)
{
if(m==0)
return n;
else
return gcd(m,n%m);
}
// 最小公倍数
long long lcm(long long n,long long m)
{
return m*(n/gcd(n,m));
}
14.把字符当做数字处理的时候,一定要小心,char[i]-'0'再来处理,而不是直接拿char[i],切
记..
15 设置右对齐,域宽在为<iomanio>库中,cout<<setw(5)<<n;来设置.
--