USACO总结

USACO总结
USACO总结

我的USACO总结

Congratulations!You have finished all available material.

Chapter1DONE2008.12.16Getting started

Chapter2DONE2008.12.24Bigger Challenges

Chapter3DONE2009.01.15Techniques more subtle

Chapter4DONE2009.02.03Advanced algorithms and difficult drills

Chapter5DONE2009.02.17Serious challenges

Chapter6DONE2009.02.20Contest Practice

花了差不多四个月把USACO做完了,感觉收获很大,它就像一个私人教练能督促你学习一样,对于一个oier来说,USACO绝对是一个不可不做的经典OJ,为了整理一下知识点也当是一次巩固,便写下了这篇总结,以总结一下自己的疏漏,也希望能帮助到别人。

--湖南南县一中czz

一、枚举

枚举是我们用的比较多的一种算法,编程简单是它的优点,而时间效率低则是它的致命缺点,不过很多题目通过合理的优化比如减小枚举量等来优化算法。

The Clocks是第一道需要优化的枚举题,首先由于这题有9个时钟,而且每个的移动次数也不清楚,似乎无从开始,不过经过研究发现对于一个时钟如果移动四次就会便相当于没有移动,因此我们只需要枚举每个钟的四种状态共9^4共6561种状态,这样就不会超时了,不过如果进一步研究这个题目发现移动方案之间是有约束的,打个比方,A时钟由三种移动方案确定,如果其中的两种方案的次数已经知道,那么第三种方案也就会确定,因此我们只要枚举前三个方案的次数其他的便可以递推出来,状态只有4^3个,效率无疑大大提高。

Arithmetic Progressions这题由于题目要求按b升序排列,所以我们习惯性得把b放在外循环而a放在内循环,这样做加上剪枝后也会超时,由于剪枝时按a 剪枝时力度无疑会更大,因此我们可以把a提到外循环,相应的加一个快排,因此我们得出一个结论:把剪枝有利的尽量放在外循环。

素数的题目也有几个,枚举就行了,不过注意要先生成一定范围内的素数,然后再枚举判断,不过有一种随机化的素数判断可以在klogn内判断,可以参考周咏基的论文《论随机化原理与设计》。

Party Lamp与The Clocks有异曲同工之妙,同样我们可以判断出一个按钮如果按了两次就没有意义了,n值是有小于4时才会限制按键次数否则不予考虑。不过这样枚举还是会超时,如果再次分析可以发现每六个灯一个循环即灯的最后状态是循环的,因此只要枚举6个灯的状态即可,算法十分优秀了。

Controling Company当时看到这道题时,看到题解是才发现N的范围并不大,完全可以用迭代枚举来求解,即不断枚举更新公司之间的关系,直到无法更新。可以看出枚举对付一些看起来很复杂的题目很有一套。

Contact也是一道难题,为了判重,我们不得不借助于Hash表,把一个字符串看出一个二进制数,不过为了区分11和0011这样的相同大小的字符串,我们

可以先处理长度为1的,再处理长度为2的……知道处理完全。

Camelot应该是USACO里最难的一道枚举题目,首先我们可以用广搜得到棋盘之间的最短路径,然后先枚举汇合点,再枚举汇聚点,最后枚举接国王的骑士,不过这样超时十分严重,继续分析,由于国王走路很慢,因此肯定要让他尽量少走路,我们可以进一步缩小汇聚点的范围,即在国王两部以内,这样就AC 了

由此可以看出枚举的一般思路:

1、估计枚举量,看是否可行。

2、确定枚举对象,注意把容易剪枝的放在外面。

3、进一步分析看可否减小枚举量(注意挖掘枚举对象之间的约束关系)。

二、动态规划

USACO离的动态规划题是比较多的,主要分为几类:

1、背包问题

Subset sums是一道典型的01背包问题模型,由于它要求求出均等划分

的个数,对于奇数的总和特判无解,因此先用动态规划求出装出总重量

的一半,由于集合的对称性,即N=3时,{1,2}和{3}是同一中方案,因

此将结果除以2即是答案。

Money System,Score Inflation则是完全背包模型,由于物体个数无限,

所以我们在实现时只要将一维数组的实现循环倒过来即可。

Stamps是背包问题的变种,不过颇为简单,设can[i]表示i容量能否装出,

则can[i]=can[i]or can[i-w[k]]。

Shopping Offers也是dp,不过从一维到了五维,而且实现时要把物体的

编号映射为1..5,方便处理。不过这题有个相当有趣的图论算法:构图,

每种购买商品的组合是一个顶点,每种打折方式是一条边,然后SPFA求解。

Beef Mcnuggets是一道有难度的dp,由于题目的范围巨大,直接dp是肯

定MLE+TLE,不过我们进行一下数学分析就会发现,题目中的数据是

吓人的,如果数据中任意两个数不互质,那么无法装出来的数一定小于

最大的两个数的最小公倍数。此时便可以进行dp了,此题体现了数学分

析在信息学奥赛中的作用。

Milk Measureing开始做的时候用的ID迭代加宽搜索+DP,结果由于数据

暴弱,竟然过了,但是我在网上找了很久也没有找到纯DP的题解,不

知那位大牛可以指教一下。

Raucous Rocker也是一个类背包问题,我们设f[i,j]表示前i张光盘放前j

首歌时最多放的个数,那么决策就是第i张光碟放多少,得出方程:F[i,j]=Max(f[i-1,k]+g[k+1,j]);其中g[i,k]表示将第i到第k首歌放在一个光盘中最多放的个数,对于g数组我们可以将数组排序后从左到右扫描即可(可以增设Order[i]表示现在第i个数原来的位置)。复杂度为O(n^2*m),完美解决了这个问题。

2、与矩形边长有关问题

主要有三个问题:Home on the rage Big barn A rectangular Barn

其中前两个问题较为简单,用f[i,j]表示以第i行第j列为右下角时最大正方形的边长,则f[i,j]=min(f[i-1,j-1],f[i-1,j],f[I,j-1])+1;

即往上面,左边,左上三个方向扩展的最大长度最小值为现在的最大扩展边长。第三个题目由于是求矩形面积,所以不能简单的套用以前的方程,这里我们设三个数组,L,R,H分别表示向左,向右,向上扩展的最大长度,则:

H[i,j]=H[i-1,j]+1;

L[i,j]=Min(L[i-1,j],J-最靠近的坏格子(左边的));

R[i,j]=Min(R[i-1,j],最靠近的坏格子(右边的));

由于会超空间,所以我们可以用数组迭代计算即可。

具体这个方程是怎么来的可以参考王之坤的论文。

3、求解第N个状态问题

这种类型以Two Five和Stringsobits为代表,这类题目共同的特点是给定一系列规则构造出一系列对象,要你求第N个状态,而共同的求法就是利用动态规划求出每一位的总数,然后一位一位求解。

Stringsobits由于题目范围巨大,所以模拟是肯定TLE,考虑动态规划:设F[N,L]表示N个0和1组成的1个数小于等于L的数的个数,则

F[N,L]=F[N-1,L-1]+F[N-1,L]//分别在前面加一个0和1

{上面的方程和组合数的方程及其相似,可以结合理解}

边界条件F[I,0]=1;F[0,I]=1;(0<=I<=N);(注意利用小数据推边界条件)求出来以后我们一位一位处理,假设A[I]表示序列的第I位,

对于每I为,如果F[I-1,L]

If F[I-1,L]

Else A[I]:=0;

Two Five一题与上题有异曲同工之妙,虽然我一下子就知道使用动态规划来确定每一位,不过方程颇难想到,只好看了星牛的题解,突然之间意识到:如果一位一位放,因为后面的数都比前面的数大,所以对于一个状态,其解的个数只与其“形状”有光,所以星牛的那种定义方法可行,至于具体由于我还没有理解透彻,就不多说了。

4、其他

The Longest Prefix这题注意要整体定义,用Can[j]表示S[1..J]是否可以组成,那么Can[J]=Can[J-Len[i]]And(S[J-Len[i]+1..J]=Word[i]);

由于前缀最大长度只有20,因此如果连续20无法得到,就可以结束算法,同时由于是基于字符串比较,我们可以用Trie来优化。

