![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法&ACM
算法&ACM
Jackie·Tang
这个作者很懒,什么都没留下…
展开
-
实例3 国王和金矿
问题描有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同。参与挖矿工人的总数是10人。每座金矿要么全挖,要么不挖,不能派出一半人挖取一半金矿。要求用程序求解出,要想得到尽可能多的黄金,应该选择挖取哪几座金矿?样例输入5 10500 400 350 300 2005 5 3 4 3样例出900#include<bits/stdc++.h>using namespace std;const int INF = 1e5+10;int main(){原创 2021-06-04 15:33:16 · 104 阅读 · 0 评论 -
动态规划基本要素
动态规划性质: 1 最优子结构性质 2 子问题重叠性质 ----->该问题可用动态规划算法求解的基本要素1.最优子结构当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。最优子结构性质提供了该问题的可用动态规划算法求解的重要线索。动态规划,利用问题的最优子结构性质,以自底向上的方式递归的从子问题的最优解逐步构造出整个问题的最优解。2.重叠子问题动态规划,避开了递归时,重复的计算相同子问题的过程,对每个子问题只解一次,而后将其保存在一个表格中,当再次需要的时候,只是简单原创 2021-04-26 16:08:32 · 732 阅读 · 0 评论 -
最大子段和
#include<bits/stdc++.h>using namespace std;const int INF = 1e3+10;int maxSum(int n, int *num) { int sum = 0; int b = 0; for(int i=1; i<=n; i++) { if(b > 0) { b += num[i]; } else { b = num[i原创 2021-04-26 11:54:33 · 77 阅读 · 0 评论 -
最长公共子序列
#include<bits/stdc++.h>using namespace std;const int INF = 1e3+10;int c[INF][INF];int b[INF][INF];void LCSLength(int m, int n, string x, string y, int c[][INF], int b[][INF]) { for(int i=1; i<=m; i++) { c[i][0] = 0; } for(原创 2021-04-26 11:24:16 · 135 阅读 · 0 评论 -
矩阵连乘问题
#include<bits/stdc++.h>using namespace std;const int INF = 1e3+10;int n;int m[INF][INF];int s[INF][INF];int p[INF];void traceBack(int i, int j, int s[][INF]) { if(i==j) { return; } traceBack(i, s[i][j], s); traceBack(s[原创 2021-04-26 11:01:11 · 428 阅读 · 0 评论 -
UVA540 团体队列 Team Queue
输入格式输出格式输入23 101 102 1033 201 202 203ENQUEUE 101ENQUEUE 201ENQUEUE 102ENQUEUE 202ENQUEUE 103ENQUEUE 203DEQUEUEDEQUEUEDEQUEUEDEQUEUEDEQUEUEDEQUEUESTOP25 259001 259002 259003 2590...原创 2019-08-13 16:37:33 · 167 阅读 · 0 评论 -
1535:【例 1】数列操作
【题目描述】给定n个数列,规定有两种操作,一是修改某个元素,二是求子数列[a,b]的连续和。数列元素个数最多10万个,询问操作最多10万次。【输入】第一行2个整数n,m(n表示输入n个数,m表示m操作)第二行n个整数接下来m行,每行三个数k,a,b(k=0,表示求子数列[a,b]的连续和;k=1,表示第a个数加b)。【输出】若干行,表示k=0时,对应子数列[a,b]连续和。【输入样...原创 2019-07-25 14:25:04 · 1025 阅读 · 0 评论 -
Uva1401 Remember the Word
Neal is very curious about combinatorial problems, and now here comes a problem about words. Knowing that Ray has a photographic memory and this may not trouble him, Neal gives it to Jiejie.Since Jie...原创 2019-07-25 17:51:29 · 160 阅读 · 0 评论 -
P1516 青蛙的约会
题目描述两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐...原创 2019-07-26 16:30:07 · 161 阅读 · 0 评论 -
Bear and Blocks
CodeForces - 574DLimak is a little bear who loves to play. Today he is playing by destroying block towers. He built n towers in a row. The i-th tower is made of hi identical blocks. For clarification...原创 2019-07-28 12:49:50 · 139 阅读 · 0 评论 -
1538:清点人数
【题目描述】NK 中学组织同学们去五云山寨参加社会实践活动,按惯例要乘坐火车去。由于 NK 中学的学生很多,在火车开之前必须清点好人数。初始时,火车上没有学生。当同学们开始上火车时,年级主任从第一节车厢出发走到最后一节车厢,每节车厢随时都有可能有同学上下。年级主任走到第 m 节车厢时,他想知道前 m 节车厢上一共有多少学生,但是他没有调头往回走的习惯。也就是说每次当他提问时,m 总会比前一次大...原创 2019-07-25 14:22:55 · 1397 阅读 · 0 评论 -
1458:Seek the Name, Seek the Fame
【题目描述】原题来自:POJ 2752给定若干字符串(这些字符串总长 ≤4×105 ),在每个字符串中求出所有既是前缀又是后缀的子串长度。例如:ababcababababcabab,既是前缀又是后缀的:ab,abab,ababcabab,ababcababababcabab。【输入】输入若干行,每行一个字符串。【输出】对于每个字符串,输出一行,包含若干个递增的整数,表示所有既是前...原创 2019-07-24 15:21:13 · 402 阅读 · 0 评论 -
1457:Power Strings
【题目描述】原题来自:POJ 2406给定若干个长度 ≤106 的字符串,询问每个字符串最多是由多少个相同的子字符串重复连接而成的。如:ababab 则最多有 3 个 ab 连接而成。【输入】输入若干行,每行有一个字符串,字符串仅含英语字母。特别的,字符串可能为 . 即一个半角句号,此时输入结束。【输出】【输入样例】abcdaaaaababab.【输出样例】143#i...原创 2019-07-24 13:50:41 · 1278 阅读 · 1 评论 -
1456:【例题2】图书管理
【题目描述】图书管理是一件十分繁杂的工作,在一个图书馆中每天都会有许多新书加入。为了更方便的管理图书(以便于帮助想要借书的客人快速查找他们是否有他们所需要的书),我们需要设计一个图书查找系统。该系统需要支持 2 种操作:add(s) 表示新加入一本书名为 s 的图书。find(s) 表示查询是否存在一本书名为 s 的图书。【输入】第一行包括一个正整数 n,表示操作数。 以下 n 行,每...原创 2019-07-24 11:01:00 · 2281 阅读 · 0 评论 -
1617:转圈游戏
【题目描述】n 个小伙伴(编号从 0 到 n−1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从 0 到 n−1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第 n−m 号位置上的小伙伴走到第 0 号位置,第 n−...原创 2019-07-29 11:28:15 · 561 阅读 · 0 评论 -
1616:A 的 B 次方
【题目描述】给出三个整数 a,b,m,求 abmodm 的值。【输入】一行三个整数 a,b,m。【输出】一个整数,表示 abmodm 的值。【输入样例】2 100 1007【输出样例】169【提示】数据范围与提示:对于全部数据,1≤a,b,m≤109 。#include<bits/stdc++.h>using namespace std;typedef l...原创 2019-07-29 11:26:52 · 490 阅读 · 0 评论 -
1615:【例 1】序列的第 k 个数
【题目描述】BSNY 在学等差数列和等比数列,当已知前三项时,就可以知道是等差数列还是等比数列。现在给你序列的前三项,这个序列要么是等差序列,要么是等比序列,你能求出第 k 项的值吗。 如果第 k 项的值太大,对 200907 取模。【输入】第一行一个整数 T,表示有 T 组测试数据;对于每组测试数据,输入前三项 a,b,c,然后输入 k。【输出】对于每组数据输出第 k 项的值,对 2...原创 2019-07-29 11:25:33 · 1079 阅读 · 3 评论 -
1618:越狱
【题目描述】原题来自:HNOI 2008监狱有连续编号为 1 到 n 的 n 个房间,每个房间关押一个犯人。有 m 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。【输入】输入两个整数 m 和 n。【输出】可能越狱的状态数,对 100003 取余。【输入样例】2 3【输出样例】6【提示】样例说明所有可能的 6...原创 2019-07-29 11:24:03 · 726 阅读 · 0 评论 -
CF574B Bear and Three Musketeers
题目描述Do you know a story about the three musketeers? Anyway, you will learn about its origins now.Richelimakieu is a cardinal in the city of Bearis. He is tired of dealing with crime by himself. He n...原创 2019-07-28 13:49:05 · 137 阅读 · 0 评论 -
UVA10652 Board Wrapping
题目描述输入格式输出格式输入输出样例输入144 7.5 6 3 08 11.5 6 3 09.5 6 6 3 904.5 3 4.4721 2.2361 26.565输出64.3 %#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+10;struct point{ ...原创 2019-08-06 14:59:19 · 130 阅读 · 0 评论 -
P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
题目描述农夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏。他建造的围栏必须包括他的奶牛喜欢吃草的所有地点。对于给出的这些地点的坐标,计算最短的能够围住这些点的围栏的长度。输入格式输入数据的第一行包括一个整数 N。N(0 <= N <= 10,000)表示农夫约翰想要围住的放牧点的数目。接下来 N 行,每行由两个实数组成,Xi 和 Yi,对应平面上的放牧点坐标(-1,000...原创 2019-08-06 15:01:24 · 79 阅读 · 0 评论 -
1552:【例 1】点的距离
【题目描述】给定一棵 n 个点的树,Q 个询问,每次询问点 x 到点 y 两点之间的距离。【输入】第一行一个正整数 n,表示这棵树有 n 个节点;接下来 n−1 行,每行两个整数 x,y表示 x,y 之间有一条连边;然后一个整数 Q,表示有 Q 个询问;接下来 Q 行每行两个整数 x,y 表示询问 x 到 y 的距离。【输出】输出 Q 行,每行表示每个询问的答案。【输入样例】6...原创 2019-08-18 11:26:19 · 1039 阅读 · 0 评论 -
1551:维护序列
【题目描述】原题来自:AHOI 2009老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。有长为 n 的数列,不妨设为 a1,a2,⋯,an 。有如下三种操作形式:把数列中的一段数全部乘一个值;把数列中的一段数全部加一个值;询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模 P 的值。【输入】第一行两个整数 n 和 P;第二行含有 n 个非负整数,从左到右依...原创 2019-08-17 09:50:45 · 931 阅读 · 0 评论 -
最高分是多少
老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学...原创 2019-08-16 15:24:57 · 152 阅读 · 0 评论 -
1550:花神游历各国
【题目描述】原题来自:BZOJ 3211花神喜欢步行游历各国,顺便虐爆各地竞赛。花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并不一定喜欢所有国家)。每一次旅行中,花神会选择一条旅游路线,它在那一串国家中是连续的一段,这次旅行带来的开心值是这些国家的喜欢度的总和,当然花神对这些国家的喜欢程序并不是恒定的,有时会突然对某些国家...原创 2019-08-16 14:41:53 · 700 阅读 · 0 评论 -
1549:最大数
【题目描述】原题来自:JSOI 2008给定一个正整数数列 a1,a2,a3,⋯,an ,每一个数都在 0∼p–1 之间。可以对这列数进行两种操作:添加操作:向序列后添加一个数,序列长度变成 n+1;询问操作:询问这个序列中最后 L 个数中最大的数是多少。程序运行的最开始,整数序列为空。写一个程序,读入操作的序列,并输出询问操作的答案。【输入】第一行有两个正整数 m,p,意义如题目描...原创 2019-08-16 13:44:18 · 851 阅读 · 0 评论 -
UVA122 树的层次遍历 Trees on the level
题目描述输入格式输出格式输入(11,LL) (7,LLL) (8,R)(5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ()(3,L) (4,R) ()输出5 4 8 11 13 4 7 2 1not complete#include<bits/stdc++.h>#define read() freopen("input...原创 2019-08-16 00:00:56 · 142 阅读 · 0 评论 -
问题 G: 区间查询
题目描述食堂有N个打饭窗口,现在正到了午饭时间,每个窗口都排了很多的学生,而且每个窗口排队的人数在不断的变化。现在问你第i个窗口到第j个窗口一共有多少人在排队?输入输入的第一行是一个整数T,表示有T组测试数据。每组输入的第一行是一个正整数N(N<=30000),表示食堂有N个窗口。接下来一行输入N个正整数,第i个正整数ai表示第i个窗口最开始有ai个人排队。(1<=ai&l...原创 2019-08-14 20:47:43 · 144 阅读 · 0 评论 -
【线段树】一个简单的整数问题
题目描述你有N个整数,A1,A2,…,AN。 你需要处理两种操作。 一种操作是在给定间隔中为每个数字添加一些给定数字。 另一种是要求给定间隔中的数字总和。输入第一行包含两个数字N和Q.1≤N,Q≤100000。第二行包含N个数字,A1,A2,…,AN的初始值。 -1000000000≤AI≤1000000000。接下来的Q行中的每一行代表一个操作。“C a b c”表示将C添加到Aa,...原创 2019-08-14 18:53:20 · 253 阅读 · 0 评论 -
1547:【 例 1】区间和
【题目描述】给定一数列,规定有两种操作,一是修改某个元素,二是求区间的连续和。【输入】输入数据第一行包含两个正整数n,m(n≤100000,m≤500000),以下是m行,每行有三个正整数k,a,b(k=0或1,a,b≤n).k=0时表示将a处数字加上b,k=1时表示询问区间[a,b]内所有数的和。【输出】对于每个询问输出对应的答案。【输入样例】10 200 1 101 1 4...原创 2019-08-14 15:53:07 · 1021 阅读 · 0 评论 -
UVA400 Unix Is命令 Unix ls
题目描述输入格式输出格式输入10tiny2short4mevery_long_file_nameshortersize-1size2size3much_longer_name12345678.123mid_size_name12WeaserAlfalfaStimeyBuckwheatPorkyJoeDarlaCottonButchFroggyMr...原创 2019-08-13 18:50:04 · 141 阅读 · 0 评论 -
UVA136 丑数 Ugly Numbers
输入格式输出格式输入输出The 1500'th ugly number is <number>.#include<bits/stdc++.h>#define read() freopen("input.txt","r",stdin);#define write() freopen("output.txt","w",stdout);us...原创 2019-08-13 16:52:11 · 146 阅读 · 0 评论 -
P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
题目描述农夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏。他建造的围栏必须包括他的奶牛喜欢吃草的所有地点。对于给出的这些地点的坐标,计算最短的能够围住这些点的围栏的长度。输入格式输入数据的第一行包括一个整数 N。N(0 <= N <= 10,000)表示农夫约翰想要围住的放牧点的数目。接下来 N 行,每行由两个实数组成,Xi 和 Yi,对应平面上的放牧点坐标(-1,000...原创 2019-08-06 15:03:30 · 115 阅读 · 0 评论 -
1455:【例题1】Oulipo
【题目描述】给出两个字符串s1,s2((只有大写字母),求s1在s2中出现多少次。例如:s1=“ABA”,s2=“ABAABA”,答案为2。【输入】输入T组数据,每组数据输出结果。【输出】如题述。【输入样例】3BAPCBAPCAZAAZAAZAAZAVEEDIAVERDXIVYERDLAN【输出样例】130【提示】1≤s1的长度 ≤104 ,1≤s2...原创 2019-07-24 10:43:09 · 1224 阅读 · 0 评论 -
1589:不要 62
【题目描述】杭州人称那些傻乎乎粘嗒嗒的人为 62(音:laoer)。杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有 4 或 62 的号码。例如:62315,73418,8891462315,73418,88914 都属于不吉利号码。但是,61152 虽然...原创 2019-07-16 14:09:55 · 297 阅读 · 0 评论 -
1586:【 例 2】数字游戏
【题目描述】科协里最近很流行数字游戏。某人命名了一种不降数,这种数字必须满足从左到右各位数字成小于等于的关系,如 123,446。现在大家决定玩一个游戏,指定一个整数闭区间 [a,b],问这个区间内有多少个不降数。【输入】有多组测试数据。每组只含两个数字 a,b,意义如题目描述。【输出】每行给出一个测试数据的答案,即 [a,b] 之间有多少不降数。【输入样例】1 91 19【输...原创 2019-07-16 13:29:51 · 470 阅读 · 0 评论 -
食物链
题目描述动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话...原创 2019-05-15 15:34:52 · 120 阅读 · 0 评论 -
放苹果
题目描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出对输入的每组数据M和N,用一行输出相应的K。输入样例17 3输出样例8思路这是一道动...原创 2019-05-15 15:31:25 · 140 阅读 · 0 评论 -
Stones
Source HDU 2008-4 Programming ContestStonesTips1. 给出石头信息求最后一个石头距离,采用优先队列#include<cstdio>#include<iostream>#include<queue>#define read() freopen("input.txt","r",stdin)#define...原创 2019-05-14 17:20:11 · 132 阅读 · 0 评论 -
看病要排队
Source 2008浙大研究生复试热身赛(2)——全真模拟看病要排队Tips1. 用优先队列的话,写比较函数是关键,然后就是弄一个优先队列数组表示医生就好了#include<cstdio>#include<iostream>#include<queue>#define read() freopen("input.txt","r",stdin)...原创 2019-05-14 16:21:08 · 184 阅读 · 0 评论