摘要: 题意:给你若干个数对,每个数对中可以选择一个个元素,问是否存在一种选择,使得这些数的GCD大于1? 思路:可以把每个数对的元素乘起来,然后求gcd,这样可以直接把所有元素中可能的GCD求出来,从小到大枚举即可,需要特判一下第一个元素是素数的情况。 阅读全文
posted @ 2018-08-20 10:11 维和战艇机 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你一个数组,数组是经过q次区间覆盖后的结果,第i次覆盖是把区间内的值赋值为i,其中有若干个地方数值未知(就是0),让你判断这个数组是否可以经过覆盖后得到的,如果可以,输出任意一种可行数组。 思路:不合法的情况只有2种。1:两个相同的数字中间出现了比它小的数字,比如: 6 5 6 就不合法 阅读全文
posted @ 2018-08-18 18:23 维和战艇机 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 在杜教直播中得知2018多校第八场第10题和这个题很相近,所以先补这个题。 代码和思路借鉴了这篇博客:http://hzwer.com/6746.html。 这题是询问从原点能看到的楼房数目,首先对某一个点修改后,对之前的点没有影响,所以只需要处理后面的点,而后面的点分为两种情况: 1:查询区间的左 阅读全文
posted @ 2018-08-17 12:03 维和战艇机 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 听了杜教的直播后知道了怎么做,有两种方法,一种构造函数(现在太菜了,听不懂,以后再补),一种容斥原理。 知识补充1:若x1,x2,.....xn均大于等于0,则x1+x2+...+xn=k的方案数是C(k+m-1,m-1)种(貌似紫书上有,记不太清了)。 知识补充2:若限制条件为n(即x1,x2.. 阅读全文
posted @ 2018-08-15 21:48 维和战艇机 阅读(672) 评论(1) 推荐(0) 编辑
摘要: 这个题相当于求从1-n的递增方案数,为C(2*n-1,n); 取模要用lucas定理,附上代码: 阅读全文
posted @ 2018-08-15 20:56 维和战艇机 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 不久前做过POJ3070,所以知道这题要用矩阵快速幂优化,但是这个题的递推公式中有一项⌊p/n⌋,场上就不会了。。。 下来才知道要用分块矩阵快速幂,因为⌊p/n⌋最多有2√p块,可以对每一块使用快速幂,复杂度(应该)为lgn*√p。 每一块的范围可以在O(1)的时间内求出,范围为x到min(n,p/ 阅读全文
posted @ 2018-08-14 11:30 维和战艇机 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 场上场下各种TLE到怀疑人生。。。经过大佬指点之后才知道要用fread才能过,一般的快读不行。。。 题意:一个剑客打小怪兽,有n头小怪兽,剑客和小怪兽有m个属性。只有剑客的m个属性都大于等于某个小怪兽的属性,才能击杀这个小怪兽(即属性全方位碾压才能击杀),每击杀一个小怪兽可以获得属性的加成,问最终击 阅读全文
posted @ 2018-08-13 22:19 维和战艇机 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 网上的大多是用树的直径做的,但是一些比较巧妙的做法,来自https://www.cnblogs.com/qldabiaoge/p/9315722.html。 首先用set数组维护每一个节点所连接的边的信息,然后遍历一遍所有的点,把度为1的点放入集合s,(把距离作为第一要素); 然后把集合s中的点从小 阅读全文
posted @ 2018-08-06 13:48 维和战艇机 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 一直第9个样例WA,发现事情没有这么简单的时候只剩20分钟了。。。。。。 看了一些大神提交的代码,发现还能这么玩。。。。。 这个题目可以转化成这个问题:给一堆[0,m)之间的数,可以随意组合成新的数(当然新的数要%m),问这个区间有多少个数?分别是哪些数? 解法:求所有数的(包括m)的gcd,那么元 阅读全文
posted @ 2018-07-27 12:10 维和战艇机 阅读(232) 评论(0) 推荐(0) 编辑
摘要: n进制转m进制,虽然知道短除法但是还是不太理解,看了代码理解一些了: 记住这个就好了: AC代码如下: 阅读全文
posted @ 2018-07-15 22:16 维和战艇机 阅读(215) 评论(0) 推荐(0) 编辑