看了一眼题后认为是一个数论,写了写输入后又思考了一下得知第一个值一定是1,扔掉.后面的值全部减1,答案是这些数的一个什么因数个数.
为了避免被坑就去看了讨论,然后就看到了CDC学长的一番话,这个特性是知道的,但是这是怎么和图论扯上关系的啊.
首先,答案小于等于n.
其次,考虑到每个奶牛来的周期越小就可以覆盖更多的日期,那么可以每次选择当前第一个没有被覆盖的日期,它是一定要选的一个周期.把它向后枚举,如果整除了就可以覆盖掉.
双重循环就A了.
其实写完之后回顾就产生了巨大的疑惑,为什么第二重循环时只要整除就可以覆盖呢?比如对于数据
4 1 4 10 13
不是应该输出3 么.但是我的程序确实A了啊?难道数据水了?还是本来就是我这种理解方式?
于是找mysnowing大佬讨论,认为是输出3的,数据水了.他写了一个复杂无比的map<int,int>维护,然后也A了.这就说明数据是水了.
然而问了一波left_right大佬,他认为本来只要有4,那么在小于最大值的日期里它都会来,也就是说不存在上面的数据,中间一定有个7(7777777).
emmmmmm
讲了这么说其实想说:要相信自己,不要轻易的否定自己.
况且如果真的是比赛的时候我想多了的话也不会代码实现...所以,一点也不慌,这种想多了而把代码改错的事不存在的.
(这水题怎么给标签啊2333)
原文地址:https://www.cnblogs.com/qywyt/p/9668938.html
时间: 2024-10-11 15:56:56