CSCI5320 回忆录

回忆一下今年CSCI5320的期末试题,方便以后的同学参考。期末考主要是题量太大了,满分50分的试卷最后两道大题15分全空了。

→\rightarrow 题1:给出FPT和Kernelization的定义(4分)
解:参照讲义

→\rightarrow 题2:给出三种设计FPT算法的常用方法(6分)
解:参照讲义

→\rightarrow 题3:给定了一个图,求这个图里有多少个不同的MST(5分)
解:直接Prim或者其他算法时间不够用。考试我花了5分钟画了几个,放弃了。算出来是16个。
最快的应该是应用“red” rule,对于一个cycle,当中最大权值且唯一的边最终不会落到解集里,这样的边可以先删掉。大致可以删掉五六条边。
剩下的图里总共有12条边,10个点,所以还得删掉3条边。
简化的图里有3个cycle,1)两条边最大且相等(2种删除方案) 2)两条边最大且相等(2种删除方案) 3)四条边最大且相等(4种删除方案),所以总共有2×2×4=162\times 2\times 4=162×2×4=16种。

→\rightarrow 题4:设计一个FPT算法使得kkk顶点覆盖的复杂度低于O(2k)O(2^k)O(2k)(5分)
解:习题原题,没什么好说的,就是考虑P3P_3P3 path构造bounded search tree,然后用斐波那契数列算通项公式。

→\rightarrow 题5:给出5个和Dominating Set相关的parameterized problem。(5分)
解:凑了5个相关的,考完就忘了。

→\rightarrow 题6:设计一个FPT算法判断一个cubic graph是否存在kkk个点的点集V′V'V,使得G[V′]G[V']G[V]是一颗树,并且树内部的节点度都是333。(5分)
解:用random separation,随机染色。解集SSS大小为kkk全染成红色,邻居N(S)N(S)N(S)全染成蓝色则构成一个good separation。那么这个可以在多项式时间内找到解(只要检查一下红色component是否包含满足条件的tree即可)。再套上概率24ktO(log(t))logn2^{4k}t^{O(log(t))}log n24ktO(log(t))logn去随机化,得到一个解。

→\rightarrow 题7:证明下述问题是w[1]-hard:“给定一个kkk独立集,寻找一个大小比kkk大的独立集”。(5分)
解:类似习题,因为kkk独立集是w[1]-hard,如果原问题不是w[1]-hard,我们可以将k=k−1k=k-1k=k1,不断缩小,最终k=1k=1k=1的时候随意返回一个点,从而kkk独立集不是w[1]-hard。

→\rightarrow 题8:没来得及看题 orz… (5分)
解:完全没印象

→\rightarrow 题9:题意不太确定,大概是“给定一个图,随意的给每个顶点染上1到ttt颜色,是否存在kkk个点的点集V′V'V,使得G−V′G-V'GV中不存在alternate path”。证明这个问题是NPC,并且设计一个FPT算法。(10分)
解:不会

### CSCI 计算机科学课程概述 CSCI 是 Computer Science 的缩写,在学术领域通常指代计算机科学相关的课程或学科。以下是关于 CSCI 课程的一些核心要点: #### 1. **课程范围** CSCI 课程涵盖了广泛的理论和实践主题,旨在培养学生的计算思维能力和技术应用能力。这些课程通常包括但不限于以下几个方面[^1]: - 编程基础:学习编程语言(如 Python、Java 或 C++),掌握算法设计与实现。 - 数据结构与算法:研究数据存储方式以及高效解决问题的方法。 - 软件工程:理解软件开发周期及其管理方法。 - 操作系统:探索操作系统的设计原理及其实现机制。 - 数据库管理系统:了解数据库的概念、模型以及查询优化。 #### 2. **学位层次** CSCI 课程可以分为本科阶段和研究生阶段两大类[^2]: - **本科生课程**:注重基础知识的学习,帮助学生建立坚实的理论框架和技术技能。 - **研究生课程**:更深入地探讨特定领域内的高级话题,例如人工智能、机器学习、网络安全等。 #### 3. **职业发展路径** 完成 CSCI 学习后,毕业生可以选择多种职业方向,具体取决于个人兴趣和发展目标[^3]: - 应用开发者/工程师 - 系统分析师 - IT 咨询顾问 - 科研人员或者继续攻读博士学位从事教学科研工作 ```python # 示例代码展示如何判断一个数是否为素数 (Prime Number Check) def is_prime(n): """Check if a number is prime.""" if n <= 1: return False for i in range(2, int(n**0.5)+1): if n % i == 0: return False return True print(is_prime(7)) # 输出应为True ``` 上述例子展示了简单的函数定义过程,这是任何一位学习过基本程序设计的学生都应该熟悉的技巧之一。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值