
sdut
sdut训练题
成长的小牛233
不辜负每一份热爱
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树结构练习——判断给定森林中有多少棵树-并查集
#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 · 421 阅读 · 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 · 1710 阅读 · 2 评论 -
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 · 674 阅读 · 0 评论 -
sdut 二叉排序树
二叉排序树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;原创 2016-12-02 02:35:09 · 605 阅读 · 0 评论 -
树结构练习——排序二叉树的中序遍历
树结构练习——排序二叉树的中序遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的原创 2016-12-02 02:23:26 · 531 阅读 · 0 评论 -
sdut Message Flood
D - Message Flood Time Limit: 1500 MS Memory Limit: 65536 KB 64bit IO Format: %lld & %llu Description Well, how do you feel about mobile phone? Your answer would probably be原创 2016-12-02 02:11:27 · 317 阅读 · 0 评论 -
sdut 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
第一次写BFS的题,从开始一脸懵逼到慢慢分析,期间没有看书没查博客,自己安静的做了四十分钟终于做出来了,满满的成就感,我很水,但是我很努力,Mr杰要努力! #include #include #include #include using 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 · 452 阅读 · 0 评论 -
数据结构实验之数组三:快速转置
#include #include struct 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 · 921 阅读 · 0 评论 -
数据结构实验之数组二:稀疏矩阵
#include struct node { int x,y,v; }a[100000]; int main() { int m,n,t; while(~scanf("%d%d%d",&m,&n,&t)) { for(int i=0;i<t;++i) { scanf("%d%d%d",&a[i].x,&a[i]原创 2016-11-23 12:51:21 · 532 阅读 · 0 评论 -
数据结构实验之栈六:下一较大值(二)
#include #include using namespace std; struct node { int data; int next;//记录下一个元素死亡值 int pos;//用来记录每个元素的位置*/ } a[100001],val[100000]; int main() { int t; while(~scanf("%d",&t))原创 2016-11-22 13:08:41 · 584 阅读 · 0 评论 -
数据结构实验之串一:KMP简单应用
#include #include int next[1000000]; char str[1000000],substr[1000000]; void getnext() { int i=0,j=-1; next[0]=-1; while(substr[i]!='\0') { if(j==-1||substr[i]==substr[j])原创 2016-11-21 19:30:44 · 1347 阅读 · 0 评论 -
数据结构实验之排序七:选课名单(卡内存的一道题。。坑)
RE。。。 带更正 #include #include using namespace std; #include #include struct people { char name[100]; int sum_class; int cl[2005]; }a[40000],b[40000]; int cmp(people a,people b) { char原创 2016-11-21 19:07:57 · 796 阅读 · 0 评论 -
数据结构实验之排序二:交换排序
手懒不想写。。。 转自http://blog.youkuaiyun.com/godsight/article/details/52150172 #include using namespace std; int a[100100]; int b[100100]; int cnta,cntb; void qsort(int *p,int n) { if(n<=1)return; int i=转载 2016-11-21 14:07:21 · 886 阅读 · 0 评论 -
交叉排序
#include #include int n; int b[50000],a[50000],c[50000]; int main() { while(~scanf("%d",&n)) { int l=0,p=0; for(int i=1; i<=n; i++) { scanf("%d",&a[i]);原创 2016-11-21 13:19:14 · 449 阅读 · 0 评论 -
数据结构实验之排序六:希尔排序
#include #include int n; int b[50000],a[50000]; void shell(int a[],int dk) { for(int i=dk; i<n; i++) { for(int j=i-dk; j>=0; j-=dk) { if(a[j]>a[j+dk])原创 2016-11-21 13:03:00 · 667 阅读 · 2 评论 -
sdut 数据结构实验之排序三:bucket sort
一开始这种做法超时: #include int b[5000000],a[5000000],n,ans; void merge_sort(int *a,int *b,int x,int y) { if(y-x>1) { int m=x+(y-x)/2;//中间点的坐标 int p=x,q=m,i=x; merge_sort(a,原创 2016-11-21 12:39:28 · 1211 阅读 · 0 评论 -
sdut 数据结构实验之排序五:归并求逆序数
#include #include long long ans; int a[100010],temp[100010]; void merge(int s1,int e1,int s2,int e2) { int p1,p2,p; p=0;p1=s1;p2=s2; while(p1<=e1&&p2<=e2) { if(a[p1]<=a[p2]原创 2016-11-21 12:06:00 · 498 阅读 · 0 评论 -
sdut 双向队列(STL)
dequeq;//定义一个双向队列q,类型为long long q.push_front(a);//将a从队首插入队列 q.push_back(a);//将a从队尾插入队列 q.pop_front();//队首弹掉一个元素 q.pop_back();//队尾弹出一个元素 a=q.front();//返回队首元素 a=q.back();//原创 2016-11-20 17:15:11 · 500 阅读 · 0 评论 -
SDUT 双向队列(队列)
#include #include #include #include using namespace std; int main() { int a[30000],n,m=11000,data; int l=0,r=m,i=0; cin>>n; string str; for(int j=1;j<=n;j++) { cin>>s原创 2016-11-20 11:22:47 · 416 阅读 · 0 评论 -
sdut 数据结构实验之栈四:括号匹配
数据结构实验之栈四:括号匹配 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。 Input 输入数据有多组,处理到文原创 2016-11-17 08:43:19 · 493 阅读 · 0 评论 -
sdut 最少拦截系统
最少拦截系统 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导原创 2016-11-13 21:24:55 · 604 阅读 · 0 评论 -
sdut 懒虫小鑫
懒虫小鑫 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 小鑫是个大懒虫,但是这一天妈妈要小鑫去山上搬些矿石去城里卖以补贴家用。小鑫十分的不开心。不开心归不开心,小鑫还是要做这件事情的。 我们把这个事情简化一下。有n块矿石,设第i块矿石由两个数字wi原创 2016-11-13 21:22:36 · 806 阅读 · 0 评论 -
sdut 马的走法
马的走法 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 在一个4*5的棋盘上,马的初始位置坐标(纵 横)位置由键盘输入,求马能返回初始位置的所有不同走法的总数(马走过的位置不能重复,马走“日”字)。如果马的初始位置坐标超过棋盘的边界,则输出ERROR转载 2016-11-13 21:20:32 · 489 阅读 · 0 评论 -
sdut 活动选择问题
活动选择问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description sdut 大学生艺术中心每天都有n个活动申请举办,但是为了举办更多的活动,必须要放弃一些活动,求出每天最多能举办多少活动。 Input 输入包括多组输入,每组输入第一行为原创 2016-11-13 21:16:00 · 896 阅读 · 0 评论 -
sdut 删数问题
删数问题 Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。 Input 输入有多组 每组包括原始数n,要去掉的数字数s; Output 输出去掉s个数后最小的数 Examp原创 2016-11-13 21:13:47 · 579 阅读 · 0 评论 -
sdut 装船问题
装船问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 王小二毕业后从事船运规划工作,吉祥号货轮的最大载重量为M吨,有10种货物可以装船。第i种货物有wi吨,总价值是pi。王小二的任务是从10种货物中挑选若干吨上船,在满足货物总重量小于等于M的前提下,运走的货物原创 2016-11-13 21:09:28 · 708 阅读 · 0 评论 -
sdut 数字三角形问题
数字三角形问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 对于给定的由n行数字组成的数字三角形,计算从三角形的原创 2016-11-13 21:06:41 · 679 阅读 · 0 评论 -
sdut 青蛙过河
青蛙过河 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 1)一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,石柱L面积只容得下一只青蛙落脚,同样右岸也有一石柱R,石柱R面积也只容得下一只青蛙落脚。 2)有一队青蛙从小到大编号:1,2,…,原创 2016-11-13 20:59:41 · 649 阅读 · 0 评论 -
sdut 汉诺塔系列2
汉诺塔系列2 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。号数大盘子就大。经典的汉诺塔问 题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于 印度传说的一个故事,上原创 2016-11-13 19:57:10 · 804 阅读 · 0 评论 -
sdut 汉诺塔系列1
#include #include using namespace std; int main() {int n; int t; cin>>t; while(t--) { cin>>n; cout<<(long long)pow(3.0,n)<<endl; } return 0; } Time Limit: 1000MS Memory Lim原创 2016-11-13 19:34:08 · 893 阅读 · 0 评论 -
sdut 区间覆盖问题
区间覆盖问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 用i来表示x坐标轴上坐标为[i-1,i]的长度为1的区间,并给出n(1≤n≤200)个不同的整数,表示n个这样的区间。 现在要求画m条线段覆盖住所有的区间, 条件是:每条线段可以任意长转载 2016-11-13 19:32:03 · 487 阅读 · 0 评论 -
链表去重操作-两种方法的实现
#include #include typedef struct list { int data; list *next; }List; void create_list(list *&head,int len) { list *p=head; for(int i=0;i<len;i++) { list *pnew=(list*)malloc原创 2016-11-13 15:31:51 · 6130 阅读 · 0 评论 -
顺序表应用1:多余元素删除之移位算法
顺序表应用1:多余元素删除之移位算法 Time Limit: 1000MS Memory Limit: 650KB Submit Statistic Discuss Problem Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同原创 2016-11-11 12:31:52 · 397 阅读 · 0 评论 -
sdut 走迷宫
走迷宫Time Limit: 1000MS Memory limit: 65536K题目描述一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。输入 第一行一个整数T 表示有T 组测试数据。(T <= 110)对于每组测试数据:第一行两个整数n, m...原创 2016-11-10 01:30:18 · 852 阅读 · 0 评论 -
sdut 取数字问题(深搜,动态规划)
/* 首先看见这题想到的就是DFS但是求的是最短路径因此可以利用BFS,但是BFS学的太渣了,还是用动态规划来试试! dp[i][j]表示走到第i行j列时候的路径 dp[i][j]=min(dp[i-1][j],dp[i][j-1])+a[i][j];但是这样写的缺陷是不能找出最小正整数的路径 #include #include #include using namespac原创 2016-11-10 01:23:24 · 1154 阅读 · 0 评论 -
hdu1176 免费馅饼 动态规划 二维数组实现
免费馅饼 Time Limit: 1000MS Memory Limit: 32768KB Submit Statistic Discuss Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上原创 2016-11-10 00:04:28 · 466 阅读 · 0 评论 -
sdut 最长公共子序列问题
Problem Description 从一个给定的串中删去(不一定连续地删去)0个或0个以上的字符,剩下地字符按原来顺序组成的串。例如:“ ”,“a”,“xb”,“aaa”,“bbb”,“xabb”,“xaaabbb”都是串“xaaabbb”的子串。(例子中的串不包含引号。) 编程求N个非空串的最长公共子串的长度。限制:2 Input 文件第1行是一个整数T,表示测试数原创 2016-11-08 19:57:38 · 1937 阅读 · 1 评论 -
sdut2056不敢死队问题
#include int main( void ) { int n; while(scanf("%d",&n),n) { int i = 0, m=5, p,ans,l=0; // scanf("%d", &n); //n总人数,m步长 while( ++i <= n ) { p = i * m; while (p原创 2016-11-06 15:16:21 · 682 阅读 · 0 评论 -
sdut2057金牌、银牌、铜牌
#include #include #include struct node { char name[25]; int data; struct node *next; }; void pd(struct node *&p,int bj) { while(p && p->data == bj) { printf(" %s",p->n原创 2016-11-06 15:15:26 · 858 阅读 · 0 评论 -
sdut2053整理音乐
#include #include using namespace std; struct st { char name[10]; int score; }; int cmp(struct st a,struct st b) { return a.score>b.score; } int main() { struct st q[10000]; int s,原创 2016-11-06 15:14:50 · 450 阅读 · 0 评论