北大oj poj 1007,为什么我总是wrong answer
#include<iostream>usingnamespacestd;intmain(){intn,m,i,j,k,sum[51]={0};chardnas[101][...
#include<iostream>
using namespace std;
int main()
{
int n,m,i,j,k,sum[51]={0};
char dnas[101][101];
scanf("%d%d",&n,&m);
for(i=0;i<m;i++)
{
scanf("%s",&dnas[i]);
for(j=0;j<n;j++)
{
for(k=j+1;k<n;k++)
{
if(dnas[i][j]>dnas[i][k])
{
sum[i]++;
}
}
}
}
int tag=1000,flag;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(sum[j]<tag)
{
tag = sum[j];
flag = j;
}
}
printf("%s\n",dnas[flag]);
tag = 1000;
sum[flag] = 1000;
}
return 0;
}
这是我的代码,问题是http://poj.org/problem?id=1007 展开
using namespace std;
int main()
{
int n,m,i,j,k,sum[51]={0};
char dnas[101][101];
scanf("%d%d",&n,&m);
for(i=0;i<m;i++)
{
scanf("%s",&dnas[i]);
for(j=0;j<n;j++)
{
for(k=j+1;k<n;k++)
{
if(dnas[i][j]>dnas[i][k])
{
sum[i]++;
}
}
}
}
int tag=1000,flag;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(sum[j]<tag)
{
tag = sum[j];
flag = j;
}
}
printf("%s\n",dnas[flag]);
tag = 1000;
sum[flag] = 1000;
}
return 0;
}
这是我的代码,问题是http://poj.org/problem?id=1007 展开
3个回答
展开全部
acm,很变态,您加油,说实话,逆序数的算法我是查了线性代数的书才明白的。
您的代码做例子是没有问题的了,
试试看无限循环
整理好字符串再输出
1000真的是逆序数的最大值吗?
试试看100000
acm,啊,用输入法直接按是“啊聪明”哦,您加油,希望对您有帮助,我没有北大的号,请您自行修改好了,看在码字幸苦的份上选我最佳也不错,给些链接,您看看里面的合适吗:
http://blog.sina.com.cn/s/blog_6095bd270100q3qu.html
http://bloggermap.org/rss/readblog/20312
您的代码做例子是没有问题的了,
试试看无限循环
整理好字符串再输出
1000真的是逆序数的最大值吗?
试试看100000
acm,啊,用输入法直接按是“啊聪明”哦,您加油,希望对您有帮助,我没有北大的号,请您自行修改好了,看在码字幸苦的份上选我最佳也不错,给些链接,您看看里面的合适吗:
http://blog.sina.com.cn/s/blog_6095bd270100q3qu.html
http://bloggermap.org/rss/readblog/20312
展开全部
scanf("%s",&dnas[i]);
这一句不用取地址符
这一句不用取地址符
更多追问追答
追问
没有影响吧,他报错是wrong answer。去掉的话依然是报错啊
追答
那你想实现的是什么功能呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sum数组尺寸改成101就过了~~
sum应对应每个串
串的数目有100个。。。
sum应对应每个串
串的数目有100个。。。
追问
依然是ce。。。不过我已经解决了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询