求救贴 女大学生卡死在学校oj题上 求助求助 Floyd-Warshall算法 5C

题目


Description
Floyd-Warshall算法是求一个图中任意两点之间的最短路径长度的算法。

给出一个有向图,请计算图中任意两个顶点之间的最短路径,及其长度。

Input
单测试用例。

第一行是该有向图的 顶点数n ( 0 < n < 500 )(注:图有n个顶点,首个顶点的编号是0。 )

第二行是该有向图的 边数e ( 0 < e < n×n )

接下来e行,每行三个整数 i 、j 和 k,表示 顶点i 到顶点j 有一条弧,长度为k。 ( 0 ≤ i, j < n )

(注:输入数据中不含 自环 。)

接下来一个正整数Q,表示有Q个询问。

接下来Q行,每行两个非负整数u和v,表示询问 顶点u 到 顶点v 的最短路长度,以及该最短路径是怎么走的。

Output
对每个询问输出三行。

第一行是一个整数,表示顶点u到顶点v的最短路长度。如果不可达,输出INF ,且不用输出第二行。如果路径长度为0,也不用输出第二行。

第二行是若干个整数,每个整数后面跟一个空格,表示顶点u 到顶点v 的最短路的顶点序列。

第三行是一个空行,仅起分隔作用。

Sample Input
3
5
0 1 4
0 2 11
1 0 6
1 2 2
2 0 3
3
0 2
0 1
1 0

Sample Output
6
0 1 2

4
0 1

5
1 2 0

Hint
样例如下图所示

1397_1.png

注意:本题是special judge,但validator没有写得很完美。你的代码输出时如果没有间隔的空行,PE会判为WA


以下是本人的代码
#include
#include
#define MAX 505
typedef struct
{
int edges[MAX][MAX];
int n,e;
}MGraph;
MGraph G;
int D[MAX][MAX],path[MAX][MAX];
int inf=99999999;
void Path(int u,int v)
{
int k;
k=path[u][v];
if(k==-1)
return ;
Path(u,k);
printf("%d ",k);
Path(k,v);
}

