
算法
代维7
这个作者很懒,什么都没留下…
展开
-
P1716 find that number out
题目描述crush 给你一个素数kk,你需要帮他找到最小的正整数nn,满足k∣n!.b∣a表示aa能被bb整除,即amodb=0n!表示n的阶乘,即n×(n−1)×(n−2)×...×2×1输入描述第一行一个正整数k,数据保证k为素数.输出描述第一行一个正整数n,表示答案.样例输入Copy to Clipboard5 样例输出Copy to Clipboard5 /* * @Description: To iterate...原创 2022-05-28 17:43:15 · 180 阅读 · 0 评论 -
2022蓝桥杯——砍竹子
/* * @Description: To iterate is human, to recurse divine. * @Autor: Recursion * @Date: 2022-05-27 18:05:28 * @LastEditTime: 2022-05-27 21:23:08 */#include <bits/stdc++.h>#define LL long long using namespace std;const int maxn = 1e6...原创 2022-05-27 21:28:52 · 237 阅读 · 1 评论 -
统计子矩阵
/* * @Description: To iterate is human, to recurse divine. * @Autor: Recursion * @Date: 2022-05-25 18:21:03 * @LastEditTime: 2022-05-25 20:53:11 */#include <bits/stdc++.h>#define LL long long using namespace std;const int maxn = 1e6...原创 2022-05-25 20:58:23 · 114 阅读 · 0 评论 -
AcWing 797. 差分
输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含n个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,−1000≤c≤1000,−1000≤整数序列中元素的值≤1000输入样例:6 31 2 2 1 2 1原创 2022-05-25 12:18:32 · 242 阅读 · 0 评论 -
前缀和例题
输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。输出格式共m行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中元素的值≤1000输入样例:5 32 1 3 6 41 21 32 4输出样例:3610/* *原创 2022-05-25 12:09:56 · 252 阅读 · 0 评论 -
李白打酒加强版
/* * @Description: To iterate is human, to recurse divine. * @Autor: Recursion * @Date: 2022-05-22 22:00:52 * @LastEditTime: 2022-05-22 22:30:54 */#include <bits/stdc++.h>#define LL long long using namespace std;const int maxn = 1e...原创 2022-05-22 22:33:48 · 234 阅读 · 0 评论 -
P1747 求解递增序列中与x最接近元素问题
题目描述在一个非降序列序列中与给定值 x 最接近的元素输入描述第一行包含一个整数 n,为非降序列长度 (1<=n<=100 000)第 2 行包含 n 个整数,为非降序列的各个元素, 所有元素的大小均在 0~1 000 000 000 范围内。第 3 行包含一个整数 m, 为要询问的给定值的个数 (1<=m<=10 000)。接下来 m 行,每行一个整数, 为要询问最接近元素的给定值,所有给定值的大小均在 0~1 000 000 000 范围内。输出描述输原创 2022-04-13 11:12:13 · 1140 阅读 · 0 评论 -
石子合并(区间dp)
设有 N 堆石子排成一排,其编号为 1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为 1 3 5 2, 我们可以先合并 1、2 堆,代价为 4,得到 4 5 2, 又合并 1,2 堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为4+9+11=24;如果第二步是先..原创 2022-04-04 23:46:00 · 155 阅读 · 0 评论 -
多重背包问题 I
有 N 种物品和一个容量是 V 的背包。第 ii 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第i 种物品的体积、价值和数量。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤1000<vi,wi,si≤100原创 2022-02-27 16:26:21 · 84 阅读 · 0 评论 -
P1616 疯狂的采药
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?输入格式第一行有 2 个整数 T(1≤T≤1000)和 M(1≤M≤100),原创 2022-02-26 12:17:30 · 122 阅读 · 0 评论 -
Dijkstra求最短路 I
给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到nn号点,则输出−1。输入格式第一行包含整数n和m。接下来mm行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出−1。数据范围11≤n≤500,1≤m≤105,图中涉及边长均不超过10000...原创 2022-02-20 17:02:21 · 604 阅读 · 0 评论 -
辗转相除法和__gcd库
#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ if(b==0) return a; else gcd(b,a%b);}int main(){ int x,y; while(cin>>x>>y) { cout<<__gcd(x,y)<<endl; .原创 2022-02-19 21:41:11 · 207 阅读 · 0 评论 -
P1090 [NOIP2004 提高组] 合并果子
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1n−1次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为11,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多...原创 2022-01-31 23:47:32 · 125 阅读 · 0 评论 -
P1177: 三角形
https://blog.csdn.net/Recursions/article/details/117737536和好几个月前题目类似稍微变动easy题目描述73 88 1 02 7 4 44 5 2 6 5(图一)图一表示一个5行的数字三角形。假设给定一个n行数字三角形,计算出从三角形顶至底的一条路径,使该路径经过的数字总和最大。每一步只能由当前位置向左下或右下。输入你的程序要能接受标准输入。第一行包含一个整数T,表示总的测试次数。对于每一种情...原创 2021-10-15 13:25:15 · 210 阅读 · 0 评论 -
P1016 旅行家的预算
题目描述一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站ii离出发点的距离Di、每升汽油价格Pi(i=1,2,…,Ni=1,2,…,N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。输入格式第一行,D1,C,D2,P,N。接下来有N行。第i+1行,两个数字,油站i离出发点的距离原创 2021-10-15 10:54:15 · 231 阅读 · 0 评论 -
1523打水问题
题目描述N个人要打水,有M个水龙头,第i个人打水所需时间为Ti,请安排一个合理的方案使得所有人的等待时间之和尽量小。提示一种最佳打水方案是,将N个人按照Ti从小到大的顺序依次分配到M个龙头打水。例如样例中,Ti从小到大排序为1,2,3,4,5,6,7,将他们依次分配到3个龙头,则去龙头一打水的为1,4,7;去龙头二打水的为2,5;去第三个龙头打水的为3,6。第一个龙头打水的人总等待时间 = 0 + 1 + (1 + 4) = 6第二个龙头打水的人总等待时间 = 0 +...原创 2021-10-06 23:53:04 · 202 阅读 · 0 评论 -
1453: 蓝桥杯历届试题-翻硬币
小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度< 1000...原创 2021-10-06 18:43:13 · 125 阅读 · 0 评论 -
1197: 发工资(贪心
题目描述作为程序猿,最盼望的日子就是每月的9号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于公司财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小李最近就在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位员工发工资的时候都不用员工找零呢?这里假设程序猿的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。输入输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示员工的人数,然后是原创 2021-10-02 23:39:20 · 205 阅读 · 0 评论 -
P1014 [NOIP1999 普及组] Cantor 表
题目描述现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:1/11/1,1/21/2,1/31/3,1/41/4,1/51/5, …2/12/1,2/22/2,2/32/3,2/42/4, …3/13/1,3/23/2,3/33/3, …4/14/1,4/24/2, …5/15/1, ……我们以 Z 字形给上表的每一项编号。第一项是1/11/1,然后是1/21/2,2/12/1,3...原创 2021-09-26 20:48:08 · 304 阅读 · 0 评论 -
P1012 [NOIP1998 提高组] 拼数
题目描述设有nn个正整数a_1 \dots a_na1…an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。输入格式第一行有一个整数,表示数字个数nn。第二行有nn个整数,表示给出的nn个整数a_iai。输出格式一个正整数,表示最大的整数输入输出样例输入 #1复制313 312 343输出 #1复制34331213输入 #2复制47 13 4 246输出 #2复制7424613说明/提示对于...原创 2021-09-26 20:25:12 · 435 阅读 · 0 评论 -
BFS广搜迷宫问题
/* 5 41 1 2 11 1 1 11 1 2 11 2 1 11 1 1 21 1 4 3*/#include<bits/stdc++.h>using namespace std;int a[101][101],v[101][101];struct point{ int x; int y; int step;};queue<point> r;//申请队列int dx[4] = {0, 1, 0, -1};/.原创 2021-09-26 10:47:06 · 113 阅读 · 0 评论 -
P1049 [NOIP2001 普及组] 装箱问题
题目描述有一个箱子容量为VV(正整数,0 \le V \le 200000≤V≤20000),同时有nn个物品(0<n \le 300<n≤30,每个物品有一个体积(正整数)。要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入格式11个整数,表示箱子容量11个整数,表示有nn个物品接下来nn行,分别表示这nn个物品的各自体积输出格式11个整数,表示箱子剩余空间。输入输出样例输入 #12468312797输出 #1原创 2021-09-24 19:07:32 · 133 阅读 · 0 评论 -
多重背包问题 I
有NN种物品和一个容量是VV的背包。第ii种物品最多有sisi件,每件体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有NN行,每行三个整数vi,wi,sivi,wi,si,用空格隔开,分别表示第ii种物品的体积、价值和数量。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤1...原创 2021-09-23 18:40:58 · 111 阅读 · 0 评论 -
完全背包问题
有NN种物品和一个容量是VV的背包,每种物品都有无限件可用。第ii种物品的体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有NN行,每行两个整数vi,wivi,wi,用空格隔开,分别表示第ii种物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<...原创 2021-09-23 16:21:46 · 85 阅读 · 0 评论 -
01背包问题
有NN件物品和一个容量是VV的背包。每件物品只能使用一次。第ii件物品的体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有NN行,每行两个整数vi,wivi,wi,用空格隔开,分别表示第ii件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<N...原创 2021-09-17 17:43:01 · 142 阅读 · 0 评论