ACM程序设计基础
文章平均质量分 61
该博客是算法所做过的一些题目,用来记录。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
ZCY19990813
不断丰富自己,变得有底气!
展开
-
字节跳动内推
给粉丝发福利啦,扫码选择岗位投递:校招:社招:原创 2021-03-23 20:23:58 · 280 阅读 · 0 评论 -
动态规划解决 最长公共子序列 与 最长公共字串问题
一、最长公共子序列#include<bits/stdc++.h>#include<string>#include<cstdio>#include<iostream>using namespace std;string solve(string s1,string s2){ s1="*"+s1; s2="&"...原创 2020-04-09 18:40:55 · 231 阅读 · 0 评论 -
n皇后问题(含位运算)
问题1:题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放...原创 2019-10-30 20:44:04 · 395 阅读 · 0 评论 -
捡苹果(背包+贪心)
http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=4811Description以前,有个神秘的院子里面有三种苹果,每个苹果的数量是无限的。有一个小姑娘带了一个大袋子来到院子,她从来没见过这么多的苹果。每种苹果都有大小以及出售的价格,小姑娘想获得最大的利润,但是她不知道怎么才能做到。于是她来向你寻求帮助,你能告诉她能获得的最大价值吗?...原创 2019-10-30 11:09:42 · 1282 阅读 · 0 评论 -
背包
http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=4808Description卖方:这件商品14元买方:给你20元卖方:不好意思,我的零钱不够买方:好吧,这是15元,剩的当小费当到一个地方旅游时,如果你买东西的地方不支持信用,带零钱还是非常有用的。特别是有时候卖方没有零钱,如果你没有刚好的钱,你需要支付比卖价多一点。...原创 2019-10-29 22:10:53 · 667 阅读 · 0 评论 -
Tempter of the Bone(dfs)
DescriptionThe doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized t...原创 2019-04-12 10:06:20 · 117 阅读 · 0 评论 -
Substrings
DescriptionYou are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given st...原创 2019-04-12 09:54:11 · 135 阅读 · 0 评论 -
拓扑排序(topsort)模板+例题
A -很简单Description有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。Input输入有若干组,每组中的第一行为二个数N(1...原创 2019-04-04 20:47:41 · 579 阅读 · 0 评论 -
Currency Exchange(spfa,邻接矩阵)
题目意思:给出 N 种 currency, M种兑换方式,Nick 拥有的的currency 编号S 以及他的具体的currency(V)。M 种兑换方式中每种用6个数描述: A, B, C, D,E, F。其中,C: 货币A 兑换 货币B 的汇率为C,佣金为D。E:货币B 兑换 货币 A 的汇率,佣金为F。假设含有的A货币是x,那么如果兑换成B,得到的货币B 就是:(x-D) * C。问从 货...原创 2019-03-15 18:29:34 · 268 阅读 · 0 评论 -
Wormholes (spfa,邻接矩阵)
题目大意:规定n个点,可以从任一点出发,要求判断最后能否回到该点来。已知一些连通边,双向连通边为正权,单向连通边为负。解法:判断两点(1)能否构成环(2)环的权值和是否为负数;#include <stdio.h>#include <algorithm>#include <iostream>#include <cmath>#i...原创 2019-03-15 18:25:45 · 437 阅读 · 0 评论 -
最短路 ( dijkstra floyd spfa Bellman_Ford 堆优化Dijkstra(优先队列))
dijkstra(不能判负权 也不能判负环) dis数组里面存的是n到起点的最短距离在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M&...原创 2018-07-27 17:53:21 · 316 阅读 · 0 评论 -
最短路(dijkstra模板)(用邻接矩阵 邻接表 链式前向星来存储)
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场...原创 2018-06-12 19:43:02 · 237 阅读 · 0 评论 -
畅通工程续(最短路)
Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0<...原创 2019-03-07 20:10:25 · 154 阅读 · 0 评论 -
畅通工程(最小生成树)
Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M...原创 2019-02-28 21:16:40 · 227 阅读 · 0 评论 -
畅通工程(最小生成树)
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N行对应村庄间道路的成本,每...原创 2018-06-07 15:58:14 · 242 阅读 · 0 评论 -
继续畅通工程
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1)...原创 2018-06-07 16:12:02 · 208 阅读 · 0 评论 -
6种排序模板
看几个动画演示 http://atool.org/sort.php http://jsdo.it/norahiko/oxIy/fullscreen一:冒泡排序 O(n*n)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名...原创 2018-10-16 19:44:55 · 981 阅读 · 1 评论 -
最长公共子序列Lcs
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。Input第1行:字符串A第2行:字符串B(A,B的长度 <= 1000)Output输出最长的子序列,如果有多个,随意输出1个。Input示例a...原创 2018-10-26 18:46:24 · 115 阅读 · 0 评论 -
卡特兰数(JAVA)
卡特兰数链接 https://blog.csdn.net/ZCY19990813/article/details/81181505Game of ConnectionsDescriptionThis is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, ... , 2n - 1,...原创 2018-10-16 21:36:06 · 363 阅读 · 2 评论 -
母函数例题
B - Ignatius and the Princess III(模板题)Description"Well, it seems the first problem is too easy. I will let you know how foolish you are later." feng5166 says. "The second problem is, given an pos...原创 2018-09-30 11:19:29 · 526 阅读 · 0 评论 -
排序
Fence Repair(优先队列)每一次都排序Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N (1 ≤ N ≤ 20,000) planks of wood, each having some ...原创 2018-10-11 19:31:40 · 135 阅读 · 0 评论 -
tai贪心^^
1.试设计一个用回溯法搜索子集空间树的函数。该函数的参数包括结点可行性判定函数和上界函数等必要的函数,并将此函数用于解0-1背包问题。 0-1 背包问题描述如下:给定n 种物品和一个背包。物品i 的重量是wi ,其价值为vi ,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有2 种选择,即装入背包或不装入背包。不能将物品i 装...原创 2018-03-27 17:33:02 · 357 阅读 · 2 评论 -
并查集
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,...原创 2018-05-21 19:42:53 · 197 阅读 · 0 评论 -
16进制a+b
DescriptionMany classmates said to me that A+B is must needs. If you can’t AC this problem, you would invite me for night meal. ^_^InputInput may contain multiple test cases. Each case contains ...原创 2018-08-28 20:44:12 · 796 阅读 · 0 评论 -
计算x的n次方(用函数)
use MathJax to parse formulasDescription问题很简单,求x^n.请编写pow()函数.声明如下:int pow(int x,int n,int p)//pow的功能是实现x^n,最后1个参数p没有用。系统会自动在程序的最后加上如下代码:int main(){ int x,n; scanf("%d %d",&...原创 2018-08-28 22:08:10 · 10765 阅读 · 0 评论 -
关于左位右位的问题
n的n次方最右位用快速幂做#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;int fast_pow(ll a,ll b,ll c){ in...原创 2018-08-30 11:33:38 · 2643 阅读 · 0 评论 -
约数的个数
Description mmoaay小侄子今年上初中,老师出了一道求约数个数的题目,比如8的约数有1,2,4,8共4个。当数比较小的时候可以人工算,当n较大时就难了。mmoaay嫌麻烦,现在让你编个程序来算。Input一行一个整数。最后以0结束。Output分别求出这些整数的约数个数,最后的0不用处理。Sample Input81000Sample...原创 2018-09-04 17:46:56 · 597 阅读 · 0 评论 -
青蛙的约会
题目分析: 设时间为t,则两个青蛙的位置分别为(x+mt)mod L、(y+nt) mod L,相遇即是(x+mt)%L=(y+nt)%L,即(m-n)*t+k*L=y-x。OK,现在已经符合ax+by=c的方程了,设a=m-n,b=L,c=y-x,然后套用模板求出特解t的值,注意t>0,所以要用通解公式得出最小正整数(为啥刚开始我就没想到这一点呢)。最后注意用long long~ ...原创 2018-09-11 19:01:28 · 4428 阅读 · 0 评论 -
欧拉函数
Relatives use MathJax to parse formulasDescriptionGiven n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if the...原创 2018-09-11 17:52:19 · 167 阅读 · 0 评论 -
递推与递归
A - 养兔子Description一对成熟的兔子每月能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是一个月,而成熟后的第二个月才开始生小兔。某人领养了一对小兔子,一公一母,请问第N个月以后,他将会得到多少对兔子。Input测试数据包括多组,每组一行,为整数n(1≤n≤90)。 输入以0结束。Output对应输出第n个月有几对兔子(假设没有兔子死亡现象,而且是...原创 2018-09-13 11:25:48 · 254 阅读 · 1 评论 -
最大公约数 最小公倍数
求两个正整数的最大公约数。Input输入数据含有不多于50对的数据,每对数据由两个正整数(0 < n1,n2 < 232)组成。Output对于每组数据n1和n1,计算最大公约数,每个计算结果应占单独一行。Sample Input6 5 18 12Sample Output16#include <iostream>#includ...原创 2018-09-15 14:01:13 · 246 阅读 · 0 评论 -
Biorhythms(中国剩余定理)
Some people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical, emotional, and intellectual cycles, and they have periods ...原创 2018-09-15 14:03:36 · 511 阅读 · 0 评论 -
平方和与立方和 七夕节
平方和与立方和Description给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。Input输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。Output对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。你可以认为32位整数足以保存结果。Sample Input...原创 2018-09-20 15:22:22 · 133 阅读 · 0 评论 -
To the Max(求最大子矩阵的和)
DescriptionGiven a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectang...原创 2019-09-25 10:32:56 · 341 阅读 · 0 评论 -
Polygon(多边形游戏)
DescriptionPolygon is a game for one player that starts on a polygon with N vertices, like the one in Figure 1, where N=4. Each vertex is labelled with an integer and each edge is labelled with e...原创 2019-10-09 19:07:03 · 1669 阅读 · 0 评论 -
矩阵连乘(动态规划)
题目链接Description给你2个矩阵A、B,我们使用标准的矩阵相乘定义C=AB如下:A数组中栏(column)的数目一定要等于B数组中列(row)的数目才可以做此2数组的相乘。若我们以rows(A),columns(A)分 别代表A数组中列及栏的数目,要计算C数组共需要的乘法的数目为:rows(A)*columns(B)*columns(A)。例如:A数组是一个 10x20...原创 2019-09-22 20:31:02 · 1210 阅读 · 0 评论 -
最大子段和(分治法)
Description给定有n个整数(可能为负整数)组成的序列a1,a2,...,an,求该序列连续的子段和的最大值。 如果该子段的所有元素和是负整数时定义其最大子段和为0。Input第一行有一个正整数n(n<1000),后面跟n个整数,绝对值都小于10000。直到文件结束。Output输出它的最大子段和。Sample Input6 -2 11 -4 13 -5...原创 2019-09-17 17:05:58 · 1591 阅读 · 1 评论 -
棋盘覆盖(分治法)
Description在一个2k x 2k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。Inputk,dr,dc。k定义如前,dr,dc分别表示特殊方格所在的行号和列号 1= < k...原创 2019-09-05 13:28:46 · 608 阅读 · 0 评论 -
C++递归求数组最大最小值
题目链接Description给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值。要求只编写函数 voidmaxmin(int a[],intlow,inthigh,int*max,int*min).系统会自动在程序的最后加上如下代码:int main(){ int max,min,k,a[200]; ...原创 2019-09-04 11:10:25 · 1847 阅读 · 1 评论 -
划分问题(dp)
Description给定一个正整数的集合A={a1,a2,….,an},是否可以将其分割成两个子集合,使两个子集合的数加起来的和相等。例A = { 1, 3, 8, 4, 10} 可以分割:{1, 8, 4} 及 {3, 10}Input第一行集合元素个数n n <=300 第二行n个整数Output如果能划分成两个集合,输出任意一个子集,否则输出“no”Samp...原创 2019-09-25 19:43:49 · 819 阅读 · 0 评论