Cow Pedigrees一道有难度的dp,主要原因是因为我们的思想太僵化或者说固执,我刚开始定义F[i,j]表示节点数为I深度为J的个数,结果发现状态很不好转移,看了题解之后发现,只要定义F[I,J]表示节点数为I深度不超过J的个数,就很好进行转移了,所以我们定义状态后如果发现不好转移,可以考虑修改方程使得方程更加抽象,这样有利于转移。

Humble Numbers这题似乎不算动态规划,不过在求解的过程中也包含了动态规划的思想,即有前一个数退出下一个数,对于每一个数设置一个指针,如果这个数*指针所对于的数小于等于前一个数求指针加1,这样推n次皆可得到答案。

A Game是一道博弈型动态规划,对于博弈我还没有认真钻研过,不过还是说说对于这道题的理解:由于要对第二位选手也执行最优策略,所以符合最优化原理,我们设F[I,J]表示第一个取的选手(不一定是第一位选手)在I..J中取数时取得的最大值,Sum[I,J]表示I..J的和。

此时取得选手有两种决策:取最左边或最右边,此时由于要为另外一位选手也执行最优决策,如果取最左边,则

F[I,J]=A[I]+(Sum[I+1,J]-F[I+1,J])//取得数+Sum[I+1,J]-另一位选手取的数综合起来,转移方程为:

