ACM集训日记-8月8日

来源:互联网 发布:嵌入式linux项目实战 编辑:程序博客网 时间:2024/05/23 13:17

    今天A了两道题,今天的训练赛也A了两道题,算是标准水准吧,虽然训练赛前两道比较水,但也有坑人的地方。眼看着第一周的练习还有一天就要截止了,不禁有些感叹,之前偷的懒现在全部还回来了,今天重新看了最小生成树里的prim算法和kruskal算法,感觉上个学期学的印象不深刻,kruskal相当于把图里的每个节点看成独立的,每次都找当前的最短距离,看两端的节点是否属于不同的图,如果是就加入,不然就放弃,然后不停的重复,直到有n-1条边。prim算法构造最小生成树的时候,设G=(V,E)先设一个初始S={1},然后,只要S是V的真子集,就做贪心选择,选取满足条件的属于S的i,属于V-S的j,并且c[i][j]是最小的边,将定点j添加到S中,直到S=V为止。

    今天的训练赛的第一道题,很好理解,找到规律就ac了,一开始我打太快了都没意识到自己打错了,怎么输内容出来的都是主人公先没了,后来才发现代码打错了,就算你一眼看出代码应该怎么写,也要冷静写代码,不然这么短的代码一遍没有调试过,自己容易看不见(错误就在那里,自己就是看不见)。今天第二道训练赛的题目算是有些坑了,用正常的方法老是超时,用预处理我却超内存,因此把所有cin都改成了scanf,结果还是不行,我就想当这些都不行的时候就是可能自己的方法除了问题,其实不用另开一个数组用sort重新排序,对原来的数组中r到l之间判断在比x小的数有几个就行了,只要x在r到l之间 的位置没有变化,x在原数组的位置就不会变化。

    又是日常A两道,加油,收获是一点点累计的。