void Dispath(int u,int v)
{
if(D[u][v]==inf||D[u][v]==0)
{
printf("INF\n");
}
else
{
printf("%d\n",D[u][v]);
printf("%d ",u);
Path(u,v);
printf("%d\n",v);
}

}
void Floyd(MGraph G)
{
int Q,u,v;
int i,j,k;
for(i=0;i {
for(j=0;j {
D[i][j]=G.edges[i][j];
path[i][j]=-1;
}
}
/*for(i=0;i {
for(j=0;j printf("%d ",D[i][j]);
printf("\n");
}
printf("\n");*/
for(k=0;k {
for(i=0;i {
for(j=0;j if(D[i][k](D[i][k]+D[k][j]))
{
D[i][j]=D[i][k]+D[k][j];
//printf("%d ",D[i][j]);
path[i][j]=k;
}}
}

/*for(i=0;i<G.n;i++)
{
    for(j=0;j<G.n;j++)
        printf("%d ",D[i][j]);
    printf("\n");
}
printf("\n");
for(i=0;i<G.n;i++)
{
    for(j=0;j<G.n;j++)
        printf("%d ",path[i][j]);
    printf("\n");
}
system("pause");*/

scanf("%d",&Q);
for(i=0;i<Q;i++)
{
    scanf("%d %d",&u,&v);
    Dispath(u,v);
    printf("\n");
}

}
int main()
{
int i,j,k,t;
scanf("%d",&G.n);
scanf("%d",&G.e);
for(i=0;i<G.n;i++)/////////////ÁÚ½Ó¾ØÕó³õʼ»¯
for(j=0;j<G.n;j++)
{
if(i==j)
G.edges[i][j]=0;
else
G.edges[i][j]=inf;
//printf("%d ",G.edges[i][j]);

    }
//printf("\n");
//printf("%d",G.e);
//printf("%d\n",INF);
for(t=0;t<G.e;t++)
{
    //system("pause");
    scanf("%d %d %d",&i,&j,&k);
    G.edges[i][j]=k;

}
/*for(i=0;i<G.n;i++)
{
    for(j=0;j<G.n;j++)
        printf("%d ",G.edges[i][j]);
    printf("\n");
}
printf("\n");*/
//printf("text\n");
Floyd(G);

return 0;

}

4个回答

女大学生?你男票呢,不能帮你?姐姐是可怜你,给你个链接,自己看吧 http://blog.csdn.net/ll365594480/article/details/6792096

helloyourkey
helloyourkey 此处我竟然笑了很久
2 年多之前 回复

#include
int n,e,q,p;
int G[501][501],dis[501][501],next[501][501];
const int oo=1<<30;
int main()
{
scanf("%d%d",&n,&e);
int f,t,c,i,j,k;
for(i=0;i<500;i++)
for(j=0;j<500;j++)
dis[i][j]=G[i][j]=oo,next[i][j]=0;
for(i=0;i<e;i++)
{
scanf("%d%d%d",&f,&t,&c);
dis[f][t]=G[f][t]=c;
next[f][t]=t;
}
for(i=0;i<n;i++)
{
dis[i][i]=0;
next[i][i]=i;
}
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(dis[i][k]+dis[k][j]<dis[i][j])
{
dis[i][j]=dis[i][k]+dis[k][j];
next[i][j]=next[i][k];
}
}
scanf("%d",&q);
for(i=0;i<q;i++)
{
scanf("%d%d",&f,&t);
if(dis[f][t]==oo) printf("INF\n");
else
{
printf("%d\n",dis[f][t]);
p=f;
while(p!=t)
{
printf("%d ",p);
p=next[p][t];
}
printf("%d ",t);
printf("\n");
}
printf("\n");
}
return 0;
}

 #include<cstdio>
int n,e,q,p;
int G[501][501],dis[501][501],next[501][501];
const int oo=1<<30;
int main()
{
    scanf("%d%d",&n,&e);
    int f,t,c,i,j,k;
    for(i=0;i<500;i++)
        for(j=0;j<500;j++)
            dis[i][j]=G[i][j]=oo,next[i][j]=0;
    for(i=0;i<e;i++)
    {
        scanf("%d%d%d",&f,&t,&c);
        dis[f][t]=G[f][t]=c;
        next[f][t]=t;
    }
    for(i=0;i<n;i++)
    {
        dis[i][i]=0;
        next[i][i]=i;
    }
    for(k=0;k<n;k++)
    {
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                if(dis[i][k]+dis[k][j]<dis[i][j])
                {
                    dis[i][j]=dis[i][k]+dis[k][j];
                    next[i][j]=next[i][k];
                }
    }
    scanf("%d",&q);
    for(i=0;i<q;i++)
    {
        scanf("%d%d",&f,&t);
        if(dis[f][t]==oo) printf("INF\n");
        else
        {
            printf("%d\n",dis[f][t]);
            p=f;
            while(p!=t)
            {
                printf("%d ",p);
                p=next[p][t];
            }
            printf("%d ",t);
            printf("\n");
        }
        printf("\n");
    }
    return 0;
}

这样应该可以了,具体细节请自己修改

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
我在oj上做题遇到了障碍,请教大佬

ASCII码排序: 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格。 Output 对于每组输入数据,输出一行,字符中间用一个空格分开。 Sample Input qwe asd zxc Sample Output e q w a d s c x z 运行结果 asd a d s qwe q w e e w 我的源代码: #include<stdio.h> void main() { char a,b,c,t; while(scanf("%c%c%c\n",&a,&b,&c)!=EOF) { if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf("%c %c %c\n",a,b,c); } }

在vs2017上运行没有问题,在学校的oj上(gcc编译器)发生段错误,不知道错误点在哪里,求点明

在vs2017上运行没有问题,在学校的oj上(gcc编译器)发生段错误,下面的代码是为了解决那个Biggest Number那个题目。小白一枚,实在找不到错误点,望大佬点明。 ``` #include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> #include<string.h> char temp[40]; int high, wide; void DFS(char all[][15],int x,int y,char number[],int len) { number[len] = all[x][y]; all[x][y] -= 10; if (x + 1 < high && all[x + 1][y] != '#'&&all[x + 1][y] > '0') { DFS(all, x + 1, y, number, len+1); all[x + 1][y] += 10; } if (x - 1 >= 0 && all[x - 1][y] != '#'&&all[x - 1][y] > '0') { DFS(all, x - 1, y, number, len+1); all[x - 1][y] += 10; } if (y + 1 < wide && all[x][y + 1] != '#'&&all[x][y + 1]>'0') { DFS(all, x, y + 1, number, len+1); all[x][y + 1] += 10; } if (y - 1 >= 0 && all[x][y - 1] != '#'&&all[x][y - 1] > '0') { DFS(all, x, y - 1, number, len+1); all[x][y - 1] += 10; } if (strlen(temp) == strlen(number)) { if (strcmp(number, temp) > 0) strcpy(temp, number); number[len] = '\0'; } else if (strlen(temp) < strlen(number)) { strcpy(temp, number); number[len] = '\0'; } else number[len] = '\0'; } int main() { char all[15][15]; char number[40]; for (int i = 0; i < 25; i++) { memset(all, 0, 225); memset(temp, 0, 40); scanf("%d %d", &high, &wide); if (high == 0 && wide == 0) break; getchar(); getchar(); for (int i = 0; i < high; i++) { for (int j = 0; j < wide; j++) all[i][j] = getchar(); getchar(); } for (int i = 0; i < high; i++) for (int j = 0; j < wide; j++) if (all[i][j] != '#') { memset(number, 0, 40); int len = 0; DFS(all, i, j, number, len); all[i][j] += 10; } printf("%s \n", temp); } return 0; } ```

OJ上题目总是Output Limit Exceeded, 有原题, 有我的代码,求大神赐教。

OJ上题目总是Output Limit Exceeded(基础新手题), 有原题, 有我的代码,求大神赐教。 谢谢 题目: ----------------------------------------------------------------------------------------------------------------------------- Description 某多项式(polynomial)的描述如下: 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 现在请你求出该多项式的前n项的和。 Input 输入数据由2行组成,首先是一个正整数T,表示测试用例的个数。 第二行包含T个正整数,对于每一个整数n( n < 1000 ),求该多项式的前n项的和。 Output 对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留8位小数。 Sample Input 2 1 2 Sample Output 1.00000000 0.50000000 ---------------------------------------------------------------------------------------------------------------------------- #include <stdio.h> int main(void){ double item, sum, i, fl, c, n; while(scanf("%lf", &n)!=EOF){ for(c=1; c<=n; c++){ scanf("%lf", &c); sum=0, fl=1.0; for(i=1; i<=c; i++){ item=1.0/i; item=item*fl; fl=-fl; sum=sum+item; } printf("%.8f\n", sum); } } return 0; }

在牛客网oj上的一道题,本地测试正确,在网上怎么也不对,求解答(北理研究生复试题,学生查询问题)

**编程问题:** 题目描述 输入n个学生的信息,每行包括学号、姓名、性别和年龄,每一个属性使用空格分开。最后再输入一学号,将该学号对应的学生信息输出。<br /> 输入描述:<br /> 测试数据有多组,第一行为样例数m。对于每个样例,第一行为学生人数n(n不超过20),接下来n行每行4个整数分别表示学号、姓名、性别和年龄,最后一行表示查询的学号。<br /> 输出描述:<br /> 输出m行,每行表示查询的学生信息,格式参见样例。<br /> 示例1<br /> 输入<br /> 1<br /> 4<br /> 1 李江 男 21<br /> 2 刘唐 男 23<br /> 3 张军 男 19<br /> 4 王娜 女 19<br /> 2<br /> 输出<br /> 2 刘唐 男 23<br /> **我的代码: ** ``` #include<iostream> #include <stdio.h> using namespace std; int N;//学生数目 int Circle; //循环轮数 char data[100][100]; int searchN; //需要查询的id int main() { cin>>Circle; for(int j=0;j<Circle;j++){ int m; cin>>N; for(int i=0; i<N; i++) { fflush(stdin); //在前面添加清空缓冲区 cin.getline(data[i],1024); } cin>>searchN; for(int i=0; i<N; i++) { if(data[i][0]-'0'==searchN) { printf("%s", data[i]); } } } } ``` 网上oj的结果是一个样例也不通过...wsl,求大佬解答<br /> **本地测试截图:**<br /> ![图片说明](https://img-ask.csdn.net/upload/201906/07/1559921966_766126.png) **在线测试截图: **<br /> ![图片说明](https://img-ask.csdn.net/upload/201906/07/1559922007_423730.png)<br /> 求助,大家看一下我的代码有哪里可能被判错的地方吗??

oj的练习题:多输入输出练习1

请教大家一个问题: 题目是这样的: ![图片说明](https://img-ask.csdn.net/upload/202002/26/1582718661_948414.png) 我的代码是这样的: ``` #include<iostream> using namespace std; int main() { int i, j,a[3][10]; for (i = 0; i < 3; i++) { for (j = 0; ; j++) { cin >> a[i][j]; if (a[i][j] != 0) continue; else break; } } int max = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 10; j++) { if (max >= a[i][j]) continue; else max = a[i][j]; if (a[i][j] != 0) continue; else break; } cout << max << endl; max = 0; } return 0; } ``` 在vs上运行成功,但是oj上显示“答案错误”,可以帮我看看是什么问题吗? and 可以告诉我一点oj的技巧就更好了,我经常在vs上运行成功,但是oj过不了。

oj 题聪明的员工怎么做?

题目描述 小新是一家公司的员工,每个员工都有一个编号。每天上班时,老板都让员工排成一个队伍。但是,每次老板都对队伍的顺序不满意,于是老板重新编排新的队伍顺序,然后让员工按顺序排好。老板有特别要求,队伍每次只能将其中一个人移动到队头。聪明的小新很快想到最少移动次数使得队伍的顺序跟老板指定的顺序一样。愚蠢的老板不清楚小新是怎么做到的,聪明的你编写程序告诉ta。 输入 第一行是T(T<=10),代表数据的组数。 对于每组数据,第1行是一个整数n(2<=n<=30),代表员工的数量。第2行有n个数,代表员工一开始的队伍顺序的编号。第3行有n个数,代表老板要求的队伍顺序的编号。员工的编号为s(1<=s<=n),且不会重复。 输出 输出最少的移动次数。 样例输入 2 4 2 1 3 4 1 2 3 4 3 2 1 3 3 1 2 样例输出 1 2

大一新生 学校oj上的问题 实在不知道哪里错了 大佬们能帮我解决一下吗?

``` #include<stdio.h> #include<string.h> int main() { int len2,len1,i,max,n; while(scanf("%d",&n)!=EOF) { char s1[2000]={0},s2[1000]={0}; gets(s1); gets(s2); len1=strlen(s1); max=0; for(i=1;i<len1;i++)//寻找一串字符中最大的字符 { if(s1[i]>s1[max]) max=i; } len2=strlen(s2); for(i=len1-1;i>=max+1;i--)//将s1字符串中最大字符后面的字符移动len2个位置 { s1[i+len2]=s1[i]; } for(i=max+1;i<=max+len2;i++)//将s2中的字符插入到s1当中 { s1[i]=s2[i-max-1]; } puts(s1); } return 0; } ``` 问题:给定两个字符串s和t,在s字符串中的最大字符后边插入字符串t。 输入:测试数据有多组,每组包含两个字符串s和t,分别占两行,均不超过100个字符。 输出:对于每组测试数据,输出插入后的新字符串,单独占一行。若有多个最大字符,则插在第一个之后。 我试了很多组数据都对了(用的dev c++),但是在学校的oj上还是wa

代码在VC上运行正常,在OJ上运行失败

1.问题描述: 在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚(牛棚的总数S:1<= S<=200)没有住满。 剩下的牛一个紧挨着另一个被排成一行安置在有屋顶的牛棚来过夜。 所以有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度,且宽度设为1。 因为有些门遗失,农民约翰需要架起新的木板作为门。 他的新木材供应者将会供应他任何他想要的长度,但是供应者只能提供有限数目的木板。 农民约翰想将他购买的木板总长度减到最少。 计算拦住所有有牛的牛棚所需木板的最小总长度。 输出所需木板的最小总长度作为的答案。 说明:拦住一个牛棚需要的木板长度为1,拦住相邻的三个牛棚则需要木板长度为3。 比如有牛的牛棚编号为: 3 5 8 10 11 并且只能使用两块木板, 则第一块木板从3到5,长度为3, 第二块木板从8到11,长度为4, 因此,需要木板的总长度为7。 2.输入说明: 第 1 行: M 和 C(用空格分开) 第 2 到 C+1行: 每行包含一个整数,表示牛所占的牛棚的编号。 其中: 可能买到的木板最大的数目:M(1<= M<=50); 需要安置的牛的数目C(1<= C <=S) 安置后牛所在的牛棚的编号stall_number(1<= stall_number <= S)。 3.自编代码 ``` int main(){ int m,c,t,n,min; int i,j,k=0; int s[201],a[120]; scanf("%d%d",&m,&c); for(i=0;i<=200;i++){ s[i]=0; } for(i=0;i<c;i++){ scanf("%d",&n); s[n]=1; } for(i=1;s[i]==0;i++); for(t=200;s[t]==0;t--); min=t-i+1; while(i<=t){//找出i到t内所有没有牛的位置长度 j=0; if(s[i]==0){ while(s[i+j]==0){ j++; } a[k++]=j; } i=i+j+1; } for(i=0;i<k-1;i++){//对位置长度进行从大到小排序 for(j=0;j<k-i-1;j++){ if(a[j]<a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } i=0; while(m>1 && i<k){ min=min-a[i]; m--; i++; } printf("%d\n",min); return 0; } ``` 4.运行结果: OJ上的结果: ![图片说明](https://img-ask.csdn.net/upload/202003/26/1585195124_271585.png) VC上的结果: ![图片说明](https://img-ask.csdn.net/upload/202003/26/1585195148_407920.png)

上海交大oj题目----二哥种花生

![题目](https://img-ask.csdn.net/upload/201604/08/1460108427_914608.png) 求教求解答,跪谢

为什么一道简单的oj题一直wa啊,我人傻了,哪个大佬帮瞅两眼呗。

题目如下 ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572964362_10495.png) 就是找数字,能被7除不能被4除,还要尽可能小。 我的代码: ``` #include<stdio.h> #include<stdlib.h> #include<iostream> //#pragma warning(disable:) using namespace std; int is(float m) { if (((int)m) == m) return 1; else return 0; } int lucky(float m) { if ((is(m / 7))==1 && (is(m / 4))==0) { return (int)m; } float p = ((int)(m / 7))+1.0f; while (is((p*7)/4)) { p++; } if (p > 14) { return (int)m; } return (int)p * 7; } int main() { int num =0, m = 1, intput[110] = { 0 },output[110] = {0}; cin >> num; intput[0] = num; while (num>=1) { cin >> intput[m]; output[m-1] = lucky(intput[m]); num--; m++; } num = m-1; m = 0; while (m < num) { cout << output[m] << endl; m++; } system("pause"); return 0; } ``` 输入和输出的方式改了又改,一直wa,很烦,谁能指点下啊,感谢感谢 ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572964783_692874.png) 这是程序运行结果截图

求助大神~自己编译器运行没有问题,oj却显示运行错误

题目描述 小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。 小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,他记录了这艘船到达的时间ti (单位:秒),船上的乘 客数星ki,以及每名乘客的国籍 x(i,1), x(i,2),…,x(i,k);。 小K统计了n艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的24小时(24小时=86400秒)内所有乘船到达的乘客来自多少个不同的国家。 形式化地讲,你需要计算n条信息。对于输出的第i条信息,你需要统计满足 ti - 86400 < tp <= ti的船只p,在所有的x(p,j)中,总共有多少个不同的数。 输入格式: 第一行输入一个正整数n,表示小K统计了 n艘船的信息。 接下来n行,每行描述一艘船的信息:前两个整数ti和ki分别表示这艘船到达海港的时间和船上的乘客数量,接下来ki个整数x(i,j)表示船上乘客的国7。 保证输入的ti是递增的,单位是秒;表示从小K第一次上班开始计时,这艘船在第 ti 秒到达海港。 其中表示所有的ki的和。 输出格式: 输出n行,第i行输出一个整数表示第i艘船到达后的统计信息。 ![图片说明](https://img-ask.csdn.net/upload/201710/24/1508838562_212619.png) #include <cstdio> int n,t[11000],k[11000],a=0,x[11000][33000],s=0,y[11000],c; int main(){ scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d%d",&t[i],&k[i]); for(int j=1;j<=k[i];++j)scanf("%d",&x[i][j]); } for(int i=1;i<=n;++i){ for(int j=i;t[j]>t[i]-86400;--j){ for(int l=1;l<=k[j];++l){ for(int u=1;u<=a;++u)if(x[j][l]!=y[u])++s; if(s==a)y[++a]=x[j][l]; s=0; } } printf("%d\n",a); a=0; } return 0; }

C++OJ题 数字归类 求解

题目描述 一个数里面若含有数字1,则归类到1字类,含有数字2,则归类到2字类,所以一个数可能同时归类到不同的数字类。对于0、1、2、3、4、5、6、7、8、9这十个数字类,因研究需要,急于想知道某一堆数中,究竟归类到这些数字类的个数。 样例输入 123 456 175 2 61 9998 12 5053 382 样例输出 0: 1 1: 4 2: 4 3: 3 4: 1 5: 3 6: 2 7: 1 8: 2 9: 1 提示 注意:输出结果中冒号后面有空格

在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?

在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?

OJ上一道字母大小写转换的题

OJ上的一道题,题目是:cAPS lOCK ![图片说明](https://img-ask.csdn.net/upload/201507/19/1437277235_164047.png) 我写的代码链接:http://codepad.org/JrJrOGxQ 自己在编译器上编译时 没发现有什么错,但是在OJ上提交时出现:wrong answer on test 6 不知道哪里错了

大一C++题目,学校OJ上面的

题目描述 使用结构表示X-Y平面直角坐标系上的点,编写程序,顺序读入一个四边形的4个顶点坐标,判别由这个顶点的连线构成的图形是否为正方形、矩形或其他四边形。要求:定义求两个点距离的函数使用结构参数。 输入 四个点的坐标,每个坐标一行 输出 四边形的类型:(square,rectangle,quadrilateral) KeyWord(s) that Must be Used struct 样例输入 1 0 0 1 2 1 1 2 样例输出 square 提示 while(cin>>x>>y)的方式输入坐标

为什么这道题根据程序,样例可以正确输出,却不能在OJ上AC?是我的代码出问题了吗?

题目描述如下: ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577529512_755416.png) ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577529527_134470.png) 我的代码如下: ``` #include<stdio.h> int main() { int n,fin1,fin2; long a1=1,a2=1; char cx1,cx2; scanf("%d",&n); fflush(stdin); while((cx1=getchar())!='\n') { a1=a1*(cx1-64) /*计算出第一行的字母所代表的编号的乘积*/ } while((cx2=getchar())!='\n') { a2=a2*(cx2-64);/*计算出第二行的字母所代表的编号的乘积*/ } fin1=a1%n; /*用第一行的乘积取模*/ fin2=a2%n; /*用第二行的乘积取模*/ if(fin1==fin2) { printf("Attack!\n"); } else { printf("Stay\n"); } return 0; } ``` 自己测试了几组数据,都没有问题的,可是AC不了。来向各位大佬求助!

在学校的oj里面是错误了百分之50

输入的第1行是测试数据的组数n,后面跟着n行输入。(1<=n<=90) 输出有n行,每行输出对应一个输入 #include<stdio.h> int main() { int n,i,j,x,y,b; scanf("%d",&x); int a[100]={1,1}; for(i=0;i<x;i++) { scanf("%d",&y); if(y>2) { for(j=2;j<90;j++) { a[j]=a[j-1]+a[j-2]; b=a[y-1]; } printf("%d\n",b); } else { printf("%d\n",1); } } return 0; }

为什么在VS2017上能正常运行而在OJ上面就Runtime Error:Segmentation fault呢?求助!!!

``` #include<iostream> #include<iomanip> #include<string> #include<queue> #include<vector> #include<stdlib.h> using namespace std; template<typename T> class TreeNode { public: T data; TreeNode<T> *leftChild; TreeNode<T> *rightChild; TreeNode(T data) { this->data = data; this->rightChild = NULL; this->rightChild = NULL; } }; template<typename T> class BinaryTree { private: TreeNode<T> *root; public: BinaryTree(T data); TreeNode<T>* getroot(); void InsertLeft(TreeNode<T> *p, T data); void InsertRight(TreeNode<T> *p, T data); TreeNode<T>* Search(TreeNode<T> *root, T data); void PreOrder(TreeNode<T> *root); void InOrder(TreeNode<T> *root); void PostOrder(TreeNode<T> *root); }; template<typename T> BinaryTree<T>::BinaryTree(T data) { TreeNode<T> *newnode = new TreeNode<T>(data); root = newnode; } template<typename T> TreeNode<T>* BinaryTree<T>::getroot() { return root; } template<typename T> void BinaryTree<T>::InsertLeft(TreeNode<T> *p, T data) { TreeNode<T> *newnode = new TreeNode<T>(data); newnode->leftChild = p->leftChild; p->leftChild = newnode; } template<typename T> void BinaryTree<T>::InsertRight(TreeNode<T> *p, T data) { TreeNode<T> *newnode = new TreeNode<T>(data); newnode->rightChild = p->rightChild; p->rightChild = newnode; } template<typename T> TreeNode<T>* BinaryTree<T>::Search(TreeNode<T> *root, T data) { queue<TreeNode<T>*> queue; TreeNode<T> *q = NULL; queue.push(root); while (!queue.empty()) { TreeNode<T> *p = queue.front(); queue.pop(); if (p->data == data) { q = p; } if (p->leftChild != NULL) { queue.push(p->leftChild); } if (p->rightChild != NULL) { queue.push(p->rightChild); } } return q; } template<typename T> void BinaryTree<T>::PreOrder(TreeNode<T>* root) { if (root != NULL) { cout << root->data; PreOrder(root->leftChild); PreOrder(root->rightChild); } } template<typename T> void BinaryTree<T>::InOrder(TreeNode<T> *root) { if (root != NULL) { InOrder(root->leftChild); cout << root->data; InOrder(root->rightChild); } } template<typename T> void BinaryTree<T>::PostOrder(TreeNode<T> *root) { if (root != NULL) { PostOrder(root->leftChild); PostOrder(root->rightChild); cout << root->data; } } int main() { string str; while (cin >> str) { BinaryTree<char> *bin = new BinaryTree<char>(str[0]); TreeNode<char> *root = bin->getroot(); for (int i = 1; i < str.length(); i++) { if (str[i] != '.') { TreeNode<char> *p = bin->Search(root, str[(i - 1) / 2]); if (i % 2 == 0) { bin->InsertRight(p, str[i]); } else { bin->InsertLeft(p, str[i]); } } } bin->PreOrder(root); cout << endl; } return 0; } ``` 测试数据 ABCDEFGHIJKL A.B...C.......D ABCD.EF.G T ABC.D.E..FG...H 输出 ABDHIEJKCFLG ABCD ABDGCEF T ABDFGCEH

杭电oj第一题居然一直过不了

#include "stdio.h" int main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); return 0; } 运行不是好好的吗,怎么总是过不了

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Linux 会成为主流桌面操作系统吗?

整理 |屠敏出品 | CSDN(ID:CSDNnews)2020 年 1 月 14 日,微软正式停止了 Windows 7 系统的扩展支持,这意味着服役十年的 Windows 7,属于...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

学习总结之HTML5剑指前端(建议收藏,图文并茂)

前言学习《HTML5与CSS3权威指南》这本书很不错,学完之后我颇有感触,觉得web的世界开明了许多。这本书是需要有一定基础的web前端开发工程师。这本书主要学习HTML5和css3,看...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

记一次腾讯面试,我挂在了最熟悉不过的队列上……

腾讯后台面试,面试官问:如何自己实现队列?

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

冒泡排序动画(基于python pygame实现)

本项目效果初始截图如下 动画见本人b站投稿:https://www.bilibili.com/video/av95491382 本项目对应github地址:https://github.com/BigShuang python版本:3.6,pygame版本:1.9.3。(python版本一致应该就没什么问题) 样例gif如下 ======================= 大爽歌作,mad

Redis核心原理与应用实践

Redis核心原理与应用实践 在很多场景下都会使用Redis,但是到了深层次的时候就了解的不是那么深刻,以至于在面试的时候经常会遇到卡壳的现象,学习知识要做到系统和深入,不要把Redis想象的过于复杂,和Mysql一样,是个读取数据的软件。 有一个理解是Redis是key value缓存服务器,更多的优点在于对value的操作更加丰富。 安装 yum install redis #yum安装 b...

现代的 “Hello, World”,可不仅仅是几行代码而已

作者 |Charles R. Martin译者 | 弯月,责编 | 夕颜头图 |付费下载自视觉中国出品 | CSDN(ID:CSDNnews)新手...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

立即提问
相关内容推荐