摘要:
只能说恶心啊... 从网上找了一个标程,把所有信息都输出出来,对着调了一下午... 找到了两个错: 1.蚂蚁移动时,并不是只会向信息素最多的地方移动 2.蚂蚁被卡在(n,m) 时,忘了拿蛋糕了... #include <cstdio> #include <cstring> #include <cst 阅读全文
摘要:
T1 40: 深搜 60: m<=$10^5$时,可以dp,f[i]表示前i个星球最多的矿 f[i]=max(f[i-4],f[i-7])+val[i] 100: 打表发现只有 1 2 3 5 6 9 10 13 17 不能由4、7组合出来 所以只要把>18的距离离散成18,还像60那样dp就行了 阅读全文
摘要:
T1 f(i)表示不和法数大于i个的数量 $$f(i)=C_n^iC_{m-i*k-1}^{n-1}$$ 首先n>m||K*n<m一定不合法 先不考虑<K的情况,那就相当于给m个果子,用n个篮子把他们装起来 用挡板法易知 $$ans=C_{m+n-1}^{n-1}$$ 即给m个果子中间再加上n-1个 阅读全文
摘要:
首先不考虑a的限制 设 S(i)为i的约数和 据约数和定理 先将i分解因数 $$ i=p_1^{q_1}p_2^{q_2}...p_k^{q_k}$$ $$S(i)=\prod_{i=1}^k\sum_{j=0}^{q_i}p_i^j$$ 当i与j互质时,S(i*j)=S(i)*S(j),满足积性函 阅读全文
摘要:
T1 贪心的选 首先从0开始,让[1,可以达到dmax]都有青蛙 设las=1,now=dmax,当前[las,now]的石头上蹲满了青蛙 然后考虑从las开始走,当前las指的青蛙一定是跳到它能到的范围内最近的那个石头 reason:最左边的石头是最早不能用的,所以要最先用掉 (我这样 其实对于是 阅读全文
摘要:
T1 对于每一个G,最小耗时是她前面B的个数,但是当G连在一起时,就有可能把她卡住 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <cmath> #include <vecto 阅读全文
摘要:
首先,求x在[a,b]和y在[c,d]两区间gcd(x,y)==K的(x,y)个数,可以转化成求四次,然后容斥求 现在问题变成求[1,m]和[1,n]的(x,y)==K的个数,其实就是求[1,m/K]和[1,n/K]的(x,y)==1的个数 设F(i)=i|gcd(x,y)的(x,y)个数 f(i) 阅读全文
摘要:
T1 三个操作实际上是两个 1.把x -1 2.把x *k 而100000的ans也不过是50步,因为是指数增长 设 f[i] 为走到i这个值用到的最少步数 那可以枚举步数,然后来更新它能走到的位置 #include <cstdio> #include <cstring> #include <ios 阅读全文
摘要:
T1 正解是 建26颗线段树,但是他们有人被卡常了... 还是分块大法好,跑的最快 直接记录下每一个块 26个字母出现次数,再打上升序还是降序的标记 毕竟考试调了两个小时呢23333 #include <cstdio> #include <cstring> #include <cstdlib> #i 阅读全文
摘要:
T1 是一道语文题 随便sort一下就行了 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <cmath> #include <algorithm> #define ll lon 阅读全文