SDUT
innutritious
我是fw。
展开
-
SDUT 数据结构之图论 从起点到终点的最短步数(BFS)
Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道到达近卫军团展开攻击;如果可以的话,最少需要经过多少通道。由于n的值比较大(n<=1000),于是巫妖王找到了擅长编程的原创 2020-11-29 17:31:17 · 232 阅读 · 0 评论 -
SDUT 数据结构之图论 迷宫探索
Description有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?Input连续T组数据输入,每组数据第一行给出三个正整数,分别表示地下迷宫的结点数N(1 < N <= 1000)、边数M(M <= 3000)和起始结点编号S,随后M行对应M条边,每行给出一对正整数,表示一条边相关联的两个顶点的编号。Output若可以点亮所有结点的灯,则输出从S开始并以S结束的序列,序列中相邻的原创 2020-11-29 17:04:14 · 169 阅读 · 0 评论 -
SDUT 数据结构之图论 判断可达性
Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道到达近卫军团展开攻击。由于n的值比较大(n<=1000),于是巫妖王找到了擅长编程的你 =_=,请你帮他解决这个问题,否原创 2020-11-29 16:43:17 · 124 阅读 · 0 评论 -
SDUT 数据结构之图论 基于邻接矩阵的BFS
Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)Input输入第一行为整数n(0< n <100),表示数据的组数。对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起始顶点。下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。Output输出有n行,原创 2020-11-29 16:05:42 · 113 阅读 · 0 评论 -
SDUT 数据结构之图论 图的深度遍历
B - 数据结构实验之图论二:图的深度遍历Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。Input输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。Output输出有n行,对应n组输出,每行为用空格隔开的原创 2020-11-28 15:36:44 · 137 阅读 · 0 评论 -
SDUT数据结构之二叉树:(先序中序)还原二叉树
D - 数据结构实验之二叉树四:(先序中序)还原二叉树Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。Output输出一个整数,即该二叉树的高度。SampleInput9ABDFGHIECFDHGIBEACOutput5#include原创 2020-11-16 19:05:43 · 135 阅读 · 0 评论 -
SDUT 数据结构之串:学密码学一定得学程序
Description曾经,ZYJ同学非常喜欢密码学。有一天,他发现了一个很长很长的字符串S1。他很好奇那代表着什么,于是神奇的WL给了他另一个字符串S2。但是很不幸的是,WL忘记跟他说是什么意思了。这个时候,ZYJ不得不求助与伟大的ZP。ZP笑了笑说,这个很神奇的,WL的意思是只要你找到她给你的字符串在那个神奇的字符串的位置,你就会有神奇的发现。ZYJ恍然大悟,原来如此,但是悲剧来了,他竟然不知道怎么找。。。。是的,很囧是不是。所以这时候就需要化身为超级玛丽亚的你现身了,告诉他吧。。。。。。Inp原创 2020-11-06 20:35:33 · 174 阅读 · 0 评论 -
SDUT 数据结构之串:字符串连接
D - 串结构练习——字符串连接Description给定两个字符串string1和string2,将字符串string2连接在string1的后面,并将连接后的字符串输出。连接后字符串长度不超过110。Input输入包含多组数据,每组测试数据包含两行,第一行代表string1,第二行代表string2。Output对于每组输入数据,对应输出连接后的字符串,每组输出占一行。SampleInput123654abssfgOutput123654abssfg#incl原创 2020-11-04 18:24:09 · 481 阅读 · 0 评论 -
SDUT数据结构之串:KMP简单应用
A - 数据结构实验之串一:KMP简单应用Description给定两个字符串string1和string2,判断string2是否为string1的子串。Input输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证不出现空格。Output对于每组输入数据,若string2是string1的子串,则输出string2在string1中的位置,若不是,输出-1。原创 2020-11-04 18:11:25 · 87 阅读 · 0 评论 -
SDUT 数据结构之串:KMP应用
数据结构实验之串三:KMP应用Description有n个小朋友,每个小朋友手里有一些糖块,现在这些小朋友排成一排,编号是由1到n。现在给出m个数,能不能唯一的确定一对值l和r(l <= r),使得这m个数刚好是第l个小朋友到第r个小朋友手里的糖块数?Input首先输入一个整数n,代表有n个小朋友。下一行输入n个数,分别代表每个小朋友手里糖的数量。之后再输入一个整数m,代表下面有m个数。下一行输入这m个数。Output如果能唯一的确定一对l,r的值,那么输出这两个值,否则输出-1原创 2020-11-04 18:04:11 · 106 阅读 · 0 评论 -
SDUT栈与队列之refresh的停车场
K - 数据结构实验之栈与队列十一:refresh的停车场Descriptionrefresh最近发了一笔横财,开了一家停车场。由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多。当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优先进入停车场,而且停车场的结构要求只出去的车辆必须是停车场中最后进去的车辆。现告诉你停车场容量N以及命令数M,以及一些命令(Add num 表示车牌号为num的车辆要进入停车场或便道,Del 表示停车场中出去了一辆车,Out 表示便道最前面的车原创 2020-10-31 17:32:57 · 70 阅读 · 0 评论 -
SDUT数据结构栈与队列之走迷宫
J - 数据结构实验之栈与队列十:走迷宫Description一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。Input第一行一个整数T 表示有T 组测试数据。(T <= 110)对于每组测试数据:第一行两个整数n, m,表示迷宫有n * m 个格子。(1 <= n, m <= 6, (n, m) !=(1, 1) ) 接下来n 行,每行原创 2020-10-31 16:08:26 · 121 阅读 · 1 评论 -
SDUT数据结构栈与队列之行编辑器
I - 数据结构实验之栈与队列九:行编辑器Description一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接受一个字符即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现有误时可以及时更正。例如,当用户发现刚刚键入的一个字符是错的时,可补进一个退格符"#",以表示前一个字符无效; 如果原创 2020-10-31 15:11:45 · 103 阅读 · 0 评论 -
SDUT 数据结构栈与队列之下一较大值(二)
Time Limit: 150 ms Memory Limit: 25000 KiBSubmit Statistic DiscussProblem Description对于包含n(1<=n<=100000)个整数的序列,对于序列中的每一元素,在序列中查找其位置之后第一个大于它的值,如果找到,输出所找到的值,否则,输出-1。Input输入有多组,第一行输入t(1<=t<=10),表示输入的组数;以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依次输入本组的n原创 2020-10-22 20:16:52 · 93 阅读 · 0 评论 -
SDUT 数据结构链表之数组操作
#include <stdio.h>#include <stdlib.h>struct node{ int data;struct node *next;};struct node *head,*tail;void creat(int n);void right(struct node *head,int a,int b);void delet(struct node *head,int a);void change(struct node *head,i.原创 2020-10-11 09:01:15 · 166 阅读 · 0 评论 -
SDUT 字符数组之字符统计2
#include <stdio.h>#include <stdlib.h>int main(){ char s[101]; int i; while (gets(s)!=NULL) { int a[130]={0}; for (i=0;s[i]!='\0';i++) { if (s[i]!=' ') { a[s[i]].原创 2020-09-27 23:04:29 · 689 阅读 · 5 评论 -
SDUT 字符数组之全字母句
ASCII码表中控制字符对应的十进制数范围:0~127可显示字符对应的十进制数范围:32~126其中,a对应97,A对应65#include <stdio.h>#include <stdlib.h>int main(){ char s[101]; int i,f; while (gets(s)!=NULL) { int n[130]={0}; for (i=0;s[i]!='\0';i++)原创 2020-09-27 22:45:00 · 508 阅读 · 0 评论 -
SDUT 二维数组之鞍点计算
#include <stdio.h>#include <stdlib.h>int main(){ int i,j,n,m,k,h,max,min,z,p; int a[11][11]; while (scanf("%d%d",&m,&n)!=EOF) { p=0; for (i=0;i<=m-1;i++) { for (j=0;j<=n-1;j+.原创 2020-08-04 11:14:44 · 202 阅读 · 0 评论 -
SDUT 指针之又见回文
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char a[100001],s[100001]; int i,j,z,len,p; while (gets(a)&&strcmp(a,"2013")!=0) { z=0;p=1; memset(s,0,100001*sizeof(char)); .原创 2020-08-04 11:05:58 · 649 阅读 · 0 评论 -
SDUT 二维数组之杨辉三角
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,j; int a[31][31]; while (scanf("%d",&n)!=EOF&&n) { a[1][1]=1; for (i=2;i<=n;i++) { a[i][1]=1;a[i-1][i]=0; .原创 2020-08-03 12:08:56 · 421 阅读 · 0 评论 -
SDUT 二维数组之矩阵转置
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,j,t,a[101][101]; scanf("%d",&n); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { scanf("%d",&a[i][j]); } } for (i=1.原创 2020-08-03 12:06:12 · 677 阅读 · 0 评论 -
SDUT 结构体、共用体和枚举之共用体练习
#include <stdio.h>#include <stdlib.h>#include <string.h>union un{ int in;double dou;char cha[20];};struct str{ char type[20];union un date;}stu[100001];int main(){ int n,m,x,i; scanf("%d%d",&n,&m); fo.原创 2020-07-14 17:26:25 · 214 阅读 · 0 评论 -
SDUT 结构体、共用体和枚举之选夫婿1
#include <stdio.h>#include <stdlib.h>struct stud{ char name[21];int h,w;}p[1001],t,s[1001];int main(){ int n,i,j,a,b,c,d,m=0; scanf("%d",&n); for (i=1;i<=n;i++) { scanf("%s%d%d",p[i].name,&p[i].h,&..原创 2020-07-14 14:30:49 · 203 阅读 · 0 评论 -
SDUT 结构体、共用体和枚举之小I选宾馆
#include <stdio.h>#include <stdlib.h>struct stud{ int b,c;}s[5001];int main(){ int n,i,k,max,max1; while (scanf("%d",&n)!=EOF) { for (i=1;i<=n;i++) { scanf("%d%d",&s[i].b,&s[i]...原创 2020-07-13 16:37:13 · 215 阅读 · 0 评论 -
SDUT 二维数组之爬山
#include <stdio.h>#include <stdlib.h>int f(int n,int m,int b[101][101]);int main(){ int a[101][101],i,j,n,m,x,y,leiq; while (scanf("%d%d",&n,&m)!=EOF) { for (i=1;i<=n;i++) { for (j=1;j<..原创 2020-07-11 17:16:51 · 270 阅读 · 0 评论 -
SDUT 一维数组之矩阵输出
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,j,a[21],h,z,t,b; scanf("%d",&n); for (i=1;i<=n;i++) { scanf("%d",&a[i]); } for (i=1;i<=n-1;i++) { printf("%d ",a[i]); } printf(".原创 2020-07-11 17:01:07 · 671 阅读 · 0 评论 -
SDUT 一维数组之数组逆序
#include <stdio.h>#include <stdlib.h>int main(){ int j,n,m,z,i,a[101],t; scanf("%d",&n); for (i=1;i<=n;i++) { scanf("%d",&a[i]); } scanf("%d",&m); for (j=1;j<=m;j++) { t=a[n].原创 2020-07-11 14:13:06 · 374 阅读 · 0 评论 -
SDUT 一维数组之数日子
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int year,month,day,d=0,j; scanf("%d",&n); for (j=1;j<=n;j++) { scanf("%d%d%d",&year,&month,&a.原创 2020-07-11 13:08:42 · 218 阅读 · 0 评论 -
SDUT 一维数组之众数
知识点:巧妙地计数方法。#include <stdio.h>#include <stdlib.h>int main(){ int i,n,t,x,max; while (scanf("%d",&n)!=EOF) { int a[1002]={0}; for (i=1;i<=n;i++) { scanf("%d",&x); a[x]++原创 2020-07-06 21:32:25 · 752 阅读 · 0 评论 -
SDUT 函数之计算组合数
#include <stdio.h>#include <stdlib.h>int f(int n,int m);int main(){ int N,i,n,m,t,jg; scanf("%d",&N); for (i=1;i<=N;i++) { scanf("%d%d",&n,&m); if (n<m) { t=n; .原创 2020-07-06 20:50:25 · 842 阅读 · 0 评论 -
SDUT 函数之计算表达式
#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ double x,n,i; scanf("%lf%lf",&x,&n); for (i=1;i<=n;i++) { x=i+x; x=sqrt(x); } printf("%.2lf\n",x); return 0;}.原创 2020-07-06 20:39:30 · 243 阅读 · 0 评论 -
SDUT for循环之九九乘法表
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,j,p; while (scanf("%d",&n)!=EOF) { for (i=1;i<=n;i++) { p=0; for (j=1;j<=i;j++) { p++; .原创 2020-07-06 20:28:50 · 767 阅读 · 0 评论 -
SDUT for循环之完美的素数
#include <stdio.h>#include <stdlib.h>int f(int x);int ff(int x);int main(){ int x; while(scanf("%d",&x)!=EOF) { if (f(x)&&ff(x)) { printf("YES\n"); }else printf("NO\n"); } .原创 2020-07-05 20:18:45 · 544 阅读 · 0 评论 -
SDUT for循环之余弦
#include <stdio.h>#include <stdlib.h>int main(){ int n,i; double x,s,a,p,b; while(scanf("%lf%d",&x,&n)!=EOF) { s=1.0000;a=b=1; for (i=1;i<=n;i++) { if (i%2==0) { .原创 2020-07-05 20:11:37 · 191 阅读 · 0 评论 -
SDUT for循环之水仙花数
#include <stdio.h>#include <stdlib.h>int main(){ int m,n,t,i,p,a,b,c; while (scanf("%d%d",&m,&n)!=EOF) { p=0; if (m>n) { t=m; m=n; n=t; } for.原创 2020-07-05 20:01:12 · 484 阅读 · 0 评论 -
SDUT for循环之打印菱形
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,j,z; scanf("%d",&n); for (i=1;i<=n;i++) { for (j=1;j<=n-i;j++) { printf(" "); } for (z=1;z<=2*i-1;z++) .原创 2020-07-05 19:40:15 · 164 阅读 · 0 评论 -
SDUT for循环之分数序列
#include <stdio.h>#include <stdlib.h>int main(){ int a=2,b=1,i,n; double t,s=0; scanf("%d",&n); for (i=1;i<=n;i++) { t=1.0*a/b; s=s+t; t=a; a=a+b; b=t; } printf("%.6.原创 2020-07-05 19:33:48 · 437 阅读 · 0 评论 -
SDUT for循环之猜糖块
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,s=0; scanf("%d",&n); for (i=0;s<=n;i++) { s=s+i*i; } printf("%d\n",i-2); return 0;}原创 2020-07-05 19:28:07 · 268 阅读 · 1 评论 -
SDUT for循环之圆周率
#include <stdio.h>#include <stdlib.h>int main(){ double s=0,t; int i,n; scanf("%d",&n); for (i=1;i<=n;i++) { t=1.0/(4*i-3)-1.0/(4*i-1); s=s+t; } printf("%.5lf\n",s*4); return 0;}原创 2020-07-05 19:24:41 · 221 阅读 · 0 评论 -
SDUT for循环之绝对值的最大值
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,x,max,fx,fxx,jx,jxx; scanf("%d",&n); scanf("%d",&x); fx=x; if (x<0) { jx=-x; }else jx=x;max=jx; for (i=2;i<=n;i++) { scanf("%d",.原创 2020-07-05 18:11:00 · 274 阅读 · 0 评论