第一题:1096 Consecutive Factors (20分)
类似于数学问题,求最大长度子列乘积,所有子列必须满足都小于等于sqrt(N),因为sqrt(N)*sqrt(N)=N,所以只需要从2遍历到sqrt(N)然后逐项相乘,如果成绩不能被N整除就放弃循环,重新开始。
第二题:1059 Prime Factors (25分)
类似于上提解法,坑点是特判N=1.
第三题:1039 Course List for Student (25分)
这个题就相当于一个排序不难,关键是最后一个测试点会超时,cin对string读入还是费事,需要取消同步就可以解决的,记得取消同步以后不可以同时使用cin与scanf,以及cout和printf就可以了。
取消同步:std::ios::sync_with_stdio(false);
算法笔记在这个地方使用的是字符串harsh,也是一种解决方法。
第四题:1047 Student List for Course (25分)
上个可以用的取消同步这里就不可以了,果然还是需要学习一下字符串harsh,技多不压身。