[洛谷P4999]烦人的数学作业】的更多相关文章

题目大意:定义$f(x)$表示$x$每一个数位(十进制)的数之和,求$\sum\limits_{i=l}^rf(i)$,多组询问. 题解:数位$DP$,可以求出每个数字的出现个数,再乘上每个数字的大小即可. 卡点:无(结构体记得写构造函数清空) C++ Code: #include <algorithm> #include <cstdio> #define maxn 20 const int mod = 1e9 + 7; inline void reduce(int &x)…
P2602 [ZJOI2010]数字计数 题解 DFS 恶心的数位DP 对于这道题,我们可以一个数字一个数字的求 也就是分别统计区间 [ L , R ] 内部数字 i 出现的次数 (0<=i<=9) 也就是DFS只需要记录 : 当前填到第几位 pos k一共出现多少次 sum 目标数字 k 是否顶上界 limit 是否全是前导零 qdl dp[pos][sum]: >不顶上界,没有前导零, 当前填到第pos位,目标数字一共出现sum次的时候(前pos位中一共有sum个目标数字) 对答案产…
写在前面 这两天信息量有点大,需要好好消化一下,呼呼 \(f[i][j]\) 的转移式还是好理解的,但是对于其实际意义课上有点糊 求 \(ans_{1, x}\) 是感觉手动把数拆开看会好理解一点?? 同级某巨佬wxf会用记忆化搜索做,我不会,太菜了 luoguP4999 烦人的数学作业 简述题意: 给定区间 \([ L , R ]\) ,求 \(L\) 到 \(R\) 区间内每个数字和 $ (1 \le L \le R \le 10^{18}) $ ,共 \(T\) 组数据 \((1 \le…
数位 dp. 设 \(dp_{q,i}\)(\(i\in\{0,1,2,3,4,5,6,7,8,9\}\))为 \(1\sim q\) 中 \(i\) 出现的次数,\(1\sim q\) 的数字和显然就是 \(dp_{q,0}\times 0+dp_{q,1}\times 1+\cdots+dp_{q,i}\times i\cdots+dp_{q,9}\times 9\). 所以我们只需要求出 \(1\sim q\) 中 \(i\) 出现的次数就能解决这个问题了. 这个问题看起来很好解决,但是注…
题目链接: P4999 烦人的数学作业 题目大意 详见题目 solution 有一个显而易见的结论 发现 \(ans_{l, r} = ans_{1. r} - ans_{1, l - 1}\) 那只需要处理 \(1 - r\) 的即可 设 \(f_{i, j}\) 表示长度为 \(i\) 最高位为 \(j\) 的和 \(f_{i, j} = \sum\limits_{k = 0}^{k \leqslant 9} f_{i - 1, k} + j * 10^{i - 1}\) 对于\(ans_{…
###洛谷 P4999 题目链接 ### 题目大意:给你一个区间,求这段区间中所有数的,数位上的,数字之和. 分析: 这题与 洛谷 P2602 相似,稍微改一下就可以了. 求出 0 ~ 9 的个数,然后分别乘以 0 ~ 9 ,取模相加即可.要注意的是,在统计之和时,需要 加 mod 以保正答案正确,不然会 WA 两个点. 代码如下: #include<iostream> #include<algorithm> #include<string.h> using names…
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 题面 题目链接 洛谷 P1858 多人背包 题目描述 求01背包前k优解的价值和 输入输出格式 输入格式 第一行三个数 $ K,V,N $ 接下来每行两个数,表示体积和价值 输出格式 前 $ k $ 优解的价值和 输入输出样例 输入样例 2 10 5 3 12 7 20 2 4 5 6 1 1 输出样例 57 说明 对于100%的数据, $ K \leq 50,V \leq…
洛谷题目链接:多人背包 题目描述 求01背包前k优解的价值和 输入输出格式 输入格式: 第一行三个数K.V.N 接下来每行两个数,表示体积和价值 输出格式: 前k优解的价值和 输入输出样例 输入样例#1: 2 10 5 3 12 7 20 2 4 5 6 1 1 输出样例#1: 57 说明 对于100%的数据, \(K\le 50,V\le 5000,N\le 200\) 题意已经很清楚了,就不多赘述了. 题解: 首先考虑一下如何做01背包.显然有\[f[j]=max(f[j], f[j-cos…
P2083 找人 题目背景 无 题目描述 小明要到他的同学家玩,可他只知道他住在某一单元,却不知住在哪个房间.那个单元有N层(1,2……N),每层有M(1,2……M)个房间. 小明会从第一层的某个房间开始找,他找的方式也很特别,每次到了一个房间,如果不是他的同学,他就会询问这人, 然后他就会去那人告诉他的房间号,如果还不是,他就会继续按这个方法找下去,直到找到.当然,他也有可能找不到同学.他的体力也是有限的,他每爬一层楼梯就会消耗V体力值.你的任务就是求找到同学耗费的最少体力值,如果找不到,就输…
P1858 多人背包 题目描述 求01背包前k优解的价值和 输入输出格式 输入格式: 第一行三个数\(K\).\(V\).\(N\) 接下来每行两个数,表示体积和价值 输出格式: 前k优解的价值和 说明 对于100%的数据,$ K\le 50,V\le 5000,N\le 200$ 算是积累见识吧,有些类型的题不见过一面估计比较难想 方程为\(dp[i][j][k]\)代表前\(i\)中在装了\(j\)时第\(k\)优值 如何转移呢 对\(dp[i][j]\)来说,由\(dp[i-1][j]\)…
调了一下午QAQ-让我对数学期望的理解又提升了一个层次. 首先,我们发现 v<=300v<=300v<=300 , 这样我们就可以用 FloydFloydFloyd 算法来 O(n3)O(n^3)O(n3) 处理出任意两点间的最短路. 对于题目,我们不难列出状态dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0/1]. 这个状态代表:走到第iii个点,用了jjj次机会,当前使用了(0表示未使用,1表示使用)机会的最小期望值. 首先,我们考虑dp[i][j][0]dp…
P2083 找人 题目背景 无 题目描述 小明要到他的同学家玩,可他只知道他住在某一单元,却不知住在哪个房间.那个单元有N层(1,2……N),每层有M(1,2……M)个房间. 小明会从第一层的某个房间开始找,他找的方式也很特别,每次到了一个房间,如果不是他的同学,他就会询问这人, 然后他就会去那人告诉他的房间号,如果还不是,他就会继续按这个方法找下去,直到找到.当然,他也有可能找不到同学.他的体力也是有限的,他每爬一层楼梯就会消耗V体力值.你的任务就是求找到同学耗费的最少体力值,如果找不到,就输…
求01背包前k优解的价值和 输入输出格式 Input/output 输入格式:第一行三个数K.V.N(k<=50,v<=5000,n<=200)接下来每行两个数,表示体积和价值输出格式:前k优解的价值和 解题思路: 这个题刚开始没做出来只能说是因为我没有认真地去看那个叫背包九讲的东西(这里附网址 http://wenku.baidu.com/view/519124da5022aaea998f0f22.html) 背包九讲中第九讲明确给出求次小值及第k小值的办法,做两个队列,b1,b2,用…
题目描述 https://www.luogu.org/problemnew/show/P4553 题解 思路比较显然,把图建出来,一个国家拆成两个点,中间设置上下界,然后跑费用流. 我把源那边的流量也设置了上下界,但是题解没有,为什么我按照题解的建图方法会WA? 代码 #include<iostream> #include<cstdio> #include<cstring> #include<queue> #define N 209 #define inf…
题面 设$dp[i][j]$表示容量为$i$时的第$j$优解,因为是优解,肯定$dp[i][j]$是随着$j$增大不断递减的,这样的话对于一个新加进来的物品,它只可能从两个容量的转移的前$k$优解中转移过来,所以每次用两个指针扫一下转移过来就好了. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,K=; int vol[N],val[N],tmp[K],dp[N][…
,,,本来自以为,我dp学得还挺好的 然后今天一考发现都不会啊QAQ 连最基础的知识点都不清楚啊QAQ 所以就来写个题解嘛! 先放下板子题 其实我jio得,这题只要大概了解方法就不是很难鸭,,,毕竟是基础算法,还是比较好理解的QAQ 大概说下QwQ 就是开f[i],它是个一个长度为k的数组,表示的是重量为i时的前k优解(物品那一维显然可以滚掉不说 然后转移也很显然,就是f[i+val[j]]=max(f[i+val[j]],f[i]) 注意一下就是这里的取max是指从这k*2个数中选前k大的,彼…
题意 题目链接 Sol 本来是一道好的公式题. 然后输出只要保留两位小数?? 直接上不就赢了嘛.. #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 1e6; const double eps = 1e-3; inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c > '…
题目链接 直接暴力搞\(O(n^2)\)显然是布星滴. 试想,若是一维,最远距离就是最大值减最小值. 现在推广到二维,因为有绝对值的存在,所以有四种情况 \((x1+y1) - (x2+y2), (x1-y1) - (x2-y2), (-x1+y1) - (-x2+y2), (-x1-y1) - (-x2-y2)\) 取最大值即\(1,2\)的曼哈顿距离,于是,枚举\(x,y\)的正负形,各两种,共4种,分别求出那么正负形状态下的最大值和最小值,相减,更新答案. 枚举状态可以利用二进制. #in…
题目 Alice家里有一盏很大的吊灯.所谓吊灯,就是由很多个灯泡组成.只有一个灯泡是挂在天花板上的,剩下的灯泡都是挂在其他的灯泡上的.也就是说,整个吊灯实际上类似于[b]一棵树[/b].其中编号为 1 的灯泡是挂在天花板上的,剩下的灯泡都是挂在编号小于自己的灯泡上的. 现在,Alice想要办一场派对,她想改造一下这盏吊灯,将灯泡换成不同的颜色.她希望相同颜色的灯泡都是相连的,并且每一种颜色的灯泡个数都是相同的. Alice希望你能告诉她,总共有哪些方案呢? Alice是一个贪心的孩子,如果她发现…
P1372 又是毕业季I 题意:在1-n中找到k个数,使得这k个数的最大公因数最大: 思路,题解: 因为两个数成倍数关系时,它们的最大公因数是两数中的较小数,也就是相对来说最大公因数较大 返回题目,这k个数其实就是:x*1,x*2......x*k,及x的1~k倍,但必须保证x*k小于n,在上述条件下,能知道,符合条件的最大的x就是答案,为了找出最大的 x,必须使x*k尽量接近n,因为c++的整数除法有自动取整的功能,所以在所有情况下,n/k都是最终答案:(膜 #include <cstdio>…
分析 我们推不出n=3的图,开始猜测,答案在n>2时无解.(<-正解) AC代码 #include <bits/stdc++.h> using namespace std; inline int read() { int w=0,x=0;char ch=0; while (!isdigit(ch)) {w|=ch=='-';ch=getchar();} while (isdigit(ch)) {x=(x<<1)+(x<<3)+(ch^48);ch=getch…
题目: 洛谷1654 分析: 本人数学菜得要命,这题看了一整天才看明白-- 先说说什么是"期望".不太严谨地说,若离散型随机变量(可以看作"事件")\(X\)取值为\(x_i\)的概率为\(p_i\),则它的期望\(E(X)\)为: \[E(X)=\sum_i x_ip_i\] (下面大段胡扯可以跳过) 举个例子:Monster of the Mouth设计了一款游戏,从某知名OIer兔崽子2018年9月21日-22日在BZOJ上的提交记录中随机抽一个,如果是AC则…
题目传送门 数学作业 题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N和 M,要求计算 Concatenate (1 .. N)Mod M 的值,其中 Concatenate(1..N) 是将所有正整数1,2,…,N 顺序连接起来得到的数.例如,N=13 , Concatenate (1 .. N)=12345678910111213 .小C 想了大半天终于意识到这是一道不可能手算出来的题目,于是他只好向你求助,希望你能编写一个程序帮他解决这个问题.…
点此看题面 大致题意: 让你在一张\(N*M\)的棋盘上摆放炮,使其无法互相攻击,问有多少种摆法. 辟谣 听某大佬说这是一道状压\(DP\)题,于是兴冲冲地去做,看完数据范围彻底懵了:\(N≤100\)!这么大的数据范围压死你! 好吧,其实这就是一道普通的\(DP\),与状压没有任何关系. 其实状压可以用来骗分,能得50. 考虑性质 对于这种题目,第一步肯定是考虑有没有什么比较重要的性质. 考虑炮的攻击方法,应该不难发现,每一行.每一列放的炮的数量不能超过\(2\). 保证每行不超过\(2\),…
洛谷试炼场-简单数学问题 A--P1088 火星人 Description 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答. 火星人用一种非常简单的方式来表示数字――掰手指.火星人只有一只手,但这只手上有成千上万的手指,这些手指排成一列,分别编号为1,2,…
传送门 洛谷1306传送门 ----------------------------------------------------------------------------------------------------------------------------------------------------- 内网题题面 题目描述 烦神看上了一个妹子,烦神想找她约会,可是妹子出了一道数学题来考验烦神,烦神只有做对了,妹子才会跟他去约会,题目是这样的: 给出两个正整数A和B,要求求…
To 洛谷.1774 最接近神的人 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的遗产了.但现在的问题是如何打开这扇门…… 仔细研究后,他发现门上的图案大概是说:古代人认为只有智者才是最容易接近神明的.而最聪明的人往往通过一种仪式选拔出来.仪式大概是指,即将隐退的智者为他的候选人写下一串无序的数字,并让他们进行一种操作,即交换序列中相邻的两个元…
洛谷试炼场-简单数学问题 P1403 [AHOI2005]约数研究 Description 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机"Samuel II"的长时间运算成为了可能.由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用"Samuel II"进行数学研究. 小联最近在研究和约数有关的问题,他统计每个正数N的约数的个数,并以f(N)来表示.例如12的约数有1.2.3.4.6.12.因此f(12)=6.下表给出了一些f…
洛谷试炼场-简单数学问题 B--P1045 麦森数 Description 形如2^P−1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果PP是个素数,2^P-1 不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377P=3021377,它有909526位.麦森数有许多重要应用,它与完全数密切相关. 任务:从文件中输入PP(1000<P<31000001000<P<3100000),计算2^P-1 的位数和最后500位数字(用十进制高…
[NOI导刊2010提高&洛谷P1774]最接近神的人 Description 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜想里面应该就有王室的遗产了.但现在的问题是如何打开这扇门-- 仔细研究后,他发现门上的图案大概是说:古代人认为只有智者才是最容易接近神明的.而最聪明的人往往通过一种仪式选拔出来.仪式大概是指,即将隐退的智者为他的候选人写下一串无序的…