随笔分类 - 暴力
摘要:题目链接 链接 翻译 让你统计"山"和“山谷"的总个数,要求这个总个数最少。 你可以修改某个数字为任意整数。 题解 首先对于初始的数组,统计一下山加上山谷的总数 然后枚举第 个位置,现在要对第 个位置上的数字进行修改了。 最直接的想法就是,改了 之
阅读全文
摘要:题目链接 链接 翻译 题解 看到除2就知道是个暴力题了。 模拟就行,log复杂度除不了几下的。 然后每次分成的碎片个数乘 也很快就会超过 了,为了防止爆 中间就停下来吧。 代码 #include <bits/stdc++.h> #define lson l,m
阅读全文
摘要:题目链接 链接 翻译 让你构造一个和 个字符串都只有【最多一个地方】不同的字符串 题解 只考虑第一个字符串,假设第 个位置不同,那么每个位置都有 种可能(其中一种是和本身一样) 看看得到的字符串是不是符合要求的就好。 代码 #include <iostream> #
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 要让前i个数字的和小于等于M. 问你最少要删掉前i 1个数字中的多少个数字,每个询问都是独立的。 【题解】 ti的范围很小。 所以N MAX(TI)暴力枚举就行。 如果超过了M的话显然是优先把大的数字删掉。 【代码】 cpp include using
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 先把所给的压缩形式的字符串转成二进制 然后对获得的01数组做一个前缀和(a[i][j]=以(i,j)为右下角,(1,1)为左上角的矩形内的数字的和) 这样就能O(1)复杂度获得一个长度为x的正方形的区间和了。 这样。我们直接暴力从1..n
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 枚举最大值和最小值在什么地方。 显然,只要包含最小值的区间,都让他减少。 因为就算那个区间包含最大值,也无所谓,因为不会让答案变小。 但是那些不包含最大值的区间却能让差值变大。 所以没有问题。 【代码】 cpp include defin
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 1000以内就有非常多组互质的数了(超过1e5) 所以,直接暴力就行...很快就找完了 (另外一开始头n 1条边找1和2,3...n就好 【代码】 java include define ll long long using namesp
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 从小到大枚举天数. 然后贪心地,从大到小分配a[i]到各个天当中。 a[n]分配到第1天,a[n 1]分配到第2天,...然后a[n x]又分到第一天。 这样能保证优先让大的数字能够无损失地加进去。 从而尽可能快的凑够m天 【代码】 ja
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你一个长度为4的数字序列(每个数字都在0~9之间,且不重复出现) 现在让你猜这个长度为4的序列是什么. 猜了之后对方会告诉有几个数字是位置和数字都正确的(猜的数字序列有顺序) 以及有几个数字是数字出现了但是位置不正确. 即给你两个反馈。 现在给你n个猜
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 枚举k 那么另外一个人的得票就是n k sum(ai) 找到最小的满足n k sum(ai) sum(ai)的k就ok了 【代码】 cpp include define rep1(i,a,b) for (int i = a;i = b;i )
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 时刻维护一下前K大的数字就好。 因为k 【代码】
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 字典树 我们可以两重循环(i,j) 来枚举所有的子串 即i=1,j=1,2,3... i=2,j = 2,3,4,.. 于是我们在i变化的时候(就是j层循环完了,i要执行i+1的时候 令cur=字典树的root 然后沿着字典树往下走。 遇到没有
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 枚举每一条边(x,y) 然后再枚举y的出度z 看看g[x][z]是否等于1(表示联通) 如果等于1就说明找到了一个三元环,则尝试用它们的出度和 6更新答案就好。 时间复杂度O(M N) 【代码】 cpp include define rep1(
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你n个矩形。 让你找出一个点(x,y) 使得这个点在其中至少(n 1)个矩形中。 【题解】 若干个矩形交在一起的话。 它们所有的公共区域也会是一个矩形。 这个矩形的左下角坐标为 这个矩形的右上角坐标为$(m
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你n个数对(ai,bi)。 让你求一个大于1的数字x 使得对于任意的i x|a[i] 或者 x|b[i] 【题解】 求出第一个数对的两个数他们有哪些质因子。 显然用这些质因子去试2..n就可以了。 看哪个可以满足 就输出对应的就可以了。 (一开始我求出
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 显然在没有一直往右走然后走到头再往上走一格再往左走到头之前。 肯定是一直在蛇形走位。。 这个蛇形走位的答案贡献可以预处理出来。很容易。 然后蛇形走位之后走到最右再掉头的这个过程也能倒推出来。 考虑sum[i]和sum[i+1]的
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你n个字符串放在multiset中。 这些字符串都是长度为m的01串。 然后给你q个询问 s,k 问你set中存在多少个字符串t 使得∑(t[i]==s[i]) w[i]的值 【题解】 虽然询问很多。 但分类一下最多也只有2^12个01串类型。 (01
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 你可以最多交换k次数字。 让你组成一个最大的和一个最小的数字。 【题解】 直接写个bfs.求出所有状态的最小交换次数。 但是最大值和最小值分开写。 做最大值的时候。 假设要交换x[i],x[j] (ix[j]才交换。 加上这个优化就能过了。 直接输出最小
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先用枚举回文串中点的方法。 得到这个字符串中出现的所有的回文。 得到他们的左端点以及右端点。 整理成一个pair数组 然后排序。 对于每一个回文串。 查找起点比这个回文串的终点大的所有回文串的个数。 【代码】 cpp inclu
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你n个数字 让你删掉最小的数字 使得: 剩余的数字中 "最大的数字"小于等于"最小的数字 2" 【题解】 把数据从小到大排序。 显然只有删掉最小的数字或者最大的数字才可能改变最大数字和最小数字的比例 那么我们枚举最后的结果产生的那一刻最小的数字是什么。
阅读全文