累加数的贡献 CodeForces - 1213D2】的更多相关文章

题意: 第一行输入n,k,表示有n个数,可以进行整除2操作,要是数组有k个相等的数,最少需要几次操作. 思路: 用一个数组记录每一个数出现的次数,如果一开始大于等于k,直接输出0,否则对这n个数进行从小到大排序,对每个数进行对2整除操作,数字出现的次数加一,并且用另一个数组记录操作次数,如果过程中有一个数出现k次,在用一个数组记录操作次数,最后求最小值. //计算每个数的贡献 #include<string.h> #include<stdio.h> #include<vect…
Additive number is a string whose digits can form additive sequence. A valid additive sequence should contain at least three numbers. Except for the first two numbers, each subsequent number in the sequence must be the sum of the preceding two. Given…
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - Leetcode 306. 累加数 - 题解 306.Additive Number 在线提交: https://leetcode-cn.com/problems/additive-number/ 累加数是一个字符串,组成它的数字可以形成累加序列. 一个有效的累加序列必须至少包含 3 个数.除了最开始…
Problem Description OO has got a array A of size n ,defined a function f(l,r) represent the number of i (l<=i<=r) , that there's no j(l<=j<=r,j<>i) satisfy ai mod aj=0,now OO want to know     Input There are multiple test cases. Please p…
Codeforces 题面传送门 & 洛谷题面传送门 大模拟(?)+阿巴细节题,模拟赛时刚了 3h 最后因为某个细节写挂 100->40/ll/ll(下次一定不能再挂分了啊 awa) 首先先考虑怎么判 \(-1\),显然如果区间 \([l,r]\) 中间的括号构不成合法的括号序列,答案显然是 \(-1\),其次如果 \(s_l\) 是加号或乘号那算式也不合法,\(s_r\) 也同理,这可以通过前缀和+ST 表在 \(\mathcal O(n\log n)-\mathcal O(1)\) 时间…
官方英文题解:http://codeforces.com/blog/entry/19237 Problem A: 题目大意: 给出内角和均为120°的六边形的六条边长(均为正整数),求最多能划分成多少个边长为1的正三角形. 题解: 把六边形补全变成一个正三角形,然后减去三个角的正三角形即可. Problem B: 题目大意: 给出长度相等的两个串AB,定义两个串相等 当且仅当  A=B  或者  当长度为偶数时,A[1...n/2]=B[1...n/2]  && A[n/2+1...n]=…
D. Vitaly and Cycle Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/problem/D Description After Vitaly was expelled from the university, he became interested in the graph theory. Vitaly especially liked the cycles of an…
原题链接:http://codeforces.com/contest/846/problem/F 题意:给一个数列,任意取区间[l, r],问区间内不同数字的个数的期望是多少. 思路: 对于第i个数a[i],它对一些区间都有贡献,这区间一定是包含了这个数,那么假如数列中不存在相同的数,这些区间就是[1, i], [1, i+1], [1, i+2]...[1, n], [2, i]...[2, n]...[i, n],每个区间贡献度为1,这个数的贡献即为(n-i+1)*i*2(由于l,r存在顺序…
题面传送门 sb 出题人不在题面里写 \(b_i=0\) 导致我挂成零蛋/fn/fn 首先考虑树链剖分将路径问题转化为序列上的问题,因此下文中简称"位置 \(i\)"表示 DFS 序为 \(i\) 的点,\(a_i,b_i\) 分别借指 DFS 为 \(i\) 的点的 \(a_i,b_i\).那么每次操作可以看作将一段区间上的位置清空并加上这段区间上所有位置的贡献.注意到这个清空形式单一,具体来说如果设 \(t_i\) 表示上一次位置 \(i\) 被清空的时刻,那么对于一个时刻 \(T…
n个数,用最少的次数来改变数字,使得1到m出现的次数的最小值最大.输出最小值和改变次数以及改变后的数组. 最小值最大一定是n/m,然后把可以改变的位置上的数变为需要的数. http://codeforces.com/problemset/problem/723/C Examples input 4 21 2 3 2 output 2 11 2 1 2 input 7 31 3 2 2 2 2 1 output 2 11 3 3 2 2 2 1 input 4 41000000000 100 7…
题目大意: 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)—sum(N) 的乘积. 要对10000007(非质数)取模 n<=10^15 分析: O(nlogn)暴力显然可以想出来.显然会tle 这是从1~n一个一个枚举并变成二进制算的,但是我们是否可以向普通的数位dp,一次性枚举许多个数呢? 二进制的n,大概最多50位.例如21=10101.它显然可以拆成二进制下的10000+100+1 那…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4772 题解:https://blog.csdn.net/Dream_Lolita/article/details/82314788 关于 \( g[p^t] \) 的值是多少,提供自己的见解: 首先,和 \( p^t \) 互质的数有 \( p^{t-1} \) 段,每段有 \( p-1 \) 个,模 p 等于 1 ~ p-1 . 那么和 \( p^t \) 做 gcd 的就是 \( p^…
题目链接 一道思维好题啊...感觉这种类型的题很检验基本功是否扎实(像我这样的就挂了). 题意:你有一棵\(n\)个点的树,每次随机选择一条边,将这条边的两个端点合并,并随机继承两个点标号中的一个,问对于每一个点来说,最终剩下的那个点标号等于它的标号的概率.\(n\leq 50\),用浮点数方式输出. 碰到浮点数输出的题就很怕卡精,不过这道题似乎不卡,担心卡精可以开\(long \ double\)(还要吐槽一句cf的\(C++11\)对\(long\ double\)的输出好像不是很资瓷...…
A. Find Divisible 签到. #include <bits/stdc++.h> using namespace std; int t, l, r; int main() { scanf("%d", &t); while (t--) { scanf("%d%d", &l, &r); printf(); } ; } B. Substring Removal 签到. #include <bits/stdc++.h&g…
#428 Div2 D 题意 给出一些数,现在要求找出一些数满足 \(i_1 < i_2 < i_3 < ... < i_k\) 以及 \(gcd(a_{i_1}, a_{i_2}, ..., a_{i_k}) > 1\) ,记这些数的贡献为 \(k * gcd(a_{i_1}, a_{i_2}, ..., a_{i_k}) \) . 求每种方案的贡献之和. 分析 不得不说和 hdu6053 很类似,其实还要简单不少. 考虑枚举 \(gcd\) ,我们可以找到因子有 \(gc…
题目大意 给定一个1到n的排列,然后随机选取一个区间,让这个区间内的数随机改变顺序,问这样的一次操作后,该排列的逆序数的期望是多少 首先,一个随机的长度为len的排列的逆序数是(len)*(len-1)/4,这是显然的,因为每种排列倒序一遍就会得到一个新序列,逆序数是len*(len-1)/2 - x(x为原排列的逆序数) 所以我们只需要把所有n*(n-1)/2的区间每种情况都随机化一遍再求逆序对,然后把这个值求和,就可以得到答案了 但是如果用朴素做法,那么复杂度是n^2的 考虑dp[x]表示以…
The Bakery 题意:将N个数分成K块, 每块的价值为不同数字的个数, 现在求总价值最大. 题解:dp[i][j] 表示 长度为j 且分成 i 块的价值总和. 那么 dp[i][j] = max(dp[i-1][x]+右边的数的贡献) ( 1<=x < j ). 如果每次都从左到右for过去一定会TLE, 所以我们用线段树来优化这个查询的过程, 并且用滚动数组消去第二维空间. 每次新扫到一个数T, 他就会在上一个T的位置+1 --- 现在这个T的位置产生数目加一的贡献. 然后每次扫完一次…
题意 给n个整数,求满足子集异或和为0的子集大小之和. 分析 将问题转化为求每个元素的贡献次数之和. 先对n个数求线性基,设线性基大小为r,即插入线性基的数字个数为r,可以分别计算线性基内数的贡献和线性基外的数的贡献 线性基外:共n-r个数,枚举每个数x,它可以和将线性基外剩余的n-r-1个数同时存在一个集合内,显然共有\(2^{n-r-1}\)个集合,所以x的贡献为\(2^{n-r-1}\). 线性基内:枚举每个数x,将剩余的n-1个数再求一次线性基,设为B,分两种情况: x不能被B异或出.那…
题意: 给你n条平行于坐标轴的线,问你能组成多少个矩形,坐标绝对值均小于5000 保证线之间不会重合或者退化 思路: 从下到上扫描每一条纵坐标为y的水平的线,然后扫描所有竖直的线并标记与它相交的线,保证上端至少多出1 并用树状数组维护它们 然后从y+1网上扫描纵坐标为yy的水平的线,查询y到yy中同时与他们相交的竖直的线的条数算贡献即可 每查询完一个yy后,要在树状数组内删除上端点为yy的竖直的线,因为以后的yy与它不会再相交了 代码: 几乎是照着官方题解来的.. #include<iostre…
好久没更博客了,随便水一篇 E. Range Deleting 题意 给你一个长度为 \(n\) 的序列 \(a_1,a_2,\dots a_n\) ,定义 \(f(l,r)\) 为删除 \(l\le a_i\le r\) 元素后的序列.求所有 \(f(l,r)\) 单调不降序列的数量. \(n,a_i\le 10^6\) 题解 简单题,但还是调了一年(见代码注释). 考虑删除后的区间,一定是一段前缀并上一段后缀.首先找到一段合法的极长后缀,然后枚举前缀,在保证前缀合法的情况下双指针统计有多少个…
现场 1 小时 44 分钟过掉此题,祭之 大力分类讨论. 如果 \(|s|=1\),那么显然所有位置都只能填上这个字符,因为你只能这么填. scanf("%d",&n);mmp['+']=0;mmp['-']=1;mmp['*']=2; for(int i=1;i<=n;i++) scanf("%d",&a[i]); char opt[4];scanf("%s",opt+1);int len=strlen(opt+1); i…
Dylans loves sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5273 Description Dylans得到了N个数a[1]...a[N].有Q个问题,每个问题形如(L,R)他需要求出L−R这些数中的逆序对个数.更加正式地,他需要求出二元组(x,y)的个数,使得L≤x,y≤R且x<y且a[x]>a[y] Input 第一行有两个数N和Q…
题目描述 小 F 是一个能鸽善鹉的同学,他经常把事情拖到最后一天才去做,导致他的某些日子总是非常匆忙. 比如,时间回溯到了 2018 年 11 月 3 日.小 F 望着自己的任务清单: 看 iG 夺冠: 补月赛题的锅. 小 F 虽然经常咕咕咕,但他完成任务也是很厉害的,他一次性可以完成剩余任务的任一非空子集.比如,他现在可以选择以下几种中的一种: 看 iG 夺冠: 补月赛题的锅: 一边看 iG 夺冠的直播,一边补锅. 当然,比赛实在是太精彩了,所以小 F 就去看比赛了. 不过,当金雨从天而降.I…
洛谷上有2道相同的题目(基本是完全相同的,输入输出格式略有不同) ---题面--- ---题面--- CDQ分治 首先由于删除是很不好处理的,所以我们把删除改为插入,然后输出的时候倒着输出即可 首先这是一个类似于3维偏序的问题: 那么为了理解我的算法,这里先放出我对三维偏序的理解. 三维偏序实质上是在所有二维偏序中所有符合条件的数对中进一步找出符合另一个限制条件的数对. 这里找所有二维偏序中所有符合条件的数对可以用归并排序(就是相当于归并排序求逆序对) 那么树状数组求逆序对是个怎么回事呢? 相当…
题面 luogu 题解 最小费用最大流 先假设剩下\(m\)场比赛,双方全输. 考虑\(i\)赢一局的贡献 \(C_i*(a_i+1)^2+D_i*(b_i-1)^2-C_i*a_i^2-D_i*b_i^2\) \(=C _i+2*a_i*C_i+D_i-2*b_i*D_i\) 建\(m\)个点限制每场比赛只有一个人赢,自\(S\)连一条\((1, 0)\)的边 然后从这\(m\)的点连向和比赛有关的两个点一条\((1, 0)\)的边 考虑关于\(t\)的边 因为\(a_i\)和\(b_i\)会…
还不会这题的多项式求逆的算法. 发现每一项都是一个卷积的形式,那么我们可以使用$NTT$来加速,直接做是$O(n^2logn)$的,我们考虑如何加速转移. 可以采用$cdq$分治的思想,对于区间$[l, r]$中的数,先计算出$[l, mid]$中的数对$[mid + 1, r]$中的数的贡献,然后直接累加到右边去. 容易发现,这样子每一次需要用向量$[l,l + 1, l +  2, \dots, mid]$卷上$g$中$[1, 2, \dots, r - l]$. 时间复杂度$O(nlog^…
传送门 分析 首先我们知道如果在一棵树上加一条边一定会构成一个环,而删掉环上任意一条边都不改变连通性.我们把这一性质扩展到这个题上不难发现如果一条树边不在任意一个新边构成的环里则删掉这条边之后可以删掉任意一条新边,对方案数的贡献是m.而如果它只在一个新边构成的环中则要删除这条边和对应的新边,对方案数的贡献是1.而如果它在至少两个新边构成的环中则无论如何也不能将图分成两半,所以对方案数的贡献为0.在知道这些之后我们考虑如何维护一条边在几个由新边构成的环中,那我们自然考虑到了LCA,对于每一条新边将…
用家里的电脑来编程,各种不算 一开始15分钟刷掉T1和T2,然后就永远地卡在了T3... 后来看题解,傻了眼... 它强调的“只有一个答案”我还以为这是在提示我二分答案,于是我一直往权值线段树那个方向想去 哪知它还代表一个意思:路径xor值即是答案... 好吧我脑袋秀逗了.. 代码: T1 #include <cstdio> #include <cstring> #include <cctype> #include <algorithm> #define r…
链接:https://www.nowcoder.com/acm/contest/93/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 这个问题很简单,就是问你n的阶乘末尾有几个0? 输入描述: 输入第一行一个整数T(1<=T<=100),代表测试组数接下来T行,每行一个数n(1<=n<=10^9) 输出描述: 对于每组测试数据,输出对应答案 输入例子: 5…
觉得有必要在NOI之前开一篇学习内容记录. 至于为什么要取这个标题呢?也许并没有什么特殊的借口吧. 5.23 在LOJ上搬了三道原题给大家考了考,然后大家都在考试就我一个人在划水. SSerxhs 和 Serval 的退役纪念赛 A.幼儿园唱歌题 给一个串\(S\),\(q\)次询问满足是串\(S[l_1,r_1]\)的前缀且是串\(S[l_2,r_2]\)的后缀的最长回文串长度.\(|S|,q\le2\times10^5\) 把串\(S\)反过来接在后面建回文树,然后就是求两个点的公共祖先中深…