随笔分类 - 枚举
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 我们可以从左到右枚举一轮。 定义一个cost表示这一轮花费的钱数 如果cost+a[i]beforeT cost beforeT/(1+x) x cost x beforeT/(1+x) x cost beforeT/(1/x+1) x 
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 设原来n个数字的gcd为g 减少某些数字之后 新的gcd肯定是g的倍数 即g x 我们可以枚举这个x值(x =2) 看看原来的数字里面有多少个是g x的倍数就可以了 (开个数组_cnd[i]表示数字i有多少个) 为了方便起见 可以先把每个
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 设第i天总共的线数为t[i] 水平线上线数为m[i]是固定的 水平线下的线数设为d[i] 则d[i]+m[i]+1=t[i] 也就是说问题可以转化为使得t[i]最小 我们可以列出关于t[i]的不等式 t[i]= max{t[i 1],m[
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 从小到大枚举天数. 然后贪心地,从大到小分配a[i]到各个天当中。 a[n]分配到第1天,a[n 1]分配到第2天,...然后a[n x]又分到第一天。 这样能保证优先让大的数字能够无损失地加进去。 从而尽可能快的凑够m天 【代码】 ja
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 枚举三分线(离散后)的位置 然后根据预处理的前缀和,快速算出两个队伍的分数。 【代码】 java include using namespace std; const int N = 2e5; int n,m; int a[N+10],b
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 因为原序列没有任何长度超过2的回文串。 所以,我们在改变的时候,只要时刻保证改变位置s[i]和s[i 1]以及s[i 2]都不相同就好。 因为只改变一个位置的话是不会产生长度超过3的回文串的 我们按照从后到前,从小到大的顺序,尝试增加第i
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你找到(a,b,c,d)的个数 这4个点之间有4条边有向边 (a,b)(b,c) (a,d)(d,c) 即有两条从a到b的路径,且这两条路径分别经过b和d到达c 【题解】 我们枚举a,c 然后找到这样的b的个数cntb,其中a到b有一条边,b到c也有一
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你求出所有x的和 其中 (x div b)是(x mod b)的倍数 且x mod b不等于0 且(x div b)除(x mod b)的值(假设为k),k∈[1..a] 【题解】 枚举k从1~a 这样k就固定了 n = x / b; m = x % 
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你把长为a,宽为b的房间扩大(长和宽都能扩大)。 使得它的面积达到6 n 问你最小的能满足要求的面积是多少 输出对应的a和b 【题解】 假设aceil(sqrt(6 n))的话 得到的newb = ceil(sqrt(6 n))/newa newb肯定
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你找到所有和x颜色的点中,和该颜色的点颜色不同的相邻的点的个数(重复颜色算一次) 求出哪种颜色的所要求的点的数量最多. 【题解】 对于每一条边只会被查到两次。 所以按照题意暴力枚举的时间复杂度就是O(n+m)级别的 至于查重 只要对找过的点打个标记就很
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你把一个奇数n分成最多个质数的和 【题解】 10的9次方以内,任意两个质数之间的差距最大为300 因此可以这样,我们先从i=n 2开始一直递减直到i变成最大的p(p 【代码】 java import java.io. ; import java.uti
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 如果任意行之间可以重新排序。 问你最大的全是1的子矩阵中1的个数 【题解】 设cnt[i][j] 表示(i,j)这个点往右连续的1的个数 我们枚举列j 然后对于第j列的cnt[1..n][j] 我们把这n个数字排个序(升序) 然后顺序枚举这n个数字 假设
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你把一个字符串分成左右两个部分 形成两个正数 使得这两个正数一个能被a整除,一个能被b整除 找到任意一个解就可以 【题解】 枚举分割的断点i 枚举的时候用同余率算出来s[1..i]和a以及b取余的结果 怎么得到s[i+1..len 1]呢? 只要用s[
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你从一个集合中找出来一个子集 使得这个子集中任意两个数相减的绝对值是2^的整数次幂 且集合的大小最大 【题解】 考虑子集的个数为4个或4个以上 那么我们找到最小的4个a[1],a[2],a[3],a[4] 显然 dis(1,2)=2^a dis(2,3
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你找到长度为n的数字 这个数字只由a或者b组成 且这n个数码的和也是由a或者b组成的 求出满足这样要求的数字的个数 【题解】 枚举答案数字中b的个数为y,那么a出现的个数就为n y 那么和就是n a + (b a) y; 这个数字最多就7位的样子 很容
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 如果存在a[j] a[i]=d 那么认为可以量出来长度d 现在给你量尺上的n个点. 问你最少要加多少个点,才能够量出来长度x和长度y 【题解】 设dic1和dic2分别为 能量出长度x和长度y需要添加的点(所有能利用某个a[i]量出来长度为x或y的点) 
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 定义两个函数 f和g f(i)表示a[1..i]中等于a[i]的数字的个数 g(i)表示a[i..n]中等于a[i]的数字的个数 让你求出来(i,j) 这里ig(j) 【题解】 求出来两个数组g[N]和f[N]; (用map就行) 要算出(ig[j]的个
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你找一段连续的区间 使得这一段区间最多修改一个数字就能变成严格上升的区间。 问你这个区间的最长长度 【题解】 dp[0][i]表示以i为结尾的最长严格上升长度 dp[1][i]表示以i作为开头的最长严格上升长度. 然后我们枚举那个改变的位置在什么地方就
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 两个人,一个人在左上角,一个人在左下角。 左上角要到右下角去 左下角要到右上角去 只能走到相邻的格子(不能往回走,即一个往右下,一个往右上走) 要求这两个人必须要在这个n m的格子中选择一个格子作为休息点. (两条路径只能有一个一样的点) 问最多能拿到多
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你把数组分成3个连续的部分 每个部分的和要一样 问你有多少种分法 【题解】 先处理出来num[i] 表示i..n这里面有多少个j 满足aft[j] = aft[i]/2 这aft[i]=a[j]+a[j+1]..+a[n] 然后for从1..n 看看p
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号