题解
MidJuly~
这个作者很懒,什么都没留下…
展开
-
洛谷 —— P1045 麦森数
题目P1045 麦森数分析这题比较简单只用到了高精乘法用快速幂的方法但里面的2次幂用高精度, 乘积和也用高精度就行了#include<bits/stdc++.h>using namespace std;int save[1001], f[1001], res[1001];void mul_1() { memset(save, 0, sizeof(save)); for (int i = 1; i <= 500; i++) { for (int j =原创 2020-10-29 19:54:16 · 116 阅读 · 0 评论 -
P1249 最大乘积 ——————洛谷
题目P1249 最大乘积分析一道高精+贪心一个数拆的越多乘积会越大,但不要拆出1,这样浪费了所以就2, 3, 4, 5, ~但也不能连续的一直拆, 因为可能不够拆了所以就可以跳出那个数 把那个数拆给前面的大概就这样上代码#include<bits/stdc++.h>using namespace std;const int N = 500;string f(int x) { char c[10], temp; int i = 0, j; do {原创 2020-10-29 18:45:34 · 516 阅读 · 0 评论 -
区间dp P1063 能量项链
题目解释看代码吧#include<bits/stdc++.h>using namespace std;int f[505][505];int n, a[202];int mian () { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; a[i+n] = a[i]; //环形 } for (int i = 2; i <= n+1; i++) { //原创 2020-10-16 20:14:15 · 59 阅读 · 0 评论 -
洛谷 P1833 樱花——二进制拆分
题目樱花 —— 要去湖北看一次樱花题目大意:在一段时间内看能欣赏到多少美分析:是个混合背包问题,因为存在是10背包和是完全背包和多重背包现在可以用二进制拆分把完全背包拆分成01背包,让次数p拆分成可以组成小于等于p的任意值。后面就是01背包了#include<bits/stdc++.h>using namespace std;#define rep(i, a, b) for (int i = a; i <= b; i++)int hs, ms, he, m原创 2020-10-16 18:35:03 · 176 阅读 · 0 评论 -
P1103 书本整理
题目P1103 书本整理分析去掉几本书得到宽度差最小 == 保留就本身得到宽度差最小所以留下 m = n - kdp[i][l] 到第i本书截止,一共l本书i为1dp值肯定为0,一本书就没有宽度差了所以i和长度l从2开始代码#include<bits/stdc++.h>using namespace std;#define rep(i, a, b) for (int i = (a); i <= (b); i++) int n, k, dp[510][510], m原创 2020-10-15 21:07:51 · 70 阅读 · 0 评论 -
洛谷 P1564 膜拜
题目P1564 膜拜分析求如何分组,得到的机房数最少。有一个小技巧,把题目的2改为-1,或者其他的数值也可以,然后就可以用前缀和来判断了为1 :sum[i] = sum[i-1]+1;为2 :sum[i] = sum[i-1-1;当一段区间的和的绝对值等于区间长度 或者 小于m 都满足条件小二!上代码#include<bits/stdc++.h>using namespace std;#define re(i, a, b) for (int i = (a); i <原创 2020-10-15 20:20:00 · 162 阅读 · 0 评论 -
P5662 纪念品
题目P5662 纪念品分析一道背包题把拥有的钱看为容量,把纪念品今天的价格看做消耗,把明日的价格视为价值f[j] = max(f[j], f[j-p[i][j]+p[i+1][j]-p[i][j)状态转移就出来了#include<bits/stdc++.h>using namespace std;int n, t, m;int a[105][105], f[10005];//f盈利 int main() { cin >> t >> n >原创 2020-10-14 16:32:43 · 81 阅读 · 0 评论 -
P1077 摆花
题目P1077 摆花P1077 摆花题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过a_i 盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案。分析题目大意是有n种花,各有a[i]盆,希望摆m长度的花在外面,问有多少种方法。先摆x盆,摆k长度,这就存在着状态, 所以可以用动态规划来解。#in原创 2020-10-13 20:22:34 · 81 阅读 · 0 评论 -
P1470 [USACO2.3]最长前缀 Longest Prefix
题目P1470 [USACO2.3]最长前缀 Longest Prefix题目描述在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的。生物学家对于把长的序列分解成较短的序列(即元素)很感兴趣。如果一个集合 P 中的元素可以串起来(元素可以重复使用)组成一个序列 ss ,那么我们认为序列 ss 可以分解为 P 中的元素。元素不一定要全部出现(如下例中 BBC 就没有出现)。举个例子,序列 ABABACABAAB 可以分解为下面集合中的元素:{A,AB,BA,CA,BBC}序列 s 的前面原创 2020-10-12 19:08:45 · 254 阅读 · 0 评论 -
P1832 A+B Problem(再升级)
题目a+b??? 这还不简单(虽然是很简单 )P1832 A+B Problem(再升级)题目要求是给定一个正整数n,求将其分解成若干个素数之和的方案总数。输入格式一行:一个正整数n输出格式一行:一个整数表示方案总数分析这题一开始以为是递推,其实也包括了递推,不过重点还是完全背包吧一个背包==一个数的大小质数随便取,就相当于物品的个数无限首先就求出质数的数组来其次递推就OK了#include<bits/stdc++.h>using namespace std;c原创 2020-10-11 16:39:38 · 222 阅读 · 0 评论 -
P1902 刺杀大使
题目二分二分二分它又来了P1902 刺杀大使题目描述某组织正在策划一起对某大使的刺杀行动。他们来到了使馆,准备完成此次刺杀,要进入使馆首先必须通过使馆前的防御迷阵。迷阵由 n×m 个相同的小房间组成,每个房间与相邻四个房间之间有门可通行。在第 n 行的 m 个房间里有 m 个机关,这些机关必须全部打开才可以进入大使馆。而第 1 行的 m 个房间有 m 扇向外打开的门,是迷阵的入口。除了第 1 行和第 n 行的房间外,每个房间都被使馆的安保人员安装了激光杀伤装置,将会对进入房间的人造成一定的伤害。第原创 2020-10-10 20:35:35 · 631 阅读 · 0 评论 -
P2678 跳石头
今天又来一道简单的二分P2678 跳石头题目描述这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 NN 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 MM 块岩石(不能移走起点和终点的岩石)。输入格式第一行包含三个整数 L,N,ML原创 2020-10-09 17:15:03 · 106 阅读 · 0 评论 -
P1024 一元三次方程求解
今天来写一篇入门级的二分题目P1024 一元三次方程求解在高中的时候就有学过这个方法,二分法。题目也给了提示,相乘小于0的区间有解,或者直接等于0。相乘小于0就可以用二分不断的缩小区间,求到最精确的一个数。从而得到答案。#include<bits/stdc++.h>using namespace std;const int N = 1001;typedef long long LL;#define db doubleint n, ans;double a, b, c, d原创 2020-10-09 12:40:29 · 91 阅读 · 0 评论 -
P4552 [Poetize6] IncDec Sequence
题目P4552 [Poetize6] IncDec Sequence题目描述给定一个长度为 n的数列 a1,a2,…,an,每次可以选择一个区间[l,r],使这个区间内的数都加 1 或者都减 1。请问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。输入格式第一行一个正整数 n接下来 n 行,每行一个整数,第 i+1行的整数表示 a_i 。输出格式第一行输出最少操作次数第二行输出最终能得到多少种结果分析昨天写了个前缀和,今天来道差分。原创 2020-10-08 11:10:14 · 103 阅读 · 0 评论 -
P4995 跳跳!
题目P4995 跳跳!蛮有意思的一题题目描述你是一只小跳蛙,你特别擅长在各种地方跳来跳去。这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 i 块的石头高度为 h_i ,地面的高度是 h_0 = 0你估计着,从第 ii 块石头跳到第 jj 块石头上耗费的体力值为 (h_i ) ^ 2(hi−h j ) 2,从地面跳到第 ii 块石头耗费的体力值是 (h_i) ^ 2(h i) 2。为了给小 F 展现你超级跳的本领,你决定跳到每个石头上各一次,并最终停在任意一块石头原创 2020-10-07 19:49:31 · 284 阅读 · 0 评论 -
P1387 最大正方形
题目P1387 最大正方形题目描述在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长。输入格式输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m个数字,用空格隔开,0或1.输出格式一个整数,最大正方形的边长分析这是一道前缀和的题目,解题思路是,可以枚举正方形的边长,看是否有这样的正方形存在, 存在就替换,直到找到最大的一个#include<bits/stdc++.h>using namespace std;typ原创 2020-10-07 19:43:59 · 147 阅读 · 0 评论 -
P1957 口算练习题
题目P1957 口算练习题题目描述王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如5+8的算式最好只要输入5和8,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=13 以及该算式的总长度6。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。输入格式第一行为数值i接着的i行为需要输入的算式,每行可能有三个数据原创 2020-10-06 16:53:45 · 1053 阅读 · 0 评论 -
P1048 采药
题目P1048 采药题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?输入格式第一行有 2个整数 T(1≤T≤1000)和 M(1≤原创 2020-10-05 20:07:34 · 161 阅读 · 0 评论 -
P1708 天然气井
题目P1708 天然气井题目描述Mary试图控制成都的天然气市场。专家已经标示出了最好的天然气井和中转站在成都的地图。现在需要将中转站和天然气井连接起来。每个中转站必须被连接到正好一个钻油井,反之亦然。Mary特别指名,建设的天然气管道必须从某个天然气井开始,向南或者向东建设。Mary想知道怎么连接每个天然气井和中转站,使得需要的天然气管道的总长度最小。输入格式输入文件的第一行为一个正整数n(2<=n<=50000),表示天然气井的数量(中转站的数量与之相等)。接下来n行,每行两个原创 2020-10-04 19:07:34 · 181 阅读 · 0 评论 -
洛谷 P1182 数列分段 Section II
题目P1182 数列分段题目描述对于给定的一个长度为N的正整数数列 1∼N,现要将其分成 MM(M≤N)段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列4 2 4 5 1 要分成 3 段。将其如下分段:[4\ 2][4\ 5][1]第一段和为 6,第 2 段和为 9,第 3 段和为 1,和最大值为 9。将其如下分段:[4][2\ 4][5\ 1]第一段和为 4,第 2 段和为 6,第 3 段和为 6,和最大值为 6。并且无论如何分段,最大值不会小于 6。所以可以原创 2020-10-01 21:10:59 · 255 阅读 · 0 评论 -
洛谷 p1160题解
题目洛谷 P1160 队列安排题目描述一个学校里老师要将班上NN个同学排成一列,同学被编号为1∼N,他采取如下的方法:先将11号同学安排进队列,这时队列中只有他一个人;2−N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1∼(i−1)中某位同学(即之前已经入列的同学)的左边或右边;从队列中去掉M(M<N)个同学,其他同学位置顺序不变。在所有同学按照上述方法队列排列完毕后,老师想知道从左到右所有同学的编号。输入格式第1行为一个正整数N,表示了有N个同学。第原创 2020-10-01 19:52:20 · 1064 阅读 · 0 评论 -
P1011 车站
P1011 车站题目描述火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上、下车,但上、下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人。从第3站起(包括第3站)上、下车的人数有一定规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第n−1站),都满足此规律。现给出的条件是:共有N个车站,...原创 2019-11-27 00:09:38 · 301 阅读 · 0 评论 -
新汉诺塔问题
新汉诺塔问题新汉诺塔问题题意:给出碟子的数量,然后给出一开始碟子的位置,和最终碟子的位置,问最少移动几次可以完成,要求和普通汉诺塔一样,大的不能叠在小的上面;分析新汉诺塔问题:首先找最大不在目标柱子上的盘子K,因为如果最大的盘子在目标柱子上它不需要移动,也不碍事。因此问题就成了把K移动到目标柱子,把1到(k-1)移动到中转柱子,所以假设K从A移动到B,A只有K,B是空的,C上面是K-...原创 2019-11-18 11:03:43 · 1030 阅读 · 0 评论