杭电ACM基础编程知识点(2)

来源:互联网 发布:郭达 刁光斗 知乎 编辑:程序博客网 时间:2024/06/06 00:23

2072
set是保存不相同元素集合的容器,插入其中的元素如果值和其中已有的某些元素相同,则会被舍弃,所以相同的string在set中只保留一个实例。
ss=s.substr(位置,长度); //读字符串s(a,b)中指定位置的字符

2091
memset 将一段内存中填充某个给定的值,对较大结构体或数组进行清零操作的最快方法。

2070
裴波那契数列(黄金分割数列)
F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2) (n>=2且n是正整数)

2089
打表:指对某种找规律的题目,直接输出答案。

2090
在linux下EOF是ctrl+d,在windows下EOF是ctrl+d+enter;
C++中的取整函数:ceil向上取整,floor向下取整,fmod取余。

2098
分拆素数和
for (int i=2; i< n/2;i++)
{ if ( Is_ Prime(i) && Is_ Prime(n-i) ) { cout++; if(i==n-i) cout–; } }

2034
回车 printf(“null\r\n”);

2036
多边形面积计算公式:s=1/2*|x1y2-x2y1+x2y3-x3y2+…+xny1-x1yn|

2037
节目排序问题(贪心算法)
在对问题的求解时,总是做出当前看来最好的选择,也就是说不从整体最优考虑。但是并非所有的问题都适用此解法,选择贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。

2045
一行n个方格,R、G、B三色涂格子,每格涂一色,要求相邻的格子不同色,首尾两格也不同色,求满足要求的全部涂法。
f(n)=f(n-1)+2f(n-2) ……递推

1996
n个盘子的汉诺塔问题最小移动次数是2^(n-1)。

2064
若不能从最左直接到最右,则f(i)=3f(i-1)+2。

1722
切蛋糕 p+q-gcd(p,q)

2136
memset函数

2504
int gcd(int x,int y) {return y == 0? x:gcd(y,x%y);}

1717
循环小数化分数
0.(123)=123/900
0.00(987)=987/99900
0.12300(345)=123/1000+345/99900000

求最大公约数:
long gcd(long a,long b)
{if (a%b)==0 return b;
else {return gcd(b,a%b);}}

1125
Floyd-Warshall algorithm插点法:
解决加权图中顶点间最短路径的一种算法。

原创粉丝点击