F[I,J]=Max(A[I]+(Sum[I+1,J]-F[I+1,J],A[J]+(Sum[I,J-1]-F[I,J-1]);

注意认真体会上面的方程。

Canada Tower一题可以说是动态规划的鼻祖题,IOI97出了这一题,当时的选手没有一个了解动态规划,结果全部用的搜索,结果没一个人AC 了,回国后开始研究这种新算法,从此动态规划成为比赛的热点。

不扯了,说这道题,把问题转化一下,变为从1才是找到两条不相交的航线使得过的点最多,用F[I,J]表示从1开始,一条航线到I,一条航线到J时最多过的点数,则F[I,J]=Max(F[I,K]+1)满足(K

Buy Low Buy Lower相当于最长不下降子序的变形,第一问好解决,设F[I]表示前I个数字得到的最长序列,则F[i]=Max(F[J]+1);

问题是第二问,如果设Sum[I]表示前I个序列以第I个数结尾的序列个数,则Sum[I]=∑Sum[K](K

则Ans等于∑Sum[J](F[J]=最长序列)。

不过上面的做法会出现重复,比如2,2,3这个序列会连续记录两次2,3这个序列,为了解决这个问题,我们可以限定方程中K的范围,将方程改为:

Sum[I]=∑Sum[K](I前面那个与A[I]相同的数

这样就避免了重复累加。

Musical Theme是一道有点难度的题(我理解题目理解了好久),首先我

们设F[I,J]表示以第I个数开头和第J个数开头是最长的个数,则

F[I,J]=Max(F[I+1,J+1]+1(当A[I+1]-A[I]=A[J+1]-A[J]),1);

注意如果过程中如果F[I,J]>J-I则将F[I,J]赋为J-I,因为这是最大长度。

其实如果我们将相邻的两个数做差,那么问题就转化为寻找最大重复序

列,此时我们可以用扩展KMP做到O(nlogn)或后缀树做到O(N);

Postal Vans一题个人感觉不太像动态规划反而像递推,即把路径分为8

种,根据路径之间的连接关系来一步一步叠加,具体可以看ruiqi的题解,

很好理解。

建立动态规划模型一般步骤:

1、确定其可行性。包括空间问题,无后效性等。

2、划分状态。

3、确定方程,可以套用经典的方程,注意要让方程包含的决策数少。

4、动态规划还有一个难点就是推边界条件,这一步可以利用既要直接利

用边界条件算的,有可以自己手算出来的小范围数据进行推导。

三、搜索

搜索的实质是枚举,不过搜索可以用来解决枚举对象不确定即随输入数据变化而变化的一类问题,一般来说,编出搜索程序都不是问题,真正的挑战是剪枝与优化,这里主要总结一下我的优化方法。

Checker Challenger是第一道不优化无法过的搜索题,朴素的搜索最后一个点1.6秒,所以一定要优化,有两种方法:一是用位运算加速,当时我选了这种方法(m67牛的教程不错)。另外便是利用对称性:考虑对称如果n是偶数,第一行枚举前一半的数,这样每搜索出一种方案后,沿中线对称过来又是一种方案,并且因为第一行的数小于一半,对称过来的方案总大于原方案(即在搜索树中后被搜索到),不会出现重复的情况。如果n是奇数,先在中间行和中间列放子,并且位置都不超过半数(<=n div2),且中间行>中间列,这样每搜索出一种方案,把它对称旋转后一共有8种方案,因为中间行和中间列的的不出现重复,所以8种方案不重复。这样只需枚举原来的1/8就可以了。这样就完全可以过了。{注意放在正中间位置的时候}

Overfencing一题可以用广搜解决,对两个出口为源点分别进行一次广搜,就可以得到最短路径中的最长路径了。

Magic Squares也是一道广搜,不过过程中必须要用hash表判重,8维数组肯定会超空间,首先,如果前7个数已经确定,那么第8个数随之确定,因此将8为数组改为7维,不过这样还是不行,想一下,前7个数实际上就是8的全排列的前7位而已,所以我们可以定义一个七维的动态数组,然后生

成8的全排列进行开域即可,空间需求只有8!*7了,完全满足要求。Riding The Fences实际上是求一条欧拉路,其方法是从有解的点出发,每次

找出一个标号最小的点,然后以这个点递归,直到递归完成,那么这个点放入答案中。

Fence Rails一道较难的搜索题,由于题目深度不知道,用深度搜索很容易超时,广搜空间又不够,折中后就是一中新的搜索方法:DFS-ID。思想就是先搜索1块木料是否可以割出来,然后搜索2块木料是否可以割出来……每次不断加大搜索深度,直到无法搜索出方案来。由于前一次搜索量与下一次相比量很小,所以重复搜索不会大量影响时间效率,不过还要优化:

将木料排序,每次验证K块木料能否割出来时选择最短的K块验证。然后由于木料长度存在相同的,所以为了排除重复搜索,可以规定如果存在两块木料I,I+1,且Rail[I]=Rail[I+1],那么搜索时I对应的木板<=I+1对应的木板(实质就是优化搜索顺序,认真体会)。最后如果一块木板切了以后连最小的木料都切不出来了,那么它就是浪费,如果现在的浪费>木板总数-要割的木料总数,那么一定无解。加了上述剪枝后就过了。

Cryptcowgraphy这题要加大量的优化,先确定搜索对象:搜索每一个C,O,W,将他们去掉,直到得到解。剪枝:每个C,O,W之间的字符必须存在于目标中,不满足就剪枝。然后为了消除重复判断一个字符串,我们可以利用Elfhash判重(在我看来,Elfhash实质就是对一个字符串乱搞)。

The Primes这题差点把我搞疯了,首先生成所有的素数,然后枚举将它们放进去:结果连样例都超时。这题将搜索顺序的作用发挥到了极致,一个原则:现在的选择对以后的选择造成的约束越大越好,网上的搜索顺序有很多,大家可以参考,这里就不说了。不过这样以后还是超时,此时可以加优化,比如放的过程中第一为与第二为分别为X,Y的素数是否存在等等,当时我加了以后还是超在了第9个点,无赖之中寻寻找找,结果发现了原因:此题为了减少枚举量,要用多个数据结构储存,比如放置一个素数,如果已知它第一位为2,第二位为5,那么直接用储存了第一位为2,第二位为5的数据结构来枚举,减小了枚举量。有了这个优化,即使不用上面那个存在性的优化也可以0.2秒过了。

Snail Trail不知怎么估计它的时间复杂度了,裸搜都可以0.01秒过了。

All Latin Squares裸搜可以过5个点,连N=6都无法TLE,优化:

由于第一行已经确定,如果我们强制第一列递增得出的解数为Ans,那么最后的答案就是Ans*(N-1)!,加了这个优化以后6就可以瞬时出解了,不过N=7还是超时,这时可以用Maigo的置换剪枝(我不太理解,就不分析了)。

Betsy's Tour又是一道难题,关于它的剪枝网上多的有卖的,主要是利用局部判断的可行性剪枝,不过即使这样还是无法得出解,只好用Hash:

在走的时候肯定会出现这种情况:走的两条不同的路,却走了完全相同的格

子,最后还聚在同一个点上,那么此时的解肯定和以前一样,为了避免重复搜索,我们可以用Hash[X,Y,M]表示在第X行,Y列,走的格子集合为M 时答案数,由于最多只有49个格子,每个格子只有两种状态,所以可以用Int64储存,同时为了避免超空间,可以用M对一个大素数取摸,相应的用链表处理冲突,这样我就0.6秒过了。

搜索优化的总结:

1、搜索无外乎两个主要的剪枝:可行性剪枝和最优化剪枝。

2、搜索顺序很重要,通常可以通过自己规定一系列规则避免重复搜索。

3、要配合好的数据结构,避免重复枚举。

4、Hash表的运用很重要,注意体会。

四、图论

图论是数学的一个分支,有很多有趣的算法值得研究,USACO里也有很多经典的图论题,这太就一些典型的题目总结一下。

Cow Tours、Bessie Come Home和Sweet Butter是三道很明显的最短路,对于最短路我们一般有三种求法:Dijstra,Floyed和SPFA,前两种流传得很广,不过个人认为SPFA才是最快的,SPFA要用队列实现,关于它的基本实现就不说了,它的优化:首先用邻接表代替邻接矩阵,如果是个很稀疏的图,可以使用前向星,然后再算法执行过程中,假设一个元素入队后发现它比队首元素更优就可以将它与队首元素交换不会影响结果,这样程序只多了一行,不过效率却大大改善了。Floyed程序很短,对于数据很小的题目可以使用它,而Dijstra+Heap优化以后也很快,不过实现复杂,一般不用。

Agri-Net求出最小生成树,有两种算法:Prim算法和Kruskal算法,个人比较喜欢用Kruskal,特别用并查集优化后可以得到很好的时间效率,介绍一下Kruskal算法:把所有的边按从小到大排序,然后一条一条加入生成树,如果待加入的边不会构成回路就加入(构成回路的条件就是边的两个点都在同一个集合里),因此这里可以用并查集判断。

Fence Loops此题实际上是求最小环,有两种求法,一种是枚举删除每一条边,然后对两个端点求最短路,复杂度约是O(E*N^2),对于稀疏图很有效果。

另一种是在Floyed的过程中顺便求出来,这里给出代码,仔细体会:

For K:=1To N DO

Begin

For I:=1To K-1DO

For J:=1To I-1DO Ans:=Min(Ans,A[K,I]+A[K,J]+F[I,J];

For I:=1To N DO

For J:=1To N DO F[I,J]:=Min(F[I,J],F[I,K]+F[K,J]);

End.

为什么上述代码可以求出最小环?因为求Ans时I和J还没有以K为中介点求最短路,所以可以求出最小环。

Drainage Ditches一道网络流题目,一般来说网络流我用的是标号加增广路

法(不过听说Dinic既快有好写),这题没什么好说的,只要在出现同一条路线时累加一下最大流量就可以了。

Pollutant Control和Telecowmunication都是求最小割,Pollution那一题是求最小边集割,由于要求去掉的边最少,而且编号要最小,所以我们可以将所有边按最大流量从大到小排序,流量相同的则按编号从小到大排序,然后从左到右枚举删除每一条边,如果删除后减少的流量刚好等于边的流量则表示这条边是必须经过的边,删除它,然后重复上述过程直到最大流为0即可。Telecowmunication一题有点不同,它是求最小节点割,不过我们可以使用化归的思想,将一个点拆成两个点加一条边,然后每次枚举删除每个点所对应的边套用上一题的解法即可。不过这一题还有一个诡异的解法(不知道正确性如何,不过可以过USACO的数据):每次枚举删除一个点,在求最大流的过程中将每个点的容量看成1,每次用了以后就不用了,也就是求最大流时记录增广路中的节点使得下一条增广路不重复走同一个节点不就可以了。伪代码:

var v:array[0..maxn]of boolean;

function getmaxflow:longint;

begin

fillchar(v,sizeof(v),0);

repeat

SPFA;//用类SPFA算法求出增广路,注意在求时不用v值为true 的节点;

if dist[goal]=0then break else inc(getmaxflow,dist[goal]);

DEL;//递推求出增广路的节点,进行数组修改,同时将路径上的点v值赋值为true

until false;

end;

{再次声明:上面的算法正确性还未得到证明}

Street Race第一问好求,枚举删除每一个点,然后用Floodfill算法看还能否从1到达N,如果不能则它是不可避免的点集。第二问肯定是第一问的子集,枚举第一问中的点,由于这个点是左边的终点,而题目已经说明终点不能到达任何路口,因此我们可以对终点进行一次Floodfill,如果它到达了左边的点则它是不合法的一个点。

The Perfect Stall实际上是求最大匹配,可以用网络流求,即构造一个图:一个源点,从源点到每个奶牛一条边,容量为1,奶牛到对应的牛棚一条边,容量为1,然后设置一个汇点,从牛棚到汇点一条边,容量为1,然后求最大流即可,不过用专门的匈牙利算法可以得到更快的时间效率。

Network of Schools第一问就是先求出说有的联通分量,然后把每个联通分量都收缩成一个点,其中入度为0的点就是必须发放的点。第二问我们假设增加一个点,所有出度为0的点跟它连一条边,所有入读为0的被它连一条边,那么这个网络就联通了,撤掉这个点后情况也不会变,因此第二位

Ans=Max(入度为0的点,出度为0的点)。

五、几何

在计算机奥赛中,计算几何是个相对独立的分支,各种各样烦杂的情况是它的最大的特点,这里选取几个典型讲解一下。

Packing Rectangles第一道几何体,不过这题题目已经把所有的情况都给你分析清楚了,你所做的就是按要求模拟即可。

Closed Fences一道有难度的几何题,第一问就是判断是否有线段相交,写个用叉积判断相交的函数即可解决,第二问就有难度了,用二分的思想判断一条线段是否能看到:

取一条线段的端点A,B,以及它的中电C.人的位置是O

不能看到的条件:

1.AO和BO被同一条边遮挡

2.AO,BO,CO均被遮挡

3.AB的长度接近为0(看成一个质点)

能被看到的条件:

4.除了端点能有一点未被遮挡

5.当上述两个条件未达到时用二分的方法,将此线段割为两块,重复上述过程.

因此这题可以分治解决。

Electric Fences很经典的一个随机算法,由于对解的精度要求不高,所以我们先任取一个点,然后判断100之内有没有比它优秀的点,如果有就把它变成那个点,重复上述过程,如果没有就不断缩小精度,知道在0.1的范围内没有更优秀的点,此时的点就是答案。此题中求点与线的距离很麻烦

Fencing the Cows一个裸凸包算法,先取最左边(横坐标相同就取最下面),然后把其他的点按叉积排序,然后用扫描法求凸包即可。

六、其他

Milking Cows一题要用离散化,先把农民们的时间从小到大排序,然后在统计即可,不过离散化的思想要掌握。

Mixing Milk和Barn Repair都是贪心的经典题,贪心是一种重要的思维,想出贪心策略一般都不难,不过证明它就是一个很大的挑战,一般要使用反证法。前一题就是一个典型的部分背包问题,贪心策略为:每次选取最便宜的拿,知道那够了,可以证明这就是最小费用。而第二题有点难度,假设我们先用一块木板把所有的都拦住,那么长度就是牛棚的长度,如果我们可以该两个木板呢,我们可以找出最长的一段空段,把它锯掉就可以了,因此这个问题可以用贪心解决。

Job Processing是个很值得一题的贪心,第一问可以直接用贪心求解,问题是第二位,为了平衡,我们把A中最先加工的放在B中最后加工的中,这样就可以使得时间平衡了。

Ordered Fractions一题可以先生成所有的分数然后再排序,不过有一种很强的方法:递归解决(不过我不清楚原因),代码:

Procedure Print(x1,y1,x2,y2:Longint);

Begin

If(y1+y2<=N)Then

Begin

Print(x1,y1,x1+x2,y1+y2);

Writeln(x1+x2,’/’,y1+y2);

Print(x1+x2,y1+y2,x2,y2);

End.

上述程序应用了不等式a/b

Sorting a Three-Valued Sequence是典型的归纳法解题,通过对题目的分析提出一个“万能”的解决方法,这也是归纳法的基本过程把。

Feed Ratios一个高斯消元的应用,不过不同的是这里有4个未知数而只有3个方程,有两个方法处理:一是枚举最后的比例,知道可以得到整数解,由于题目限定了范围<100,不会超时。另一种是将第四个未知数看成1,解出其他的三个未知数以后用类求最大公约数的方法求出类最大公约数,然后用三个未知数除以它就可以了。

Picture刚开始写了个线段切割,结果发现错了,看题解原来是离散化+线段树,把整个平面按不同横坐标划分成N段,那么第I段中线段的个数就是把前面的线段插入线段树后不连续的线段的个数,此题很经典,仔细体会。

本人水平有限,写这个总结完全是为了协调自己的知识体系,如果各位大牛发现了错误或遗漏,希望大牛们不吝指出。

财务工作业绩总结范文

财务工作业绩总结范文 一个企业的兴衰与财务工作息息相关,财务工作是企业管理的基础,是企业内部管理的中枢,财务管理工作处理着同各个方面的经济关系,今天管理资源吧小编给大家找来了财务工作业绩总结,供大家参考和阅读。 财务工作业绩总结范文1xx年在全行员工忙碌紧张的工作中又临近岁尾。年终是最繁忙的时候,同时也是我们心里最塌实的时候。因为回首这一年的工作,我们会计出纳部的每一名员工都有自已的收获,都没有碌碌无为、荒度时间。尽管职位分工不同,但大家都在尽最大努力为行里的发展做出贡献。现将全年的工作情况向全行职工作以汇报: 一、重视业务核算质量,贯彻市行各项制度 今年是我们商业银行具有转折意义的一年,经过六年的打拼和积累,我行的羽翼已经逐渐丰满,准备更名挂牌,开始新的征程。然而,如果要使我们景星支行真正走在全行的前列,我们首先要做的是提高我们的业务能力。我行会计出纳部经常组织员工进行理论学习、岗位练兵。对市行传达的每一个文件、通知都认真贯彻。让员工树立主人翁精神,在工作中不推、不等、不靠,积极主动的完成自己的本职工作。我部一直坚持向时间要效益、向工作

要质量。在核算上无重大差错事故。 二、加强日常工作管理,做好安全防范工作 我部的内部制度是比较健全的,各项工作都有明确分工,员工并事假都严格按照规定及时请假。 在安全防范方面,对柜员日常工作所用的各种公章、名章都严格做到每日下库保管;对重要凭证的领用,都有专人负责;明确柜员的权限,不得擅自授权;对于市行要求上报的反洗钱可疑业务及时上报;随时提高警惕,杜绝诈骗。总之,我们要将一切防忠于未然,不做亡羊补牢的无用功,力求使全行的工作在稳健中谋发展。 三、培训员工操作能力,顺利通过柜员考试 今年是对全行职工个人业务考核要求最严格的一年,综合柜员上岗考试,直接关系到了每个员工的切身利益。行里不想让任何一个职工掉队,我会计出纳部,为了使每个员工顺利的通过考试,带领员工们利用工作之外一切所能利用的时间,积极准备考试。其间,我们组织了员工点钞,打字的基本技能考试。组织员工去培训中心进行业务上机打操作的练习。 有些员工工作、家庭的各方面负担都很重,考试给其带来了很大的心理压力,思想包袱很重。为帮助这样的同志,我部各个员工在考试期间,经常互相交流思想,一起钻研考试的命题,接受能力快的同志,耐心的给其他同

USACO 教程

USACO教程 目录 Section 1.2 Complete Search枚举搜索 (2) Section 1.3 Greedy Algorithm贪心算法 (4) Section 1.3 Winning Solutions竞赛中的策略 (6) Section 1.4 More Search Techniques更多的搜索方式 (9) Section 1.5 Binary Numbers二进制算法 (13) Section 2.1 Graph Theory图论知识 (15) Section 2.1 Flood Fill种子染色法 (22) Section 2.2 Data Structures数据结构 (26) Section 2.2 Dynamic Programming动态规划 (33) Section 2.4 Shortest Paths最短路径 (40) Section 3.1 Minimal Spanning Trees最小生成树(MST) (45) Section 3.2 Knapsack Problems背包问题 (47) Section 3.3 Eulerian Tour欧拉通路 (50) Section 3.4 Computational Geometry计算几何 (59) Section 4.1 Optimization最优化 (64) Section 4.2 Network Flow网络流 (67) Section 4.3 Big Number高精度 (72) Section 5.1 Two Dimensional Convex Hull二维凸包 (77) Section 5.3 Heuristic Search启发式搜索 (84)

个人工作业绩总结报告

个人工作业绩总结报告 第一,基本情况概述 首先要概述工作内容、工作的主客观条件、有利和不利因素以及工作环境等,个人工作业绩。虽然这些与业绩的取得没有必然的联系,但是,显然如果你处于不利的工作环境,工作条件也甚是恶劣的话,无疑能够使你所取得的业绩大放光彩。比如说,你的工作是处理客户投诉,这一工作的环境显然不是十分优越的,它要求员工能够忍受客户的抱怨,甚至是谩骂、侮辱。环境本身的特殊性实际上是业绩的一部分,因此应该把工作环境陈述出来,以使自己的业绩有所依托。当然,在陈述不利条件和环境时,千万不要理直气壮,不管怎么说,这是工作性质所的,接受了这份工作就必须接受它所带来的特殊的工作环境。 第二,陈述自己所取得的成绩 陈述自己的成绩是业绩的重点。撰写业绩报告的根本目的就是要肯定成绩,突出自己的贡献,从而为公司考核和晋升提供参考。 在撰写业绩报告之前应认真思考,尽可能把自己所取得的所有业绩都列出来,然后按照重要程度排序。在陈述时,首先要清楚地表述自己所取得的成绩有哪些,是在什么样的情况下取得的,每项成绩

的分量有多大,对企业有多大的贡献。在陈述时,一定要注意有条有理,突出重点,千万不能把各种成绩堆在一起,让人事经理去挑选对你有利的成绩。这种做法不但加重了人事经理的工作,而且还会给人马虎、做事没条理的印象。试想,一个人连自己所取得的成绩都理不出头绪,工作时怎么能够做得有条有理呢? 这里需要注意的是,虽然大部分的成绩是看得见的,但是,有时候,也有许多不为人所知的成绩或贡献。这时候,需要把你那些不为人所知的成绩或贡献明确地写出来,千万不要不好意思陈述,这样做丝毫不会给人留下坏印象,相反,许多公司都希望员工能够对自己作出客观的评价,不隐瞒业绩,也不虚报业绩。撰写业绩报告时,实事求是是最好的原则。 第三,经验和教训 对于过去做过的每一项工作,不管是做得好,还是失败,都要总结经验和教训,并在业绩报告中写出。这样做不但有利于今后的工作,而且还可以使公司了解你的成长轨迹。对以往的工作进行分析和概括,并总结出一两条经验和教训,是智者的表现。 需要注意的是,总结经验固然是重要的,但坦陈尚需改进的弱点也不可忽略。很多人在业绩报告中总是回避自己的弱点和缺陷,为写出它们会对自己的形象有损,事实上并非如此。坦陈尚需改进的弱点,表明你有不断改进的意识,有不断提高的潜能。主管不但不会因此小看你,相反他们更喜欢这样的人,也更愿意对其委以重任。需要注意的是,提出需要改进的弱点后,在以后的工作中必须认真落实,

USACO题目Palindromic Squares(回文平方数)及代码解析

描述 回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。 给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等。 [编辑]格式 PROGRAM NAME: palsquare INPUT FORMAT: file (palsquare.in) 共一行,一个单独的整数B(B用十进制表示)。 OUTPUT FORMAT: file (palsquare.out) 每行两个B进制的符合要求的数字,第二个数是第一个数的平方,且第二个数是回文数。[编辑]SAMPLE INPUT 10 [编辑]SAMPLE OUTPUT 1 1 2 4 3 9 11 121 22 484 26 676 101 10201 111 12321 121 14641 202 40804 212 44944 264 69696 程序: #include #include using namespace std; ifstream fin ("palsquare.in"); ofstream fout ("palsquare.out"); const char a[21] = {'0','1','2','3','4','5','6','7','8','9','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'}; int n; void get(int t) { string s(""); int m = t * t; do { s = a[m % n] + s;

个人销售业绩总结

个人销售业绩总结 导读:总结是社会团体、企业单位和个人在自身的某一时期、某一项目或某些工作告一段落或者全部完成后进行回顾检查、分析评价,从而肯定成绩,得到经验,找出差距,得出教训和一些规律性认识的一种书面材料。下面是个人销售业绩总结,请参考! 篇一:个人销售业绩总结 白驹过隙,20**年马上离去,20**年悄然到来,现在回顾一下20**年工作历程。整体来说有酸甜苦辣,得到了许多也失去了许多。自从7月11日来到公司至今,已经工作了整整半年之多。工作流程已经步入正轨,并且对于我所从事的电话销售这个行业有了更加全面的了解,客户关系日积月累。但是整体来说我自己还是有很多需要改进,失去了许多不该失去的时间和客户。以下是我今年总结工作不足之处: 第一:沟通技巧还是不够熟练。每天都要接触许多不同客户而我跟他们沟通的时候不太容易把握什么样的人说什么样的话,有时候遇到比较直爽的客户,说多了反而不利,遇到菜鸟说什么都不会听懂的。语言组织表达能力是需要加强改进。 第二:针对已经合作或者曾经合作的客户的后续服务不到位。看着在线和离线客户量慢慢多起来,有时间了自己还是在尽心尽力的维护每一个比较有价值客户。客户虽然已经签下来了,之前感觉万事大吉了,其实这种想法是非常的不成熟,后来的工作当中,再加上汤经

理的指点。确实感觉到一个新客户开拓比较难,但是对于已经成功合作的客户维护好其实是比较简单的,如果把老客户维护好,后续续签的机会会很大。因此这点我得把目光放长远。 第三:新客户跟进的不是很好。对于我们这个行业来说连续不断的培养新客户是重中之重,有时候一个比较有意向的客户我会很抱有希望的对待,但是有时候还是会漏掉一些忘记跟进,等下次在跟进的时候人家已经不需要了。 第四:开拓新客户量少。今年我合作成功的客户主要是通过电话单和老单签下来的,而自己真正找的客户比较少,培养好的没需求,有需求的不相信我们,这点值得自己好好的深思一下。 第五:工作效率有待提高。有时候如果一天下来没有任何事情的话基本完成任务是没问题的,但是一旦有个需求开户做些调查和做个方案就会耽误很多时间,这一点有待提高。 综合以上几点是我在今年的工作中不足之处表现,我会在今后的工作当中加以改进,有句话说的话:聪明的人不会在同一个地方摔倒两次。当然谁都愿意做一个聪明的人,所以同样的错误我不会再犯,并且争取做到更好。望公司领导和同事共同监督我。一个人有错误不怕,怕的是不知道改正,而我就要做一个知错 就改,并且从中把缺点变成自己的优点。 今年主要工作职责是电话销售,顾名思义就是通过电话达成交易的销售。而我在这半年里也主要是在公司通过网络、电话来获得跟客

2017USACO银级第二题(翻译)

https://www.360docs.net/doc/1518561754.html, 2017USACO银级第二题 牛奶测量 农场主约翰的每头奶牛最初每天生产G加仑的牛奶(1≤G≤109)。由于随着时间的推移每头奶牛的产奶量可能会变化,约翰决定定期测量牛奶的产量并将其写在日志本上。他的日志中的记录条目如下: 35 1234 -2 14 2345+3 第一个条目显示,在第35天,编号1234的奶牛产奶量比上次测量时少了2加仑。下一个条目显示,在第14天,编号2345的奶牛产奶量比上次测量的时候增加了3加仑。由于时间问题,约翰每天最多只能测量一次。不幸的是,他管理有点混乱,没有严格按时间顺序记录他的测量结果。 为了保持奶牛的积极性,农场主约翰自豪地在他的谷仓墙上展示目前牛奶产量最高的奶牛照片(如果产量最高的奶牛有数头,这些奶牛的照片都会得到展示)。请确定约翰多久需要更换展示墙上的照片。 请注意,农场主约翰有一大群奶牛,所以在他的日志中尽管有一部分奶牛产奶量有变化,但是还有许多其他奶牛的奶产量水平保持G加仑不变。 输入格式(文件measurement.in): 第一行输入包含农夫约翰所做的测量的奶牛数量N(1

USACO DP动规 完整版

Wizard 1.单调队列优化 ①土地并购(Land Acquisition,2008Mar) ②干草塔(Tower of Hay,2009Open) ③又买饲料(Buying Feed,2010Nov) ④玉米实验(Cornfields,2003Mar) ⑤修剪草坪(Mowing the Lawn,2011Open) 2.树型 ①焊接(Soldering,2011Open) ②产奶比赛(Milk Team Select,2006Mar) ③道路重建(Rebuilding Roads,Feb2002) ④手机网络(Cell Phone Network,2008Jan) 3.背包问题续 ①电子游戏(Video Game Troubles,2009Dec) ②最少找零(The Fewest Coins,2006Dec) ③三个代表(Jersey Politics,2005Feb) ④录制唱片(Raucous Rockers,1996Qualifying Round) 4.背包问题 ①股票市场(Stock Market,2009Feb) ②奶牛会展(Cow Exhibition,2003Fall) ③太空电梯(Space Elevator,2005Mar)

④平分子集(Subset Sums,1998Spring) 5.区间型 ①提交作业(Turning in Homework,2004Open) ②抢鲜草(Grazing on the Run,2005Nov) ③最优回文(Cheapest Palindrome,2007Open) ④智取金币(Treasure Chest,2010Dec) 6.其他一 ①打扫食槽(Cleaning Up,2009Mar) ②奶牛自行车队(Cow Cycling,Feb2002) ③滑雪缆车(Ski Lift,2006Mar) ④奶牛飞盘队(Cow Frisbee Team,2009Mar) 7.其他二 ①滑雪比赛(Bobsledding,2009Dec) ②滑雪课程(Ski Lessons,2009Open) ③方形牛棚(Big Barn,1997Fall) ④接住苹果(Apple Catching,2004Nov) ⑤公司利润(Profits,2011Jan)

USACO题目Friday the Thirteenth及代码解析

描述 13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400. 这里有一些你要知道的: 1、1900年1月1日是星期一. 2、4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天. 3、年份可以被4整除的为闰年(1992=4*498 所以1992年是闰年,但是1990年不是闰年). 4、以上规则不适合于世纪年。可以被400整除的世纪年为闰年,否则为平年。所以,1700,1800,1900和2100年是平年,而2000年是闰年. 请不要调用现成的函数 请不要预先算好数据(就是叫不准打表)! 格式 PROGRAM NAME: friday INPUT FORMAT: (friday.in) 一个正整数n. OUTPUT FORMAT: (friday.out) 七个在一行且相分开的整数,它们代表13日是星期六,星期日,星期一...星期五的次数.. 输入格式 20 输出格式 36 33 34 33 35 35 34 程序: #include using namespace std; int main() { int year,month,i,n,last=3; int dayOfMonth[12]={31,31,28,31,30,31,30,31,31,30,31,30}; int result[7]={0}; ifstream fin("friday.in"); ofstream fout("friday.out"); fin>>n; for(year=1900;year<1900+n;++year){

USACO题解(NOCOW整理版)

USACO 题解 Chapter1 Section 1.1 Your Ride Is Here (ride) 这大概是一个容易的问题,一个“ad hoc”问题,不需要特殊的算法和技巧。 Greedy Gift Givers (gift1) 这道题的难度相当于联赛第一题。用数组incom、outcom记录每个人的收入和支出,记录每个人的名字,对于送礼人i,找到他要送给的人j,inc(incom[j],outcom[i] div n),其中n 是要送的人数,最后inc(incom[i],outcom[i] mod n),最后输出incom[i]-outcom[i]即可。(复杂度O(n^3))。 用Hash表可以进行优化,降复杂度为O(n^2)。 Friday the Thirteenth (friday) 按月为单位计算,模拟运算,1900年1月13日是星期六(代号1),下个月的13日就是代号(1+31-1) mod 7+1的星期。 因为数据小,所以不会超时。 当数据比较大时,可以以年为单位计算,每年为365天,mod 7的余数是1,就是说每过一年所有的日和星期错一天,闰年第1、2月错1天,3月以后错2天。这样,只要先求出第一年的解,错位添加到以后的年即可。 详细分析:因为1900.1.1是星期一,所以1900.1.13就等于(13-1) mod7+1=星期六。这样讲可能不太清楚。那么,我来解释一下:每过7天是一个星期。n天后是星期几怎么算呢?现在假设n是7的倍数,如果n为14,那么刚好就过了两个星期,所以14天后仍然是星期一。但如果是过了15天,那么推算就得到是星期二。这样,我们就可以推导出一个公式来计算。(n天mod 7(一个星期的天数)+ 现在日期的代号) mod 7 就等于现在日期的代号。当括号内的值为7的倍数时,其代号就为0,那么,此时就应该是星期日这样,我们可以得出题目的算法: int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31} int b[8]={0} a数组保存一年12个月的天数(因为C语言中数组起始下标为0,所以这里定义为13)。 b数组保存星期一到星期日出现的天数。用date记录目前是星期几的代号,然后用两个循环,依次加上所经过的月份的天数,就出那个月是星期几,当然,要注意判断闰年!知道了这个方法,实现起来就很容易了。 注意考虑闰月的情况。 最后注意要换行,否则会错误。 Broken Necklace (beads) 这道题用标准的搜索是O(n^2)的,可以用类似动态规划的方法优化到O(n)。 用数组bl,br,rl,rr分别记录在项链i处向左向右收集的蓝色红色珠子数。 项链是环形的,但我们只要把两个同样的项链放在一块,就把它转换成线性的了。 我们只要求出bl,br,rl,rr,那么结果就是max(max(bl[i],rl[i])+max(br[i+1],rr[i+1])) (0<=i<=2*n-1)。 我们以求bl,rl为例:

业绩总结报告怎么写以及范文参考

2020 业绩总结报告怎么写以及范文参 考 Contract Template

业绩总结报告怎么写以及范文参考 前言语料:温馨提醒,报告一般是指适用于下级向上级机关汇报工作,反映情况, 答复上级机关的询问。按性质的不同,报告可划分为:综合报告和专题报告;按行 文的直接目的不同,可将报告划分为:呈报性报告和呈转性报告。体会指的是接触 一件事、一篇文章、或者其他什么东西之后,对你接触的事物产生的一些内心的想 法和自己的理解 本文内容如下:【下载该文档后使用Word打开】 篇一:没有业绩怎么写出好总结 第一招:站在领导的角度思考问题 领导想看到的无非两点:要么开源,要么节流。如果业绩不好,开源无能,那就说说为公司节约了多少成本,也可以变相突出自己任劳任怨、加班加点。把总结与领导关心的问题直接挂钩,至少说明你的存在还是有那么一点点的价值。 第二招:找准角度,神解读 屡战屡败还是屡败屡战,这不是玩文字游戏,这是态度问题!是问题频现还是积累经验?这不是换汤不换药,这是神解读!同样的成绩,不同的解读就会带来不同的反馈。在没有业绩的情况下,至少证明你一直在努力尝试、一直在试错中成长! 第三招:拼不了业绩,那就拼亮点

数据不行、趋势不利、业绩不够,即使真的“一无所有”,你也肯定能找出“局部”亮点。没有功劳就拼苦劳,质量不行数量凑;没有突破拼深度,有深度有内涵的东西,不是一时半会儿看得出效果的;什么都没有,那就拼愿景!和领导站在同一高度规划未来,今年的不足是为明年更大的进步做铺垫!第四招:传递正能量!没有下降,只有负增长! 多学学治愈系的《新闻联播》是如何传递正能量的。没有“下降”,只有“负增长”;没有“业绩平平”,只有“增速放缓”;没有“完成目标的 40%”,只有“基本完成目标”;没有“严重问题”,只有“迎难而上”。语言是有力量的,语言的力量能帮你保住饭碗。第五招:有进步是领导有方,有错误是执行不够 强调团队合作,即使所谓的合作只是“踢皮球”。有合作的团队(来源:/会销),才有凝聚力,才有企业文化,才能体现领导的领导力。至于为 什么业绩那么难看?那是执行不够,明年还要紧跟公司战略思想,加强执行力,促进团队建设。 篇二:个人业绩报告范文 一、个人情况介绍 我叫田鹏是工程管理中心技术部,到今年8月23日在公司已经3年,也是老员工了。 二、个人业绩与成果 现在主要岗位职责是负责凯德世家小区弱电智能化这块,同

USACO总结

我的USACO总结 Congratulations!You have finished all available material. Chapter1DONE2008.12.16Getting started Chapter2DONE2008.12.24Bigger Challenges Chapter3DONE2009.01.15Techniques more subtle Chapter4DONE2009.02.03Advanced algorithms and difficult drills Chapter5DONE2009.02.17Serious challenges Chapter6DONE2009.02.20Contest Practice 花了差不多四个月把USACO做完了,感觉收获很大,它就像一个私人教练能督促你学习一样,对于一个oier来说,USACO绝对是一个不可不做的经典OJ,为了整理一下知识点也当是一次巩固,便写下了这篇总结,以总结一下自己的疏漏,也希望能帮助到别人。 --湖南南县一中czz 一、枚举 枚举是我们用的比较多的一种算法,编程简单是它的优点,而时间效率低则是它的致命缺点,不过很多题目通过合理的优化比如减小枚举量等来优化算法。 The Clocks是第一道需要优化的枚举题,首先由于这题有9个时钟,而且每个的移动次数也不清楚,似乎无从开始,不过经过研究发现对于一个时钟如果移动四次就会便相当于没有移动,因此我们只需要枚举每个钟的四种状态共9^4共6561种状态,这样就不会超时了,不过如果进一步研究这个题目发现移动方案之间是有约束的,打个比方,A时钟由三种移动方案确定,如果其中的两种方案的次数已经知道,那么第三种方案也就会确定,因此我们只要枚举前三个方案的次数其他的便可以递推出来,状态只有4^3个,效率无疑大大提高。 Arithmetic Progressions这题由于题目要求按b升序排列,所以我们习惯性得把b放在外循环而a放在内循环,这样做加上剪枝后也会超时,由于剪枝时按a 剪枝时力度无疑会更大,因此我们可以把a提到外循环,相应的加一个快排,因此我们得出一个结论:把剪枝有利的尽量放在外循环。 素数的题目也有几个,枚举就行了,不过注意要先生成一定范围内的素数,然后再枚举判断,不过有一种随机化的素数判断可以在klogn内判断,可以参考周咏基的论文《论随机化原理与设计》。 Party Lamp与The Clocks有异曲同工之妙,同样我们可以判断出一个按钮如果按了两次就没有意义了,n值是有小于4时才会限制按键次数否则不予考虑。不过这样枚举还是会超时,如果再次分析可以发现每六个灯一个循环即灯的最后状态是循环的,因此只要枚举6个灯的状态即可,算法十分优秀了。 Controling Company当时看到这道题时,看到题解是才发现N的范围并不大,完全可以用迭代枚举来求解,即不断枚举更新公司之间的关系,直到无法更新。可以看出枚举对付一些看起来很复杂的题目很有一套。 Contact也是一道难题,为了判重,我们不得不借助于Hash表,把一个字符串看出一个二进制数,不过为了区分11和0011这样的相同大小的字符串,我们

我的+USACO+总结

我的usaco 总结 Personalized Curriculum for Leo Kan; Last visit: 12 hours ago Congratulations! You have finished all available material. Chapter 1 DONE 2008.03.16 Getting started Chapter 2 DONE 2008.01.30 Bigger Challenges Chapter 3 DONE 2008.02.15 Techniques more subtle Chapter 4 DONE 2008.03.09 Advanced algorithms and difficult drills Chapter 5 DONE 2008.04.04 Serious challenges Chapter 6 DONE 2008.04.03 Contest Practice 花了几个月时间,做完了USACO,感觉收获很大.做USACO之前和做USACO之后我感觉我的能力有很大的提升. USACO这个题库是一个完全适合信息学竞赛初学者的题库,它里面的内容由浅至难,很"经典"的一题Your Ride Is Here是只要会编程就能做的题目.接下来的内容可以使你掌握信息学竞赛中一些基本的也是很必要的算法和数据结构.如果只是想参加noip的话做完4甚至还不用就有拿奖的水平了(noip甚至连网络流,几何都不考) Chapter 1, 正如它的标题所言Getting started,如果你只会编程而想踏入竞赛的门槛的话,做完Getting started,你就能对什么是竞赛有一点认识了.涉及基础的贪心,动态规划,搜索,模拟.特别需要提一下的我觉得是Checker Challenge 如果不用位运算那么它的剪枝有很大的技巧,很有启发性.另外Packing Rectangles是一道极度繁琐的题目,不考什么技巧,就考是否细心,如果是初学者很有必要练习一下,不是的话可以直接pass. DONE 2007.10.25 TEXT Introduction Section 1.1 DONE 2008.03.16 TEXT Submitting Solutions DONE 2007.10.26 PROB Your Ride Is Here [ANALYSIS] 无聊题 DONE 2007.10.26 TEXT Contest Problem Types DONE 2007.10.26 TEXT Ad Hoc Problems DONE 2007.10.26 PROB Greedy Gift Givers [ANALYSIS] 模拟 DONE 2007.10.27 PROB Friday the Thirteenth [ANALYSIS] 模拟 DONE 2007.10.27 PROB Broken Necklace [ANALYSIS] 枚举or动态规划 Section 1.2 DONE 2007.10.27 TEXT Complete Search DONE 2007.12.30 PROB Milking Cows [ANALYSIS] 贪心 DONE 2007.12.30 PROB Transformations [ANALYSIS] 模拟

个人工作总结与业绩报告

个人工作总结与业绩报告 站在新的世纪里,透视过去的时光,工作的风风雨雨时 时在我眼前隐现,回眸望去,过去的一幕幕在不知不觉中打 湿眼睑。 似乎岁月的记忆依然就在心头展现!时光如梭,当我意 气奋发地跨入20xx年的时候,不知不觉中参加工作已满二 十六个年头了。回首这些年的工作,有硕果累累的喜悦,有 与同事协同攻关的艰辛,也有遇到困难和挫折时的惆怅。我 自从19xx年x月参加工作以来,在上级的领导下,逐渐成 为了一个在政治上坚定,思想上成熟,工作上能够独当一面 的人。我深信一个人的信念是他的世界观在奋斗目标方面的 集中反映,共产主义信念是我一生执著的追求目标和持久的 精神激励力量。我把政治上的追求与现实中的工作结合起 来,把为共产主义奋斗终身的信念从朴素的工作、学习中日 益上升到自觉、理性的高度,从感性认识上升到了理性认识。在工作中我焕发出了高度的积极性、创造性和责任感,脚踏 实地艰苦创业,捍卫自己的信仰和共产主义事业,认真学习 马列主义、毛泽东思想、邓小平理论,坚持“以人为本”的指导思想,坚定不移地贯彻执行党的路线、方针政策。用理论 知识武装自己的头脑,指导实践,科学地研究、思考和解决

工作中遇到的问题,使自己能够与集体共同进步。在日常工 作中能紧紧围绕班组的各项中心工作任务,服从上级领导的 安排,认真完成领导分配的各项工作任务,与同事和睦相处。在工作中,不断加强业务理论知识的学习,能够理论联系实 际,运用自己所掌握的专业知识结合到实际工作当中,脚踏 实地做好本职工作。现将这些年的主要工作业绩总结如下: 1.革新成果 表彰奖励: (1)、在19xx年聚丙烯二车间建设期间,我认真地学 习整个装置的生产流程图,并与建设装置的民工们交流,仔 细地观察装置的每一个设备,每一条管线是如何安装上去 的。可以说,聚二装置是我一天天看着建成的,对装置的一 管一线都了如指掌。因此在19xx年x月聚丙烯装置第一次开车的过程中,我东奔西跑,解决在开车过程中遇到的每一 个问题,通常都是手到病除。第一次开车成功,我心里也尝 到到了一点点的成就感。为此车间研究决定,鉴于我在此次 新装置开工中的突出表现,给予记三等功的奖励。这同样也 激励着我继续努力奋进的信心。 (2)、新装置开工后,我担任了五班的班长,常与班员 讨论一些技术性的问题,并把一些装置运行过程中出现的问 题及时记录下来,并且分析出问题发生的原因,条件等,从 而为以后的工作积累了许多宝贵的经验。19xx年是开工后的

USACO 2019 US Open银组Silver竞赛真题(中文)

USACO2019US O PEN C ONTEST,S ILVER P ROBLEM1.L EFT O UT Farmer John正在尝试给他的牛群拍照。根据以往的经验,他知道这一工作往往结果不怎么样。 这一次,Farmer John购买了一台昂贵的无人机,想要拍一张航拍照。为了使照片尽可能好看,他想让他的奶牛们在拍照时都朝向同一个方向。奶牛们现在在一块有围栏的草地上排列成$N\times N$($2\leq N\leq1000$)的方阵,例如: RLR RRL LLR 这里,字符'R'表示一头朝右的奶牛,字符'L'表示一头朝左的奶牛。由于奶牛们都挤在一起,Farmer John没办法走到某一头奶牛面前让她调转方向。他能做的只有对着某一行或某一列的奶牛喊叫让她们调转方向,使得被叫到的这一行或列内的所有L变为R,R变为L。Farmer John可以对任意多的行或列发号施令,也可以对同一行或列多次发令。 就如同Farmer John想象的,他发现他不可能让他的奶牛们都朝向同一个方向。他最多能做的是让所有奶牛中除了一头之外都朝向相同的方向。请找出这样的一头奶牛。 输入格式(文件名:leftout.in): 输入的第一行包含$N$。以下$N$行描述了奶牛方阵的第$1\ldots N$行,每行包含一个长度为$N$的字符串。 输出格式(文件名:leftout.out): 输出一头奶牛的行列坐标,满足这头奶牛被调转方向的话,Farmer John就可以使他的所有奶牛都朝向同一个方向。如果不存在这样的奶牛,输出-1。如果存在多头这样的奶牛,输出其中行坐标最小的,如果多头这样的奶牛具有相同的行坐标,输出其中列坐标最小的。

usaco 计算几何

usaco 计算几何 usaco计算几何2010-05-10 09:09Computational Geometry Prerequisites Graph TheoryShortest PathTools This module discusses several algorithms that calculate various geometric properties,mostly based on only two operations described below:cross product and arctangent. Cross Product The cross product of uand vis written as ux https://www.360docs.net/doc/1518561754.html,putationally,the cross product of two three-dimensional vectors uand vis the vector determinant of the following matrix(where i,j,and kare unit vectors in the x,y,and zdirections respectively):|i jk||ux uy uz||vx vy vz|That equation works out to: (uyvz-vyuz)i+(uzvx-uxvz)j+(uxvy-uyvx)k This definition can be used for vectors in two dimensions by using three-dimensional vectors with az component of 0.The resulting vector will only have az value. The cross product has three properties: The cross product of two vectors is perpendicular to both vectors.The length of the cross product is equal to the product of: the length of u,the length of v,andthe sine of the angle between the vectors.Of the two different directions that are perpendicular to both uand v,the direction the cross product points depends on whether uis``to the right''of vor``to the left.'' Dot product The dot product of two vectors uand vis ascalar written as u·https://www.360docs.net/doc/1518561754.html,putationally,it is defined in three dimensions as:uxvx+u yvy+uzv z The dot product is actually equal to the product of:

工作业绩总结材料8篇

工作业绩总结 无论对于哪一个公司来说,业绩都是公司运作的核心,看重员工的业绩是企业生存的需要。因此,作为一名员工要想获得晋升或加薪的机会,就务必做出好的业绩。业绩包括个人的业绩、所在部门的业绩以及公司的业绩。正如一位人力资源经理所说:“员工之间收入的高低,归根结底是取决于工作业绩。” 好的业绩需要好的业绩报告来表现 公司对于业绩的重视使得写好业绩报告成为了至关重要的一件事。好的业绩还需好的业绩报告来表现,如果业绩报告写得不好,没有突出自己所取得的成果,没有充分表现出自己业绩的全貌,就可能影响考核部门对你构成正确的评价。 业绩报告的作用在于全面、系统地反映你在某个时期所取得的业绩,并对自己的表现进行客观的分析和总结,明确自己所取得的成绩,找出工作中存在的不足,并且总结上一阶段工作中的经验和教训。一份优秀的业绩报告能够把你的业绩客观地反映出来,使你的辛勤工作有所回报,而失败的业绩报告则有可能掩盖你的实际贡献。 真实表现自己的成绩最重要 很多人在撰写业绩报告时总表现得很谦虚,尽量少写自己的贡献,甚至把自己努力取得的成绩也归功于别人。他们认为实事地说出自己所取得的成绩是不好的,会有邀功的嫌疑,还显得骄傲自大。事实上,根本没必要对自己所取得的业绩羞于启齿,客观地反映自己的贡献本身就是一种潜力,而且公司看重的是员工创造业绩的潜力以及所取得的成就。如果过于谦虚,弱化自己的贡献,不了解实际状况的主管可能很难对你作出真实的评价。即使主管了解你的真实贡献,也会认为你不够自信,连真实的汇报自己的成绩的

勇气都没有,从而认为不能委以重任。因此,在撰写业绩报告时,切记不要过谦,真实地反映自己的成绩是最重要的。 固然,要想使业绩报告赏心悦目,首先务必有好的业绩作为依托,但恰当的述也是必不可少的。一份完整的业绩报告就应包括以下一些资料: 第一,基本状况概述 首先要概述工作资料、工作的主客观条件、有利和不利因素以及工作环境等。虽然这些与业绩的取得没有必然的联系,但是,显然如果你处于不利的工作环境,工作条件也甚是恶劣的话,无疑能够使你所取得的业绩大放光彩。比如说,你的工作是处理客户投 诉,这一工作的环境显然不是十分优越的,它要求员工能够忍受客户的抱怨,甚至是谩骂、侮辱。环境本身的特殊性实际上是业绩的一部分,因此就应把工作环境述出来,以使自己的业绩有所依托。当然,在述不利条件和环境时,千万不要理直气壮,不管怎样说,这是工作性质所决定的,理解了这份工作就务必理解它所带来的特殊的工作环境。 第二,述自己所取得的成绩 述自己的成绩是业绩报告的重点。撰写业绩报告的根本目的就是要肯定成绩,突出自己的贡献,从而为公司考核和晋升带给参考。 在撰写业绩报告之前应认真思考,尽可能把自己所取得的所有业绩都列出来,然后按照重要程度排序。在述时,首先要清楚地表述自己所取得的成绩有哪些,是在什么样的状况下取得的,每项成绩的分量有多大,对企业有多大的贡献。在述时,必须要注意有条有理,突出重点,千万不能把各种成绩堆在一齐,让

USACO 2018.12月铜组Bronze竞赛真题(中文)

USACO2018D ECEMBER C ONTEST,B RONZE P ROBLEM1.M IXING M ILK 农业,尤其是生产牛奶,是一个竞争激烈的行业。Farmer John发现如果他不在牛奶生产工艺上有所创新,他的乳制品生意可能就会受到重创! 幸运的是,Farmer John想出了一个好主意。他的三头获奖的乳牛,Bessie、Elsie和Mildred,各自产奶的口味有些许不同,他打算混合这三种牛奶调制出完美的口味。 为了混合这三种不同的牛奶,他拿来三个桶,其中分别装有三头奶牛所产的奶。这些桶可能有不同的容积,也可能并没有完全装满。然后他将桶1的牛奶倒入桶2,然后将桶2中的牛奶倒入桶3,然后将桶3中的牛奶倒入桶1,然后再将桶1的牛奶倒入桶2,如此周期性地操作,共计进行100次(所以第100次操作会是桶1倒入桶2)。当Farmer John将桶$a$中的牛奶倒入桶$b$时,他会倒出尽可能多的牛奶,直到桶$a$被倒空或是桶$b$被倒满。 请告诉Farmer John当他倒了100次之后每个桶里将会有多少牛奶。 输入格式(文件名:mixmilk.in): 输入文件的第一行包含两个空格分隔的整数:第一个桶的容积$c_1$,以及第一个桶里的牛奶量$m_1$。$c_1$和$m_1$均为正,并且不超过$10^9$。第二和第三行类似地包含第二和第三个桶的容积和牛奶量。 输出格式(文件名:mixmilk.out): 输出三行,给出倒了100次之后每个桶里的牛奶量。 输入样例: 103 114

125 输出样例: 10 2 在这个例子中,每倒一次之后每个桶里的牛奶量如下: 初始状态:345 1.桶1->2:075 2.桶2->3:0012 3.桶3->1:1002 4.桶1->2:0102 5.桶2->3:0012 (之后最后三个状态循环出现……) 供题:Brian Dean

主要业绩总结报告

主要业绩总结报告 主要业绩总结报告 本着教育科研为教育决策服务、为教育改革与发展的实践服务的指导思想,区教科所坚持研究与管理结合、普及与提高并重的工作思路,发挥研究、指导、服务的三大职能,在年主要开展了以下的工作: 一、管理 1、市、区级课题中期检查工作 根据《市教育科学规划研究课题管理办法》和《区教育科学规划研究课题管理办法》的规定,年对市教育科学“十五”规划课题、区教育科学“十一五”规划课题执行情况进行了中期检查。检查包括6个市级课题、98项区级课题。检查采取课题组报送总结报表和规划办随访

性检查相结合的方式进行,我们对市级课题和区级重点课题进行了随访性检查。 2、学校科研工作检查评价 年末,对我区中小学、幼儿园进行了教育科研工作检查评价工作。评价主要从科研意识、科研管理、课题研究、科研成果几个方面进行。 从检查的结果来看,学校领导的科研意识在普遍增强,教师参与课题研究的积极性在逐渐提高,并能把自己教育教学中的问题作为课题来研究,取得了一些研究成果,但校际间差距较大。 3、年度市级科研论文组织与征集 为进一步推动基础教育科学研究的深入发展,逐步加大基础教育的科技含量,增强素质教育的科研氛围,我们积极组织我区的各中、小学、幼儿园教师参加年度市基础教育科学研究论文评审活动。 组织活动中我们通过网站和信件通知,宣传,并组织专题讲座,为教师们

撰写科研论文做辅导,聘请教科院基教所秘书室的朱懋勋教师来我区进行“如何撰写科研论文”的专题讲座。各校主管科研的领导、各校科研骨干和上交论文的教师参加了这次辅导活动,使得我区上交的论文无论在数量上和质量上都有所提高。 4、区第一届教育科研论文征集工作 为了提高广大、干部教师的教育科研整体水平,促使广大干部、教师及时总结教育科研成果、教育教学经验,组织了区第一届教育科学研究优秀论文征集活动。论文内容涉及教育理论、教育教学实践、教育管理等内容。 5、监控与评价工作 加强与小教科、小教研的协调,制订了《区21世纪新课程监控与评价工作方案》,并推出电子版《课改时讯》专栏。工作中,我们到市级样本校听课、评课,组织讲座,与市监控与评价组一起了解学校的课改情况,及时发现问题,及时总结,切实把新课程的监控于评价工作

相关主题
相关文档
最新文档