
ACM
总结以前做的题希望一起学习
成长的小牛233
不辜负每一份热爱
展开
-
选择排序、插入排序、冒泡排序、快速排序、归并排序和希尔排序代码
#include<iostream>#include<algorithm>#include<ctime>using namespace std;#define random(a,b) (rand()%(b-a+1)+a)void print_array(int *a);void quick_sort(int *a, int l, int r){ ...原创 2018-07-05 13:29:47 · 270 阅读 · 0 评论 -
找出二维数组中每行的最小数但最小数的列不能相同
现有一个M*N的表格,请统计表格中每行最小数值之和。要求最小数的都在不同列中, 既假设第一行第一列数是最小数,那即使第二行第一列的数在第二行中不去计算。 example: 存在如下表格: 1 2 3 2 4 5 则: 第一行最小数是1,第二行最小数是4,和为5。表格数据输入形式自定#include<string>...原创 2018-07-05 13:14:45 · 1032 阅读 · 0 评论 -
hdu3790最短路径问题(迪杰斯特拉算法+详解+代码)
最短路径问题Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 32544 Accepted Submission(s): 9565Problem Description给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t原创 2018-03-31 23:43:00 · 382 阅读 · 0 评论 -
hdu3790最短路径问题 (Dijkstra算法)
最短路径问题Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 32544 Accepted Submission(s): 9565Problem Description给你n个点,m条无向边,每条边都有长度d和花费p,给...原创 2018-03-31 23:14:44 · 500 阅读 · 0 评论 -
还是畅通工程(克鲁斯卡尔算法+并查集)
还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 53997 Accepted Submission(s): 24504Problem Description某省调查乡村交通状况,得到的统计表中列出了任意两村...原创 2018-03-31 20:53:52 · 573 阅读 · 0 评论 -
hdu1232畅通路程(并查集)
参考博客:https://blog.youkuaiyun.com/blue_skyrim/article/details/50178287 畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 62854 Accepted Submi...原创 2018-03-31 19:51:02 · 195 阅读 · 0 评论 -
包子凑数(蓝桥杯)
标题:包子凑数小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这-。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔...原创 2018-03-31 19:26:35 · 563 阅读 · 0 评论 -
01背包问题(DFS解法)
有5个物体,每个物品只有一个,其重量分别是为2,2,6,5,4,价值分别为6,3,5,4,6,背包的载重量为10,求装入背包的物体及总质量。计算结果:15package com.lanQiaoFor6;import java.util.ArrayList;import java.util.TreeSet;public class JAVA_6 { static Tree...原创 2018-03-31 19:23:32 · 1813 阅读 · 0 评论 -
纸牌三角形(蓝桥杯)
标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。 下图就是一种排法。 A 9 6 4 8 3 7 5 2 镜像后的: A 6 9 8 4 2 5 7 3 这样的排法可能会有很多。 如果考虑旋转、镜像后相同的算同一种,一共有多少...原创 2018-03-31 19:15:51 · 722 阅读 · 0 评论 -
包子凑数(蓝桥杯)
标题:包子凑数小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这-。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔...原创 2018-03-31 19:12:48 · 517 阅读 · 1 评论 -
分巧克力(蓝桥杯)
标题: 分巧克力儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当...原创 2018-03-31 09:33:33 · 300 阅读 · 0 评论 -
DFS全排列
第一种方法:package com.tjrac_java_2;import java.util.Scanner;public class Fun { public static int s=0; static int[] a=new int[100000]; public static void main(String[] args) { int...原创 2018-03-30 18:59:25 · 271 阅读 · 0 评论 -
饮料换购(蓝桥杯)
饮料换购乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能得到多少瓶饮料。输入:一个整数n,表示开始购买的饮料数量(0package com.tjrac_java_2;import java.util.Scanne...原创 2018-03-30 17:39:19 · 720 阅读 · 0 评论 -
标题: k倍区间(蓝桥杯)
package com.tjrac_java_2;import java.util.Scanner;import java.util.Set;import java.util.TreeSet;import java.util.Vector;public class TT { private static int sum; public static void mai...原创 2018-03-30 17:19:50 · 237 阅读 · 0 评论 -
加法变乘法(蓝桥杯)
题意: 我们都知道:1+2+3+ … + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015比如: 1+2+3+…+10*11+12+…+27*28+29+…+49 = 2015 就是符合要求的答案。请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。注意:需要你提交的是一个整数,不要填写任何多余的内容。...原创 2018-03-30 15:32:20 · 516 阅读 · 0 评论 -
LCS最长公共子序列java实现代码保存
package com.tjrac_java_2;import java.util.Scanner;public class Lcs { public static void main(String[] args) { String x,y; int[][] sum= new int [505][505]; int i,j,len...原创 2018-03-29 19:11:09 · 272 阅读 · 0 评论 -
蓝桥杯-方格填数
方格填数如下的10个格子 +–+–+–+ | | | | +–+–+–+–+ | | | | | +–+–+–+–+ | | | | +–+–+–+(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。 (左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。 注...原创 2018-03-29 11:51:34 · 332 阅读 · 0 评论 -
1295 爱翻译
1295 爱翻译Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)Submits : 390 | Solved : 80Description英语是现在世界第一大语言,所以学好英语是very important,但是宁波大学的某个大牛说:“我不原创 2018-01-28 12:29:54 · 510 阅读 · 0 评论 -
1224 哥德巴赫猜想(2)
1224 哥德巴赫猜想(2)Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)Submits : 1564 | Solved : 629Description所谓哥德巴赫猜想,就是指任何一个大于2的偶数,都可以写成两个素数的和。现在输入一个偶数,原创 2018-01-25 20:28:48 · 884 阅读 · 0 评论 -
1185 城市名排序
1185 城市名排序Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)Submits : 3989 | Solved : 2049Description从键盘输入n个城市名,进行升序排序并输出。Input第一行输入一个整数原创 2018-01-23 19:11:07 · 2463 阅读 · 0 评论 -
1260 不一样的A+B
1260 不一样的A+BTime Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)Submits : 641 | Solved : 357Description读入两个小于100的正整数A和B,计算A+B的值并输出。需要注意的是:整数A和B的每一位数字由对应的英文单词给出。原创 2018-01-23 16:59:16 · 925 阅读 · 0 评论 -
1192 约瑟夫问题(1)
1192 约瑟夫问题(1)Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)Submits : 1235 | Solved : 716Description模拟这个游戏。有n个人围成一圈,从第一个人开始沿顺时针方向报数(从1到3报数),凡报到3的原创 2018-01-23 13:30:13 · 592 阅读 · 0 评论 -
递归算法的时间复杂度分析
在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较常用的有以下四种方法: (1)代入法(Substitution Method) 代入法的基本步骤是先推测递归方程的显式解,然后用数学归纳法来验证该解是否合理。转载 2017-11-02 20:48:36 · 1409 阅读 · 0 评论 -
拓扑排序 详解 + 并查集 详解 + 最小生成树详解
若您发现本文有什么错误,请联系我,我会及时改正的,谢谢您的合作!本文为原创文章,转载请注明出处 本文链接 : http://www.cnblogs.com/Yan-C/p/3943940.html 。哎呀,好久了啊,想写这篇博文好久了,但是因为懒的原因 一直迟迟没动手啊。今天,终于在长久的懒惰下,突然来了那么一点热度。把这篇博文写一下。本文分为以下几个部转载 2017-01-02 09:50:23 · 707 阅读 · 0 评论 -
邻接表的构建、DFS、BFS搜索
接着上次的文章“图的构建(邻接链表法)”,邻接链表法构建图相对来说比较简单,并且遍历起来也相对简单,但是要是动态添加图的节点和图的边,则是实在不方便,不过现在不管那么多,今天的主题是遍历。 - 有另外一种图的构建方法,叫做十字链表法,插入删除比较方便,但是相对来说比较复杂,改天闲着木事的再搞。(其实主要原因是因为三四年前写的代码,现在翻出来了,现成的,尼玛现在让我从头写那么复杂的数据结构,死的转载 2016-12-29 18:14:01 · 613 阅读 · 0 评论 -
堆排序原理及算法实现(最大堆)
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>转载 2016-12-28 09:35:02 · 623 阅读 · 0 评论 -
平衡二叉树模板
#include #include #include #include using namespace std;struct node{ int ndata; //记录关键字数值 node *l,*r; int nheight; //平衡因子};int height(node* p) //返回树p的深原创 2016-12-21 07:43:42 · 720 阅读 · 0 评论 -
邻接表存储图利用BFS遍历
//今天上机写的邻接表存储图利用BFS遍历:#include#include#include#includeusing namespace std;struct node//存节点所连接的点{ int id; node *next;};struct list//存各个节点的顶点值{ int data; node *first;}AdjList[原创 2016-12-12 19:07:06 · 622 阅读 · 0 评论 -
树结构练习——判断给定森林中有多少棵树-并查集
#include #include #include int vis[100002];int find(int x){ int f=x,i; while(vis[f] != f) { f=vis[f]; } while(x != vis[x]) { i=vis[x]; vis[x]=f;原创 2016-12-04 03:02:46 · 412 阅读 · 0 评论 -
sdut 数据结构实验之二叉树六:哈夫曼编码
#include #include #include #include using namespace std;int main(){ char s[10000]; while(scanf("%s",s)!=EOF) { priority_queue ,greater > Q;//利用优先队列,从小到大排序 int len原创 2016-12-04 02:41:16 · 1690 阅读 · 2 评论 -
赫夫曼编码长度计算问题?
网上例题:一组字符(a,b,c,d)在文中出现的次数分别为(7,6,3,5),字符'd'的哈夫曼编码的长度为?题解:首先构造huffman树每一步都将所有数字排序方法如下:1:3 5 6 72:6 7 8/ \3 53:8 13/ \ / \3 5 6 74:21/ \8 13/ \ / \3 5 6 7所以构造哈原创 2016-12-04 02:37:51 · 9873 阅读 · 0 评论 -
赫夫曼编码
http://blog.youkuaiyun.com/webzhuce/article/details/53105831原创 2016-12-04 02:04:10 · 356 阅读 · 0 评论 -
sdut 图的深度遍历
图的深度遍历Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。Input输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k...原创 2016-12-02 02:59:11 · 663 阅读 · 0 评论 -
sdut 二叉排序树
二叉排序树Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;原创 2016-12-02 02:35:09 · 594 阅读 · 0 评论 -
树结构练习——排序二叉树的中序遍历
树结构练习——排序二叉树的中序遍历Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的原创 2016-12-02 02:23:26 · 521 阅读 · 0 评论 -
sdut Message Flood
D - Message FloodTime Limit: 1500 MS Memory Limit: 65536 KB 64bit IO Format: %lld & %lluDescriptionWell, how do you feel about mobile phone? Your answer would probably be原创 2016-12-02 02:11:27 · 305 阅读 · 0 评论 -
算术表达式的前缀式、中缀式、后缀式相互转换
中缀表达式(中缀记法)中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术表示方法。虽然人的大脑很容易理解与分析中缀表达式,但对计算机来说中缀表达式却是很复杂的,因此计算表达式的值时,通常需要先将中缀表达式转换为前缀或后缀表达式,然后再进行求值。对计算机来说,计算前缀或后缀表达式的值非常简单。前缀表达式(前缀记法、波兰式)前转载 2016-11-28 21:01:06 · 27110 阅读 · 0 评论 -
最简逆波兰模板
#include #include using namespace std; double exp() { char a[10]; scanf("%s",a);//注意scanf取入字符串遇到‘\0’停止 switch(a[0]){ case '+':return exp()+exp(); case '-':return exp(原创 2016-11-28 20:56:11 · 340 阅读 · 0 评论 -
sdut 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
第一次写BFS的题,从开始一脸懵逼到慢慢分析,期间没有看书没查博客,自己安静的做了四十分钟终于做出来了,满满的成就感,我很水,但是我很努力,Mr杰要努力!#include#include#include#includeusing namespace std;int map[1000][100];queue q;int k,m,t,u,v,to[1000],vis[1000];v原创 2016-11-23 16:43:34 · 444 阅读 · 0 评论 -
数据结构实验之数组三:快速转置
#include#includestruct node{ int x,y,v;}a[100000];int cmp(node a,node b){ return a.x<b.x;}int main(){ int m,n,t; while(~scanf("%d%d%d",&m,&n,&t)) { for(int i=0;i<t原创 2016-11-23 12:55:37 · 914 阅读 · 0 评论