| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 954 人关注过本帖
标题:NOIP2010三国游戏
只看楼主 加入收藏
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
结帖率:79.37%
收藏
已结贴  问题点数:100 回复次数:11 
NOIP2010三国游戏
sanguo.rar (541.49 KB)
http://www.     测试了一下得了90分,搞到了测试数据,前9个都能快速过,最后一个数据就是过不了,调试的时候程序总是报错。
程序代码:
#include <stdio.h>
#include <stdlib.h>
FILE *fin,*fout;
void print(long general[500][500],long n)
{
int i,j;
printf("\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%2ld ",general[i][j]);
printf("\n");
}
}
void Qsort(long general[500],long startPos,long endPos)
{
int i,j,temp;
temp=general[startPos];
i=startPos,j=endPos;
while(i<j)
{
while(temp>=general[j]&&i<j)j--;
general[i]=general[j];
while(temp<=general[i]&&i<j)i++;
general[j]=general[i];
}
general[i]=temp;
if(i-1>startPos)Qsort(general,startPos,i-1);
if(endPos>i+1)Qsort(general,i+1,endPos);
}
int main()
{
long general[500][500]={},n,i,j,ans;
fin=fopen("sanguo.in","r");
fout=fopen("sanguo.out","w");
fscanf(fin,"%ld",&n);//输入行
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)//输入元素
{
fscanf(fin,"%ld",&general[i][j]);
general[j][i]=general[i][j];// 复制对称部分
}
for(i=1;i<=n;i++)
{
Qsort(general[i],1,n);//对每行排序
if(general[i][2]>ans)
ans=general[i][2];
}
fprintf(fout,"1\n");
fprintf(fout,"%ld",ans);
system("pause");
return 0;
}

最后一个测试数据放在压缩包里了
搜索更多相关主题的帖子: 三国游戏 
2011-01-17 09:41
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:20 
long general[500][500]={},vc6编译错误。
long general[500][500]没问题了。

帮人《---》帮己
2011-01-17 10:02
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
不是这个的问题,我GUIDE可以编译通过,就算这样,你加个memset不就解决了吗?并没有解决实际问题

欢迎来到我的博客:http://blog..cn/noisunyuhong
2011-01-17 10:19
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:20 
从sanguo10.in获取,n是500

for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)//输入元素
{
 fscanf(fin,"%ld",&general[i][j]);

判断条件i<=n,j<=n,那么general[32][500]已经非法.

帮人《---》帮己
2011-01-17 11:35
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
那应该怎么改?

欢迎来到我的博客:http://blog..cn/noisunyuhong
2011-01-17 17:51
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
收藏
得分:40 
数组大小加大到501或者更大,就可以解决

樱之雪,晓之车
2011-01-17 17:53
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
收藏
得分:0 
如果要速度快,当然最好的大小是512

樱之雪,晓之车
2011-01-17 17:54
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
谢谢哈,AC了

欢迎来到我的博客:http://blog..cn/noisunyuhong
2011-01-17 18:29
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:5 
逐渐学习
2011-01-17 19:13
zdyzhang
Rank: 9Rank: 9Rank: 9
来 自:栖息地
等 级:蜘蛛侠
威 望:4
帖 子:2335
专家分:1227
注 册:2008-9-20
收藏
得分:5 
好不好玩?

悲剧源于生活。
2011-01-17 19:29
快速回复:NOIP2010三国游戏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013895 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved