摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 显然的滑动窗口题。 (尺取法 如果l..i这一段已经有k种珍珠了。 那么就尝试把l++; (即把l这个影响尝试去掉一下 如果不足k种珍珠了,那么就把l++撤销。 否则l++照常 (离散化一下数据 【代码】 cpp include 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 k%i=k (k/i) i 则∑k%i = n k ∑(k/i) i 因为k/i是整除运算。 所以会有某一段连续的i,它们的k/i的值都是相同的 那么 这一段连续的i用等差数列求和公式O(1)搞一下就好。 (然后i可以直接跳到上 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 一开始以为可以炸多次。 然后发现是一次。 那么久直接做个前缀和就好了 枚举正方形的左上角。 然后刚好和网格对齐的话。 肯定没有放在(x+0.1,y+0.1)这个地方好。 这样可以把边缘的炸掉。 然后为了方便处理。 x和y都递增1 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 因为查询的字典里面。单词的最大长度为10 所以。 如果建立一棵字典树的话。 深度最多为10; 那么可以写一个DP; 设f[i]表示1..i这一段是否能被理解 f[0] = 1; 然后从从第i+1个位置开始扫描。 沿着树根往下走就 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 时间是按顺序的。 所以就有单调性啦。 写个DP就好。 设f[i]表示打第i只鼹鼠,最多能打几只鼹鼠。 则如果i和j的距离不超过它们的时间差,那么就可以从j转移到i 即f[i] = max(f[i],f[j]+1) 注意不要写成f 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 设k为最大的正整数满足 $2^0+2^1+...+2^k2^0+2^1+...+2^k$ 那么只用$2^0,2^1,...2^k$和$m (2^0+2^1+...+2^k)$这k+2个数就能表示出0..m这m+1个数字了。 (原 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二分图的最大匹配。 因为要答下一题,这一题必须先答完。 所以如果某道题没有匹配了。 那么就直接break掉。 【代码】 cpp include define LL long long define rep1(i,a,b) for 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 dfs序 进入的位置设为1出去的设为 1则某个点进去的位置的dfs序的前缀和就是这个点到根节点的路径数。 (可以巧妙的把那些分叉路径去掉。 修改成公路后。就把下面的那个点(深度高的)的进入和出去的值都设置为0 用线段树维护区间和 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 设fi表示深度为i的树个数,si是fi的前缀和,即si为深度不超过i树的个数。 那么si=s[i 1]^n + 1 就是说 先选一个节点作为根节点 然后选n个深度不超过i 1的树接在根节点下面。 这n个子树每个子树都有s[i 1 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 第一个位置确定了。 那么可以通过a[i 1]来推测出第i个位置应该放什么。 所以分两种情况就好。 第一个位置为0 或第一个位置为1 最多只有这两种可能。 判断合法性就好。 【代码】 cpp include define LL l 阅读全文