本周博客总结
经过本学期icpc选修课的学习,我对自己学习有了一个更高的认识:
1.我们学一门计算机语言可以分为两个方向,程序设计和算法,学校要求的课程是程序设计,是我们的必修课,而费老师给我们开的这门选修课是教授用c++实现竞赛算法。算法是各种计算机语言的通用思想,我选择这门课的目的也是为了提升自己的算法能力,在以后在学习人工智能时能够更快速的接受算法类的知识。
2.学习计算机语言要利用好一些网络平台,我们新手用洛谷和csdn,直接搜索自己想学的知识点,找到合适的帖子,很方便的就能接触到知识点,或者找自己想搞懂的题的题解,可以学会一道题的解题过程。
3.语法是最基础的,是需要我们去快速熟练掌握的,不能在基础的语法上浪费太多时间。真正需要我们去花费时间消化的是程序的整体框架思路和算法。
4.看到一个题目,解决思路分三部分:
1先模拟问题的解决过程
2再解决数学问题
3再考虑如何编码
局域网
要使删去的边最大,等价于使剩下的边长度最小。那么就可以使用最小生成树求解此题,只需要在输入时算出边长总和,再减去最小生成树的长度就行了。
3144 closing the farm S
依次关闭点,但是因为并查集没有分离合并的集合的操作,所以我们要先把操作存起来,等所有的询问都读入之后,逆向进行操作。
逆向操作:
读入数据,把所有的数据都存起来。把所有没有去掉的点之间的关系都加到并查集里面,倒着处理读入的询问。
最后,从1开始到n-1,判断ans是否为1,如果为1,说明所有的点都是联通的,第n次询问的时候,所有的点都已经从并查集删除,因此一定是联通的。